Agile Architektur

Agile Architektur bedeutet, wie Unternehmen / System / Software-Architekten die Architektur in der agilen Softwareentwicklung anwenden. Eine Reihe von Kommentatoren hat eine Spannung zwischen traditioneller Softwarearchitektur und agilen Methoden entlang der Achse der Anpassung (die Architekturentscheidungen bis zum letzten möglichen Moment verlassend) gegenüber der Antizipation (Planung im Voraus) identifiziert. (Kruchten, 2010)

Waterman, Nobel und Allan (2015) untersuchten die Spannungen zwischen zu wenig Zeit für die Gestaltung einer vorgelagerten Architektur, zur Erhöhung des Risikos und zu viel Zeitaufwand, was sich negativ auf die Wertschöpfung für den Kunden auswirkte. Sie identifizieren sechs Faktoren, die die agile Architektur beeinflussen können: Anforderungsinstabilität, technisches Risiko, früher Wert, Teamkultur, Kundenflexibilität und Erfahrung. Diese Kräfte können durch sechs Strategien angesprochen werden; Reagieren Sie auf Veränderungen, Adressrisiken, emergente Architekturen, großes Design und nutzen Sie Frameworks und Template-Architekturen.

Es wurden mehrere Versuche unternommen, um zu spezifizieren, was einen agilen Ansatz für die Architektur ausmacht. Gemäß dem SAFe-Framework lauten die Prinzipien der agilen Architektur:

Design entsteht. Architektur ist eine Zusammenarbeit. (vorsätzliche Architektur)
Je größer das System, desto länger die Piste (architektonische Landebahn)
Erstellen Sie die einfachste Architektur, die möglicherweise funktionieren kann (etablierte Designprinzipien)
Im Zweifelsfall kodieren oder modellieren (Spikes, Prototyp, Domain und Use-Case-Modelle)
Sie bauen es, sie testen es (Design für Testbarkeit)
Es gibt kein Innovationsmonopol (Teams, Hackathons) – der Like-Button von Facebook wurde als Teil eines Hackathons konzipiert
Architektur-Flow (Architektur-Epen und Portfolio-Kanban) umsetzen – das Portfolio Kanban durchläuft Trichter, Review, Analyse, Portfolio-Backlog und Implementierung
Auf der Enterprise Architecture-Ebene schlägt Scott Ambler (2016) die folgenden Prinzipien vor

Evolutionäre Zusammenarbeit über Blueprinting
Kommunikation über Perfektion
Aktive Beteiligung von Interessengruppen
Enterprise Architects sind aktive Teilnehmer in Entwicklungsteams
Aktivierung über Inspektion (Beispiele)
High-Level-Modelle (je komplexer, je abstrakter)
Erfassen Sie Details mit funktionierendem Code
Schlanke Beratung und Regeln, keine bürokratischen Verfahren
Haben Sie ein engagiertes Team von erfahrenen Unternehmensarchitekten