Buchbesprechung: Building Evolutionary Architectures

Wie sich komplexe Softwaresysteme kontinuierlich weiterentwickeln und fit halten lassen, zeigt ein Buch vier erfahrener Softwarearchitektinnen und -Architekten.

In Pocket speichern vorlesen Druckansicht 1 Kommentar lesen
Buchbesprechung: Infrastructure as Code

(Bild: Shutterstock)

Lesezeit: 5 Min.
Von
  • Annette Bosbach
Inhaltsverzeichnis

Neal Ford, Rebecca Parsons, Patrick Kua, Pramod Sadalage
Building Evolutionary Architectures – Automated Software Governance
O'Reilly Media, 2. Auflage, Dezember 2022
262 Seiten, ab 60,99 Euro
ISBN: 978-1-492-09754-9

Im Laufe des Lebenszyklus eines Softwaresystems ändern sich regelmäßig die Business-Anforderungen und Anpassungen der Software werden nötig. Dafür stehen in der Softwarearchitektur formalisierte Softwareentwicklungsmodelle parat: der berühmte – inzwischen aber eher berüchtigte – Wasserfall galt lange Zeit als Mittel der Wahl. Neal Ford, Rebecca Parsons, Patrick Kua und Pramod Sadalage liefern mit "Building Evolutionary Architectures" einen inspirierenden Gegenentwurf. Das Buch setzt sich mit Methoden zur Wartung und Weiterführung beziehungsweise Bedarfsanpassung auf Basis von Informationen in Form von Softwarearchitekturdokumentation auseinander.

Das gut 270 Seiten lange Werk erscheint zwar wie ein Lehrbuch, ist aber keine reine Schritt-für-Schritt-Anleitung. Wer die Vorteile der vorgestellten Prozeduren nutzen möchte, muss sich vorab unbedingt ein paar Gedanken zur Umsetzung und der individuellen Anpassung an die Gegebenheiten in seinem Unternehmen machen.

Kerntheorie des nun in einer aktualisierten zweiten Auflage erschienenen Werks ist das Konzept der Fitness-Funktion. Ein Fitness-Algorithmus stellt fest, wie gut ein bestimmtes System auf das Lösen einer bestimmten Aufgabe optimiert ist, beziehungsweise wie gut es sich bei dieser Aufgabe im Vergleich zu anderen Systemen schlägt.

Für die mit der Java-Entwicklung nicht bis ins letzte Detail vertraute Rezensentin präsentieren die Autoren nicht nur blanke Theorie, sondern veranschaulichen ihre Ausführungen am Beispiel des ArchUnit-Frameworks, das in der Lage ist, automatisierte Tests gegen die Architektur einer Java- oder .NET-Codebasis durchzuführen.

(Bild: O'Reilly)

Mit Überlegungen zu Continuous Delivery und der Änderungsverwaltung in einem bestehenden System leiten die Autoren über zur Thematik der verschiedenen Event-getriebenen Architekturen. Im weiteren Verlauf gehen sie neben einer Methode zur geometrischen Bewertung von Koppelungsbeziehungen auch kurz auf die in den Entwicklungsumgebungen IntelliJ IDEA und Eclipse enthaltenen automatisierten Werkzeuge zur Komplexitätsanalyse in Softwaresystemen ein.

Lobenswert ist auch, dass dieses Lehrbuch der einst von Netflix entwickelten "Affenarmee" (Simian Army und das daraus hervorgegangene Tool Chaos Monkey) zumindest einen Infokasten widmet: Dahinter verbirgt sich eine Sammlung automatisierter Werkzeuge, die in der Cloud angesiedelte verteilte Systeme durch "gezieltes Zufügen von Schmerzen" einem Stresstest unter realen Bedingungen unterziehen können.

Das Hantieren mit Fitness-Funktion und Co. bringt unterdessen keine nennenswerten Vorteile, wenn das vorliegende System von Struktur und Aufbau nicht für flexible Veränderbarkeit optimiert ist – wie beispielsweise im Fall des berühmt-berüchtigten Furby-1998-Sourcecode aus 8-Bit-Assembler.

Das Autorenkollektiv setzt hier die Überlegungen zur Koppelung fort, verwendet dabei allerdings weniger populäre Begriffe als die meisten Leserinnen und Leser sie von Ted Faisons Klassiker zur komponentenbasierten Programmierung gewöhnt sein dürften. Lobenswert ist dennoch, dass das Lehrbuch auf moderne Arten des Datenaustauschs von Systemen eingeht und beispielsweise die Unterschiede zwischen KV-Arrays, JSON- und XML-Schemata (beziehungsweise der von ihnen jeweils in das System gebrachten Koppelungsintensität) berücksichtigt.

Auf konkrete Codebeispiele verzichten die Autoren jedoch und legen den Fokus stattdessen auf die intelligente Umsetzung der Design Patterns auch in Microservices-Architekturen. Als Mittel zur Veranschaulichung der Architektur bietet das Werk gut umgesetzte Flussdiagramme.

Neuartig und gleichermaßen lobenswert ist der darauffolgende Abschnitt, der sich mit dem Design des Remanent-Speichers auseinandersetzt: Wer dabei nicht von Beginn an Unterstützung für Änderungen einplant, bekommt im Laufe der Zeit zwangsläufig Ärger, weil die Datenbank spätere Anpassungen der Systemarchitektur verhindert.

Im dritten und letzten Teil des Buchs wenden sich die Autoren schließlich den Fragen der praktischen Umsetzung evolutionärer Architekturen zu. Dort finden sich beispielsweise Überlegungen zu dem unter anderem beim Design von 4GL-basierten Systemen immer wieder auftretenden Phänomen des Bike Shedding – inklusive einer eindringlichen Warnung, nicht ein Opfer des Law of Triviality zu werden. Darüber hinaus fehlen auch Querverweise zu anderen Aspekten nicht, mit denen sich Softwarearchitektinnen und -architekten in ihrem täglichen Leben auseinandersetzen müssen – etwa Conway's Law. Dem Gesetz zufolge sind die Arbeitsergebnisse von Systemen durch die Kommunikationsstrukturen der sie umsetzenden Organisationen vorbestimmt. Auch die auf Amazon-Gründer Jeff Bezos zurückgehende "Two Pizza Meeting"-Regel fehlt nicht. Sie besagt, dass an einem Meeting nicht mehr Personen teilnehmen sollten, als mit zwei (oder einer großen) Pizza satt werden.

"Wer nicht mit der Zeit geht, geht mit der Zeit" gilt als geflügeltes Sprichwort, das häufig mehr als nur einen Kern Wahrheit enthält. Nach der Erfahrung der Rezensentin ist es insbesondere bei altgedienten Embedded-Entwicklerinnen und -Entwicklern wenig populär. Wer sich in der Rolle einer Softwarearchitektin respektive eines Softwarearchitekten wiederfindet und das Gefühl hat, dass eine veraltete Architektur das Schaffen neuer Werte im Unternehmen behindert, findet in "Building Evolutionary Architectures" einen bunten Strauß von Denkansätzen zur Steigerung der Flexibilität.

Annette Bosbach
betreut die Legacysysteme der Tamoggemon Holding k.s. und befasst sich darüber hinaus seit Jahren mit dem Einfluss, den Technik und Menschen aufeinander nehmen.

(map)