Arc42: Pragmatische Softwarearchitektur
Architektur war schon immer wichtig, gibt sie doch die Struktur eines Systems vor und bildet damit die Grundlage für Wartung, Weiterentwicklung und vieles mehr.
Arc42 ist eine erprobte und pragmatische Vorlage zur Entwicklung, Dokumentation und Kommunikation von Softwarearchitekturen und wird im Folgenden kurz vorgestellt.
Es gibt viele Möglichkeiten der Architekturdokumentation, von einem einfachen Einseiter bis hin zu einem formalen Architekturmodell.
Jedes System hat genau eine Architektur. Diese vernünftig zu planen und zu dokumentieren hat viele Vorteile, denn eine ad hoc geschaffene Architektur kann schnell dazu führen, ein suboptimales System zu entwickeln und sich Wege für eine sinnvolle Weiterentwicklung zu verbauen.
Arc42
Arc42 ist ein Framework für die Dokumentation der Softwarerchitektur. Framework, da es zunächst Werkzeugunabhängig ist. Der wohl einfachste Weg, Arc42 zu nutzen, ist über eine entsprechende Word-Vorlage. Im Arc42-Download-Bereich gibt es aber auch viele andere Formate, wie Markup für Wiki, Latex oder Confluence.
Dies ist möglich, da die Inhalte Werkzeug-Neutral in einem gitHub-Repository verwaltet wird. Das bedeutet auch, dass die Inhalte auch in andere Formate überführt werden können.
Arc42 ist offen lizenziert, mit der Creative Commons Lizenz (CC-BY-SA), was auch die kommerzielle Verwertung unproblematisch macht. Die Köpfe hinter Arc42, Gernot Starke und Peter Hruschka, verwerten Arc42 über Trainings und Beratung. Natürlich gibt es noch viele weitere Kontributoren.
Struktur
Arc42 besteht aus zwölf Teilen, die alle wesentlichen Aspekte einer Architektur dokumentieren. Die Inhalte der ersten drei Kapitel setzen den Kontext und fangen den Leser ein. Hier wird auch die Verbindung von fachlichen Problemen zu geschäftsorientierten Zielen geschaffen. Das ist schön im folgenden Bild visualisiert.

Es gibt immer nur eine Architektur, aber es werden oft viele Architekturen in Erwägung gezogen. Diese werden in Teil 8 festgehalten, während Teil 4 die ausgewählte Lösungsstrategie dokumentiert. Die eigentliche Architekturdokumentation steckt in Teilen 5-7, die die drei wichtigsten Sichten für die Architektur abbilden. Auch wenn im Bild oben Diagramme zu sehen sind, so muss nicht unbedingt modelliert werden – mehr dazu weiter unten.
Die letzten vier Kapitel enthalten unterstützende Informationen, wobei insbesondere die Qualitätsszenarien einen hohen Stellenwert haben.
Umsetzung
Auch wenn es ein Word Template gibt, so ist dies nicht unbedingt die sinnvollste Form. Word ist zwar recht universell, aber nicht wirklich für die Arbeit im Team konzipiert.
Es liegt nahe, die Architektur zu Modellierung, zum Beispiel mit Enterprise Architect, der Name ist schließlich Programm, oder?
In der FAQ wird Vorsicht beim Einsatz von Modellierungswerkzeugen geboten und empfohlen, deren Einsatz mit einem Wiki zu kombinieren. Das sorgt sicher für Akzeptanz bei den Lesern, die eine intuitive Webumgebung haben. Die Architekten selbst müssen sich mit mehreren Werkzeugen auseinandersetzen und die Diagramme mit Copy&Paste aktuallisieren. Trotzdem haben sie die Möglichkeit, alle Vorteile des modellbasierten Arbeitens selbst zu nutzen. Das erscheint mir durchaus pragmatisch.
Interessant finde ich die Empfehlung, auf Traceability zu verzichten. Ich kann die Motivation nachvollziehen: Schließlich ist die Pflege einer Traceability in der Tat aufwändig. Andererseits kann eine gut gepflegte Traceability auch einen enormen Mehrwert liefern. Daher wäre mein Rat: Wenn (1) ein sauberes Traceabilitymodell hinterlegt werden kann, (2) eine benutzerfreundliche Arbeitsumgebung vorliegt und (3) es klar definierte Anwendungsfälle gibt, die von Traceability profitieren, dann macht es durchaus Sinn. Zum Beispiel könnte eine Umsetzung mit Jama Connect diesen Mehrwert liefern.
Fazit
Für diejenigen, die eine saubere Architekturdokumentation benötigen aber noch keine entsprechende Reife in ihrer Organisation haben ist Arc42 sicher ein Kandidat, den man sich näher anschauen sollte. Selbst wenn sich hinterher herausstellt, dass das Framework doch nicht optimal geeignet ist, so spiegelt es dennoch viele Best Practices wieder die auch ohne das Framework genutzt werden können. Abgesehen davon, dass Arc42 auch leicht an die eigenen Bedürfnisse angepasst werden kann.
Titelbild by Colin Carter on Unsplash