La arquitectura de software, una instancia clave para garantizar la calidad en el desarrollo de aplicaciones

 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 desempeño, velocidad de respuesta y crecimiento, que requieren de un diseño 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 diseñar 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 desempeño que exige el cliente.
 
Por Ariel Martín Bensussán, Tech Leader en Baufest
 
Ariel trabaja desde hace más de ocho años en el mercado de IT, y actualmente se desempeña como Tech Leader en Baufest. Ha participado en numerosos proyectos de Desarrollo y Configuración de Aplicaciones de Software en grandes empresas de diversos segmentos del mercado nacional e internacional, incluyendo: Banca y Servicios Financieros, Medios y Entretenimiento, Educación y Manufactura. 
 
Se especializa en desarrollos basados en Tecnologías Microsoft .Net y Microsoft SharePoint, y cuenta con dos certificaciones otorgadas por Microsoft que avalan sus conocimientos. También, ha dictado varios cursos de capacitación interna en Baufest; donde además se desempeña como uno de los Líderes de la Comunidad de Práctica .Net y participa en el Consejo de Innovación y Mejora Continua de la empresa.
 
Es Ingeniero en Sistemas de Información, graduado en la Universidad Tecnológica Nacional en 2008.
Salir de la versión móvil