Es kommt immer wieder vor, dass wir nach persönlichen Empfehlungen zu bestimmten Themen gefragt werden. Nach einem Vortrag, im Gespräch beim Get-Together einer Veranstaltung, oder in der Pause eines Meetings sind nur einige der Gelegenheiten, in denen gerne gefragt wird, was wir empfehlen würden, um sich in ein bestimmtes Thema (tiefer) einzuarbeiten. Das Internet bietet zwar unbegrenzten Zugriff auf Informationen zu jedem Thema, aber gerade in diesem Überangebot liegt oft auch das Problem. Wo soll man anfangen? Was ist wirklich gut? Daher sind persönliche Empfehlungen oft sehr wertvoll.
Wir möchten daher an dieser Stelle unsere persönlichen Empfehlungen zu den Themen geben, nach denen wir immer wieder gefragt werden. Wir antworten hier genauso, wie wir auch in einem persönlichen Gespräch auf die Frage antworten würden. Kurz und prägnant. Denn schließlich hat man bei solchen Gelegenheiten nicht die Möglichkeit, vollumfassend auf alle Einzelheiten einzugehen. Wir begrenzen uns auf drei Empfehlungen und ggf. einen Bonus-Tipp.
Heute eine Frage, die mir schon sehr häufig gestellt wurde:
“

Buch: Evaluating Software Architectures: Methods and Case Studies
Das Buch Evaluating Software Architectures: Methods and Case Studies darf mit Fug und Recht als der absolute Klassiker zum Thema Architekturbewertung bezeichnet werden. 2001 schrieben Paul Clements, Rick Kazman und Mark Klein vom SEI (Software Engineering Institute, Pittsburgh) dieses Buch, das sich um die „Architecture Tradeoff Analysis Method“ dreht.
Die beschriebene Methode bringt sehr gut den Kern von Architekturbewertung auf den Punkt, nämlich die Diskussion von Qualitätseigenschaften eines Softwaresystems anhand konkretisierender Qualitätsszenarien. Das Ziel dabei ist es, die Architekturlösung zu durchdringen, zu prüfen, ob die Lösungen für die angeforderten Qualitätseigenschaften passend sind und Risiken und Tradeoffs explizit zu machen.
Die Methode gilt immer noch als Referenzwerk und wird häufig zitiert, allerdings eher selten so angewendet wie im Buch beschrieben. Die Methode ist etwas schwergewichtig was Voraussetzungen und Prozedere angeht, insbesondere weil sie viel auf Meetings in großen Runden setzt, um Sachverhalte zu sammeln und zu diskutieren.
Trotzdem finde ich, dass man diese Methode kennen sollte, weil sie sehr gut die Ideen und Grundlagen von Architekturbewertung vermittelt, auch wenn man sie wahrscheinlich nie so in Reinform anwenden wird.

Buch: Software-Systeme reviewen – mit dem Lightweight Approach for Software Reviews – LASR
Die wohl neueste Methode (2023) ist LASR – Lightweight Approach for Software Reviews, beschrieben in einem Buch von Stefan Toth und Stefan Zörner. Das Buch liest sich sehr gut und angenehm und man bekommt direkt beim Lesen eine Idee davon, wie man es anwenden könnte.
Diese Methode hat ihre spezifische Zielsetzung darin, Entwicklungsteams eine leichtgewichtige Methode an die Hand zu geben, mit der die Teams die Architektur des von ihnen entwickelten Softwaresystems möglichst schnell und eigenständig reviewen können. Dabei werden bewusst einige Abkürzungen genommen, z.B. werden die zentralen Qualitätsanforderungen nicht detailliert formuliert und ihre Lösung diskutiert. Stattdessen kommt ein schön gestaltetes Kartenspiel zum Einsatz, was zur Steuerung und Priorisierung der Diskussion dient und hilfreiche Diskussions-Trigger für häufig auftretende Themen und mögliche Risiken liefert. Die Methode ist zusätzlich zweistufig angelegt, um zunächst schnelle Ergebnisse zu produzieren und bei Bedarf noch weitere Tiefe in der Analyse zu schaffen.
Dieses Buch würde ich euch vor allem dann empfehlen, wenn ihr mit Architekturbewertungen eures eigenen Systems beginnen wollt und die Situation des Systems (noch) nicht als kritisch gesehen wird.

Buch: Pragmatic Evaluation of Software Architectures
Das Buch Pragmatic Evaluation of Software Architectures haben mein ehemaliger Kollege Jens Knodel und ich 2016 geschrieben, um die Erfahrungen aus mehr als 100 Architekturbewertungen zu teilen.
Das Buch beschreibt im Gegensatz zu den beiden vorgenannten Büchern keine einzelne Methode für einen bestimmten Anwendungszweck sondern einen Methodenbaukasten, der Praktiken aus zahlreichen Architekturbewertungsmethoden kombiniert und in pragmatisch verwendbarer Weise bereitstellt. Er beleuchtet die Vielfalt von möglichen Architekturbewertungssituationen und bietet jeweils passende Vorgehensweisen an. Dabei ist der Fokus etwas breiter gefasst und kümmert sich auch um die Bewertung von Architekturdokumentation und die Bewertung davon, wie passgenau eine intendierte Architektur auch tatsächlich im Code umgesetzt wurde. Das Buch führt dich anhand von zahlreichen, immer wieder gestellten Fragen durch den gesamten Ablauf einer Architekturbewertung. Vom initialen Aufsetzen bis hin zur Interpretation und Aufbereitung der Ergebnisse.
Dieses Buch würde ich dir vor allem dann empfehlen, wenn du einen umfassenden Überblick über Architekturbewertungen bekommen möchtest und auch vorhast, selbst Architekturbewertungen in unterschiedlichen Kontexten durchzuführen. Ein anderer Anwendungsfall für das Buch ist, dass du eine Architekturbewertung von anderen Personen durchführen lassen möchtest und dir einen möglichst guten Überblick verschaffen möchtest, worauf zu achten ist und welche Möglichkeiten es gibt. Damit lässt sich viel klarer ein Reviewer auswählen und die Erwartungshaltung formulieren.
Mit diesen 3 Empfehlungen hast du einen guten Einstieg in das Thema. Wie immer gilt natürlich, dass es hilft, sich noch mehr anzuschauen, wenn man Profi in etwas werden möchte. Aber auf dem Weg dahin musst du vor allem Architekturbewertungen durchführen und das Methodenwissen zur Anwendung bringen. Dabei lernst du dann unglaublich viel und kannst weitere Bücher und Methoden besser daran anknüpfen.
Matthias

0 Kommentare