Softwarearchitektur dokumentieren - Wie du herausragende interne Softwaredokumentation erstellst und dein Team begeisterst
01.06.2023
01.06.2023
In der Welt der Softwareentwicklung ist die Dokumentation der Softwarearchitektur ein entscheidendes Element, das oft übersehen wird. Gute Dokumentation gewährleistet, dass alle Teammitglieder über das gleiche Verständnis der Softwarearchitektur verfügen, und ist daher von zentraler Bedeutung für die Effizienz und Qualität des Entwicklungsprozesses (Forward & Lethbridge, 2002) [1].
Parnas (1985) [2] argumentiert, dass gut dokumentierte Softwarearchitekturen maßgeblich zur Wartbarkeit und Langlebigkeit von Software beitragen, die Produktivität erhöhen und die Kommunikation innerhalb des Entwicklungsteams verbessern. Eine gründliche Dokumentation erleichtert außerdem das Onboarding neuer Teammitglieder und verringert das Risiko eines Wissensverlusts, wenn erfahrene Mitarbeiter:innen das Unternehmen verlassen (Dingsøyr & Lassen, 2006) [3].
Die Dokumentation der Softwarearchitektur sollte den folgenden grundlegenden Prinzipien folgen (Clements et al., 2010) [4]:
Falls dir die Normen DIN EN IEC/IEEE 82079-1: 2021/09oder ISO/IEC/IEEE 26514:2022-01 bekannt sind, werden dir die zuvor genannten Aspekte, auch als Qualitätskriterien für Technische Dokumentation oder Softwaredokumentation sehr bekannt vorkommen. In den beiden Normen sind diese Aspekte im Kern ebenfalls verankert.
Die Erstellung einer hervorragenden Softwarearchitektur-Dokumentation erfordert einen methodischen Ansatz und eine Verpflichtung zur Exzellenz. Hier sind einige konkrete Schritte, die du befolgen kannst:
Überlege dir zuerst, was die Ziele deiner Dokumentation sind und wer sie lesen wird. Für Softwareentwickler:innen könnte das Ziel darin bestehen, die Funktionsweise des Codes zu erklären, während das Ziel für Projektmanager:innen darin bestehen könnte, den Projektfortschritt zu verfolgen. Deine Zielgruppe bestimmt die Sprache und den Detailgrad deiner Dokumentation.
Entscheide dich für ein Dokumentationsformat, das für dein Team am besten geeignet ist. Möglicherweise verwendest du eine Kombination aus UML-Diagrammen, Textbeschreibungen und Code-Kommentaren. Du kannst auch ein Dokumentationswerkzeug wie Doxygen, Sphinx oder Javadoc verwenden, um deine Dokumentation automatisch zu generieren oder zu formatieren.
Die Arc42-Vorlage ist eine bewährte Methode zur Dokumentation von Softwarearchitekturen und beinhaltet alle wichtigen Aspekte, die in deiner Dokumentation enthalten sein sollten. Sie besteht aus 12 Abschnitten, darunter Einführung und Ziele, Randbedingungen, Kontextabgrenzung, Lösungsstrategie, Bausteinsicht, Laufzeitsicht und mehr. Jeder Abschnitt hilft dir dabei, einen bestimmten Aspekt deiner Softwarearchitektur zu dokumentieren und sicherzustellen, dass du keine wichtigen Details auslässt. (Starke G., 2008) [5]
Deine Dokumentation sollte präzise und klar sein. Vermeide zu technisch oder kompliziert zu sein, es sei denn, es ist absolut notwendig. So ermöglichst du auch neuen Teammitgliedern oder Entwickler:innen mit wenig Erfahrung, den Code besser zu verstehen.
Software verändert sich ständig, und deine Dokumentation sollte diese Veränderungen widerspiegeln. Plane regelmäßige Updates ein.
Bilder und Diagramme können komplexe Konzepte vereinfachen und deine Dokumentation ansprechender machen. Nutze Diagramme, Schaubilder, Grafiken oder Illustrationen, um deine Softwarearchitektur besser zu veranschaulichen. Vor allem dann, wenn deine Zielgruppe zum großen Teil aus unerfahrenen Lesenden besteht.
Feedback ist ein wichtiger Teil der Dokumentation. Frage deine Kolleg:innen, ob sie deine Dokumentation verstehen und Verbesserungsvorschläge haben. Nutze hierfür Feedbackfragebögen, Umfragen oder technische Integrationen, die viele Wiki-Systeme bereits von Haus aus bieten, um Feedback oder Kommentare zu deinen Artikeln zu sammeln. Mit Tools wie z.B. Atlassian Confluence, kann dein Team auch innerhalb deiner Artikel zu einzelnen Abschnitten Artikel hinterlassen, Kommentare unter ganze Artikel setzen, deine Seiten liken oder mit Add-Ins auch gezielt Feedback abgeben. Zudem hast du in dem Tool mehrere Möglichkeiten, um z.B. die Beliebtheit einzelner Artikel auszuwerten und dir daraus Rückschlüsse abzuleiten.
Gute Dokumentation ist ein kontinuierlicher Prozess, der Zeit und Übung erfordert. Sei geduldig und nimm dir die Zeit, die du brauchst, um eine Dokumentation zu erstellen, auf die du stolz sein kannst. Doch nicht nur das. Sei auch neugierig und proaktiv, denn in den wenigsten Fällen ist es so, dass dir neue Informationen oder Änderungen aktiv kommuniziert werden. Dies geht leider im Alltag zu oft unter. D.h., am aktuellsten ist deine Doku dann, wenn du aktiv nach neuer Information fragst. Bei vielen unserer Kund:innen, integrieren wir den Bereich der internen Softwaredokumentation in den Entwicklungsprozess mittels der bereits im Unternehmen existierenden Projektmanagementtools, wie z.B. Atlassian Jira. D.h. ein Sprint ist nicht Done, wenn ein bestimmter Dokumentationsumfang fehlt.
Die Erstellung einer herausragenden Softwarearchitektur-Dokumentation ist kein leichtes Unterfangen, aber sie ist ein entscheidender Faktor für die Effizienz und Qualität der Softwareentwicklung. Wenn du das Gefühl hast, dass du Unterstützung bei der Erstellung oder Verbesserung deiner Software-Dokumentation oder der Integration der Softwaredokumentation in deine Entwicklungsprozesse benötigst, stehen wir bei STYRZ dir als Berater:innen zur Verfügung. Mit unserer umfangreichen Erfahrung in der Informations- und Softwareentwicklung können wir dir helfen, eine herausragende Dokumentation zu erstellen, die deinem Team zugutekommt und deine Software zum Erfolg führt.