En el desarrollo de software contrastan muchas necesidades, desde la generación de código y producción de algoritmos, las bases de datos y el almacenamiento de información hasta los temas de seguridad que cada día son más sensibles para los clientes. Todas estas necesidades deben confluir en la arquitectura de los sistemas de información como un todo, y es labor de los encargados de arquitectura velar porque estas diferentes piezas encajen bien.

Similar a como sucede en Arquitectura, tal como se concibe la palabra tradicionalmente, sucede en Ingeniería de Sistemas. Los estudiantes de cualquier Facultad de Arquitectura estudian miles de diseños, propuestas y estilos, diferencian épocas y prestan cuidado a las funcionalidades que se requieran por parte de los clientes en una u otra edificación. Un Arquitecto de Software debe estudiar los sistemas de información de forma parecida a como lo hace un Arquitecto con edificios y construcciones, teniendo cuidado de entender su aprendizaje y experiencia como un abanico de buenas prácticas y soluciones sensatas, en este punto, es importante no caer en el error típico de diseño y es la reutilización. Puede sonar extraño para alguien del mundo del software a quien durante años se le ha enseñado que la reutilización es un pilar del mundo de los sistemas de información, pero en el caso de los diseños puede resultar lesivo, el ingeniero debe tener cuidado como reutiliza sus diseños y por una razón muy simple: todos solucionan problemas diferentes y la tecnología es óptima dependiendo del problema que se quiera abordar.

Lea también: 4 errores típicos que cometen las compañías al adquirir un software BPM

En vista de lo anterior, la arquitectura de un sistema de información debe estar íntimamente ligada con el quehacer del software y su propósito específico, estos temas junto con el panorama económico guiarán al arquitecto sobre la adecuada construcción de un sistema de información, incorporando al mismo los aspectos funcionales y no funcionales relevantes para la operación adecuada del sistema.

De lo anterior podemos obtener una conclusión y es que no podemos intentar montar en un mismo sistema todo y cubrir con un mismo componente todo. Por ejemplo, aunque las bases de datos relacionales son muy buenas para almacenar grandes cantidades de información, no son lo suficientemente eficientes para realizar ciertos tipos de búsquedas como las denominadas FULL TEXT y para ello, existen otras soluciones que permiten alcanzar el objetivo. Lo anterior no sucede exclusivamente con las búsquedas y la forma de persistir la información, también ocurre con otros ejes importantes de la Arquitectura de Software que abarcan desde la seguridad hasta la metodología de desarrollo.

¡Quiero mi software!