Arquitectura ágil

La arquitectura ágil significa cómo los arquitectos de empresas / sistemas / software aplican la práctica arquitectónica en el desarrollo de software ágil. Varios comentaristas han identificado una tensión entre la arquitectura de software tradicional y los métodos ágiles a lo largo del eje de adaptación (dejando las decisiones arquitectónicas hasta el último momento posible) frente a la anticipación (planificación por adelantado). (Kruchten, 2010)

Waterman, Nobel y Allan (2015) exploraron las tensiones entre pasar muy poco tiempo diseñando una arquitectura inicial, aumentando el riesgo y gastando demasiado tiempo, lo que tiene un impacto negativo en la entrega de valor al cliente. Identifican seis fuerzas que pueden afectar la arquitectura ágil: inestabilidad de los requisitos, riesgo técnico, valor inicial, cultura de equipo, agilidad del cliente y experiencia. Estas fuerzas pueden abordarse mediante seis estrategias; Responda al cambio, aborde el riesgo, la arquitectura emergente, el gran diseño por adelantado y utilice marcos y arquitecturas de plantillas.

Se han realizado varios intentos para especificar qué constituye un enfoque ágil de la arquitectura. Según el marco SAFe, los principios de la arquitectura ágil son:

El diseño emerge. La arquitectura es una colaboración. (arquitectura intencional)
Cuanto más grande es el sistema, más larga es la pista (pista arquitectónica)
Construya la arquitectura más simple que pueda funcionar (principios de diseño establecidos)
En caso de duda, codifíquelo o modelélo (picos, prototipo, dominio y modelos de casos de uso)
Lo construyen, lo prueban (diseño para la capacidad de prueba)
No existe el monopolio de la innovación (equipos, hackatones): el botón Me gusta de Facebook se concibió como parte de un hackathon
Implementar el flujo arquitectónico (epopeyas arquitectónicas y la cartera kanban): la cartera Kanban pasa por el embudo, la revisión, el análisis, la cartera de pedidos pendientes y la implementación
En el nivel de Arquitectura Empresarial, Scott Ambler (2016) propone los siguientes principios

Colaboración evolutiva sobre blueprinting
Comunicación sobre la perfección
Participación activa de los interesados
Los arquitectos de la empresa son participantes activos en los equipos de desarrollo
Habilitación sobre inspección (ejemplos)
Modelos de alto nivel (cuanto más complejo, más abstracto)
Capturar detalles con código de trabajo
Orientación y reglas magras, no procedimientos burocráticos
Tener un equipo dedicado de arquitectos empresariales experimentados