Este rol dirige el desarrollo de la arquitectura de software del sistema, que incluye la promoción y la creación de soporte para las decisiones técnicas clave que restringen el diseño global y la implementación para el proyecto
Descripción General:
El arquitecto de software tiene la responsabilidad global de dirigir las principales decisiones técnicas, expresadas como la arquitectura de software. Esto habitualmente incluye la identificación y la documentación de los aspectos arquitectónicamente significativos del sistema, que incluye las “vistas” de requisitos, diseño, implementación y despliegue del sistema.
El arquitecto también es responsable de proporcionar el fundamento de estas decisiones, equilibrando las preocupaciones de los diferentes interesados, reduciendo los riesgos técnicos, y garantizando que las decisiones se comunican, y validan con eficacia, y que se acatan
Desde el punto de vista de la experiencia, el arquitecto de software también necesita compaginar las capacidades de Diseñador. Sin embargo, a diferencia del diseñador, el arquitecto de software:
- tiende a ser generalista en lugar de especialista, conoce muchas tecnologías a un alto nivel en lugar de pocas tecnologías a nivel de detalle
- toma decisiones técnicas más amplias y, por lo tanto, un amplio conocimiento y experiencia, así como habilidades de comunicación y liderazgo, son esenciales.
Propuestas de Asignación:
Si el proyecto es suficientemente grande para garantizar un equipo de arquitectura, el objetivo es tener una buena combinación de talentos, cubriendo un amplio espectro de experiencia y compartiendo la comprensión común del proceso de ingeniería de software. El equipo de arquitectura no debe ser un comité de representantes de varios equipos, dominios o contratistas. La arquitectura de software es una función de tiempo completo, con personal dedicado permanentemente a ella.
Para proyectos más pequeños, una única persona puede actuar como gestor de proyectos y arquitecto de software. Sin embargo, si es posible, es mejor que estos roles los realicen personas separadas, para garantizar que la presión del tiempo en un rol no provoca descuidos en el otro rol.