Arquitecto de Software

La arquitectura de software, una instancia clave para garantizar la calidaden
el desarrollo de aplicaciones.

Por Ariel Bensussán, Tech Leader de Baufest

Con el tiempo, las aplicaciones se volvieron cada vez más complejas. Los lenguajes y la forma de construir software evolucionaron, y las metodologías y la gestión de proyectos pasaron a tener un rol cada vez más importante. A esta complejidad se suman, la integración entre aplicaciones con múltiples sistemas que proveen o consumen datos de ellas, los requerimientos de calidad, de desempeno, velocidad de respuesta y crecimiento, que requieren de un diseno técnico específico previo: la Arquitectura de Software.

La arquitectura de una aplicación de software es el proceso mediante el cual se definen y construyen los lineamientos, estructuras, capas, conexiones y módulos de soporte que deberá tener dicha aplicación. Se trata de una instancia crucial que permite lograr una versión inicial estable de la aplicación, para continuar con las tareas de desarrollo de software.

Ventajas de contar con un proceso de Arquitectura de Software

En un proyecto, el proceso de arquitectura permite definir los lineamientos técnicos básicos que deberá tener una aplicación. Esto agiliza el desarrollo general, brindando un marco de trabajo sólido para los desarrolladores. La instancia de arquitectura también unifica criterios, encapsula comportamientos comunes a lo largo de toda la aplicación, reduce o identifica tempranamente los riesgos técnicos y ayuda a cumplir con los requerimientos de calidad.

Dentro de todo este proceso, el Arquitecto de Software será el encargado de disenar y construir el plan sobre el cual se montará la aplicación propiamente dicha. También conocido como Líder Técnico, esta figura es la responsable de coordinar al equipo de desarrolladores y ser su referente técnico; tomar las decisiones sobre la estructura que va a tener la aplicación; ser el nexo comunicativo entre los desarrolladores, el líder del proyecto y los principales involucrados; garantizar la calidad técnica de la aplicación; mitigar los riesgos técnicos que surjan durante el proyecto y brindar soporte al resto de los actores del proyecto.

Etapas de la Arquitectura de Software

Tanto la arquitectura como la aplicación en sí misma tienden a evolucionar y mutar a lo largo del proyecto, principalmente porque los requerimientos de negocio, cambian. Existe una etapa temprana, denominada Etapa de Definición de Arquitectura, en la cual se definen los rasgos principales de la arquitectura de la aplicación. Sin embargo, no es necesario que la arquitectura esté del todo construida y funcionando para comenzar con las tareas de construcción de la aplicación, ya que muchas de estas tareas pueden paralelizarse de forma de acelerar el inicio del proyecto.

Definir la arquitectura de un proyecto es un proceso complejo, ya que condiciona a la futura aplicación. Por lo tanto, es fundamental prestar mucha atención a los requerimientos funcionales (de negocio) y no funcionales (de calidad), así como a las restricciones que definen el proyecto para evitar tomar decisiones equivocadas.

Partiendo de estos requerimientos y restricciones, el arquitecto deberá elegir la plataforma, el lenguaje de desarrollo, los componentes a incluir y la forma en que se estructurará la solución.

La experiencia indica que es preferible extender esta instancia para estar seguros que avanzamos en la dirección correcta. No contar con el tiempo suficiente o con toda la información necesaria puede conducir a decisiones erradas, que repercutirán directamente en la aplicación.

También hay que tener en cuenta que la arquitectura puede cambiar para adaptarse a los nuevos requerimientos que surjan a lo largo del proyecto. Es por ello que una vez finalizada la definición de la arquitectura, no debe considerarse cerrada, sino que es conveniente revisarla y mejorarla en las sucesivas etapas del proyecto.
Estos cambios en la definición se realizan a la par de las tareas de construcción de la aplicación propiamente dicha. Aunque representan la parte menos visible del proceso, realizarlas es tan importante como la construcción de la solución, dado que es lo que permite cumplir con los requerimientos de calidad, funcionalidad y desempeno que exige el cliente.

Todos los derechos reservados