Architettura Agile

Architettura agile significa come gli architetti di impresa / sistema / software applicano la pratica architettonica nello sviluppo di software agile. Un certo numero di commentatori ha identificato una tensione tra l’architettura software tradizionale e i metodi agili lungo l’asse di adattamento (lasciando le decisioni architettoniche fino all’ultimo momento possibile) rispetto all’anticipazione (pianificazione anticipata). (Kruchten, 2010)

Waterman, Nobel e Allan (2015) hanno esplorato le tensioni tra spendere troppo poco tempo a progettare un’architettura up-front, aumentare il rischio e passare troppo tempo, influenzando negativamente la consegna di valore al cliente. Identificano sei forze che possono influenzare l’architettura agile: instabilità dei requisiti, rischio tecnico, valore iniziale, cultura della squadra, agilità e esperienza del cliente. Queste forze possono essere affrontate da sei strategie; Rispondere al cambiamento, affrontare il rischio, l’architettura emergente, il grande design in primo piano e utilizzare i framework e le architetture dei modelli.

Sono stati fatti diversi tentativi per specificare cosa rende un approccio agile all’architettura. Secondo il framework SAFe, i principi dell’architettura agile sono:

Il design emerge. L’architettura è una collaborazione. (architettura intenzionale)
Più grande è il sistema, più lunga è la pista (pista architettonica)
Costruisci l’architettura più semplice che possa funzionare (principi di progettazione consolidati)
In caso di dubbi, codificale o modellalo (picchi, prototipi, domini e modelli di casi d’uso)
Lo costruiscono, lo testano (design per testabilità)
Non c’è il monopolio dell’innovazione (team, hackathon): il pulsante Mi piace di Facebook è stato concepito come parte di un hackathon
Implementare il flusso architettonico (architetture epiche e il portafoglio kanban) – il portafoglio Kanban passa attraverso imbuto, revisione, analisi, portafoglio arretrato e implementazione
A livello di Enterprise Architecture, Scott Ambler (2016) propone i seguenti principi

Collaborazione evolutiva su blueprinting
Comunicazione sulla perfezione
Partecipazione attiva delle parti interessate
Gli architetti aziendali sono partecipanti attivi nei team di sviluppo
Abilitazione sull’ispezione (esemplari)
Modelli di alto livello (il più complesso, il più astratto)
Cattura i dettagli con codice funzionante
Guida e regole snelle, non procedure burocratiche
Avere un team dedicato di architetti aziendali esperti