Arquitectura de software
Desarrollar una aplicación involucra mucho más que el concepto de lo que se quiere resolver o saber un lenguaje de programación para desarrollarla. El proceso de desarrollo involucra muchas horas para analizar y entender los requerimientos del cliente. En la planeación inicial es donde aparece el concepto de arquitectura de software, que son los patrones o lineamientos que ayudan a la construcción de un programa (aplicación). Estos patrones permiten tener una guía para los desarrolladores, analistas y todos los roles relacionados que permita cumplir con los requerimientos de la aplicación.
Para la informática, la arquitectura de computadoras abarca el diseño, a nivel conceptual, y la estructura en la que se basa la operación de un sistema.
La arquitectura de software traza el camino a seguir. Implica analizar cada uno de los requerimientos con el fin de definir qué y cómo se va a hacer, además de cuestiones tales como, por ejemplo, servidores, tecnologías, bases de datos.
Uno de los objetivos de la arquitectura de software es crear una estructura de la aplicación que sea fácilmente escalable, que no esté fuertemente acoplada (donde todo depende de todo, evitando hacer cambios de manera sencilla). También la Arquitectura de Software genera la documentación técnica que permitirá a los equipos de desarrollo entender los requerimientos que están en los “Casos de Uso”.
Por otro lado, los arquitectos de Software son parte clave de los proyectos IT de las compañías y pueden darse casos donde varios arquitectos de software trabajan en el desarrollo de secciones o aplicaciones especificas que funcionan en conjunto, con lo que se tendrá un líder arquitecto para llevar adelante el control general del proyecto.
Arquitectura de Soluciones
Un arquitecto de soluciones es un profesional con la experiencia necesaria para conocer un poco de todo, con una visión end-to-end de la solución: es el encargado de escuchar las necesidades del cliente y diseñar una solución, mapeando los requerimientos funcionales hacia tecnologías. Se trata del puente entre una cosa y la otra.
Esto implica que si algún requerimiento cambia, el arquitecto debe ser capaz de saber qué componentes de la solución son afectados y de qué manera.
A su vez, es responsable en crear un diseño hacia el futuro considerando las posibles integraciones que la solución pueda requerir.
En este aspecto, entre más compleja sea la solución o más integraciones tenga, más evidente se hace la necesidad de tener un diseño claro para poder implementar la solución.
Debe ser la persona encargada de planear a detalle cómo será implementada esta última, desde todos los puntos de vista: servicio, oferta, integraciones, mediciones, monitoreo, etcétera. Conforme realiza este proceso, siempre debe tener en cuenta la sustentabilidad de la solución y las proyecciones de crecimiento.
El resultado de este diseño es un documento donde se plasman todos los detalles de la arquitectura. El siguiente caso nos ilustra a modo de ejemplo:
Recomendado por LinkedIn
Servicio
Infraestructura
Tecnologías
Monitoreo
Todas estas tecnologías deben integrarse de una manera estandarizada, en la cual todo funcione de forma integrada. Por tal motivo, contar con una arquitectura correctamente diseñada desde antes de empezar la implementación resulta crítico, ya que esto contribuye a identificar desde el comienzo posibles fallas y/o exigencias que luego podrían ser muy costosos. En este aspecto, resulta necesario tener una vista “punto a punto” de cómo funcionará la solución y un plan general de cómo implementarla, facilitando la asignación de actividades durante dicho proceso. También hay que evitar el retrabajo y facilitar el mantenimiento y la extensibilidad.
Es muy importante al inicio del Proyecto tener en cuenta la arquitectura del mismo así como contar con el arquitecto.