Architektur soll dezentral sein und an den Stellen entstehen, wo sie gelebt wird. Architekturarbeit ist am wirksamsten, wenn sie kein Regelwerk vorgibt, das über Teams gestülpt wird und einengt. Sie soll Teams befähigen, das Richtige zu tun, ohne dabei zum Bottleneck für Innovation zu werden.
Um diese Versprechen einzulösen ist ein spezifischer Umgang mit der Architekturdisziplin notwendig - für uns ist das der Kern einer evolutionären Architektur.
Eine Evolutionäre Architektur ermöglicht Produktentwicklung, die durch inkrementelle, emergente Praktiken und regelmäßiges, qualitatives Feedback in komplexen Umfeldern dynamisch agiert.
Dabei sind sowohl technische, methodische als auch organisatorische Faktoren relevant. Eine nach Domänen orientierte Softwarestruktur mit tiefen Verteilungsgrenzen und Isiolierungsmechanismen spielen auf technischer Ebene eine Rolle. Methodisch stützt sich eine evolutionäre Architektur auf explizit verankerte Qualitätsziele und unmittelbares, kleinteiliges Feedback. Eine Netzwerkorganisation ohne zentrale Rollen und störende Prozesse, sowie explizite Kollaborationsmechanismen, sind aus organisatorischer Sicht wichtig.
Der Weg zu einer evolutionären Architektur ist nicht einfach. Wir haben dafür ein Werkzeug entwickelt, dass euch unter die Arme greift.
Mit dem Evolutionary Architecture Canvas könnt ihr ein erstes Self-Assessment durchführen und abtesten, an welchen Stellen noch Ansätze fehlen. Das Canvas ist einfach auszufüllen: sucht für jede Zelle Beispiele aus eurem Kontext - findet ihr wenig, ist das grundsätzlich schlecht. Hier habt ihr Potenzial, besser zu werden.
Den Download für die Folien zum Vortrag “Von Microservices zu evolutionärer Softwarearchitektur” auf der Software Architecture Alliance 2024 finden Sie unten.