Once-Only in Dokumentationen
Categories:
Was ist das Once-Only-Prinzip?
Das Once-Only-Prinzip besagt: Daten oder Informationen sollen nur einmal erfasst, gespeichert und gepflegt werden – und an allen relevanten Stellen wiederverwendet werden. Es vermeidet Redundanz, minimiert Fehlerquellen und reduziert Wartungsaufwand. Ursprünglich aus der Verwaltung und dem E-Government bekannt, gewinnt es auch in technischer Dokumentation zunehmend an Bedeutung – besonders in komplexen, agilen und skalierbaren Systemen.
Warum ist Once-Only in Dokumentationen wichtig?
In Softwareprojekten wachsen Dokumentationen oft unkoordiniert:
- API-Dokumentationen existieren separat von Benutzerhandbüchern.
- Diagramme werden manuell gezeichnet und nicht mit Code synchronisiert.
- Konfigurationshinweise werden in mehreren Dokumenten dupliziert.
Das führt zu Inkonsistenzen, veralteten Inhalten und erhöhtem Pflegeaufwand. Once-Only schafft hier Klarheit:
Einmal schreiben. Überall nutzen.
Documentation Engineering: Die Grundlage für Once-Only
Documentation Engineering ist die systematische, ingenieurmäßige Herangehensweise an Dokumentation – mit Fokus auf Struktur, Wiederverwendbarkeit und Automatisierung. Es ermöglicht:
- Modulare Dokumente: Inhalte werden in wiederverwendbare Bausteine (z. B. „Komponentenbeschreibungen“, „Fehlercodes“) zerlegt.
- Zentrale Quellen: Alle Inhalte stammen aus einer einzigen, gepflegten Quelle (Single Source of Truth).
- Automatisierte Verknüpfung: Inhalte werden dynamisch in verschiedene Ausgabeformate (PDF, Web, Help-Systeme) übersetzt.
Beispiel:
Ein API-Endpunkt wird in einer YAML-Datei beschrieben. Diese dient als Quelle für:
- Swagger/OpenAPI-Dokumentation
- Benutzerhandbuch-Abschnitte
- Entwickler-Referenz
- Automatisierte Tests
→ Keine manuelle Kopie. Keine Inkonsistenz. Nur eine Quelle.
Docs-as-Ecosystem: Dokumentation als lebendiges System
Ein Docs-as-Ecosystem versteht Dokumentation nicht als statisches Artefakt, sondern als integriertes, dynamisches System, das mit Code, Tests, CI/CD und Monitoring verbunden ist.
Merkmale eines Docs-as-Ecosystem:
- Automatische Generierung: Dokumentation wird aus Code-Kommentaren, Konfigurationsdateien oder Tests generiert.
- Feedback-Schleifen: Nutzer können direkt aus der Dokumentation Feedback geben – z. B. über „War diese Information hilfreich?“-Buttons.
- Versionierung: Dokumentation wird mit dem Code versioniert – keine Diskrepanzen zwischen Version 1.2 und der dazugehörigen Dokumentation.
- Suchbarkeit & Navigation: Inhalte sind über Suchmaschinen und intelligente Navigation verknüpft – nicht nur linear lesbar.
Wirkung auf Once-Only:
Jeder Inhalt ist Teil eines Netzwerks. Änderungen an einer Stelle wirken sich automatisch auf alle abhängigen Dokumente aus – ohne manuelle Nachpflege.
Diagrams-as-Code: Visualisierungen als Code
Diagramme sind oft die größte Quelle für Redundanz:
- Ein Architekturdiagramm wird in PowerPoint erstellt, dann in Confluence eingefügt, dann in ein PDF kopiert.
- Bei Änderungen muss es überall manuell aktualisiert werden.
Lösung: Diagrams-as-Code
Mit Tools wie Mermaid, PlantUML, Graphviz oder Diagrams.net (mit Code-Export) werden Diagramme als Text definiert – und können in die Dokumentation integriert werden.
Beispiel (Mermaid):
graph TD
A[Benutzer] --> B[API-Gateway]
B --> C[Auth-Service]
B --> D[Order-Service]
C --> E[DB]
D --> E
→ Dieser Code kann in Markdown, Sphinx, Docusaurus oder andere Systeme eingebettet werden.
→ Änderungen am Code aktualisieren automatisch das Diagramm in allen Dokumenten.
→ Keine manuelle Pflege. Keine veralteten Grafiken.
Docs-as-Code: Die technische Umsetzung von Once-Only
Docs-as-Code ist die Praxis, Dokumentation wie Software zu behandeln:
- In Git versioniert
- Mit CI/CD automatisiert
- Mit Tests validiert
- Mit Pull Requests gepflegt
Wichtige Elemente:
- Quellcode-Repositories: Dokumentation liegt im selben Repo wie der Code – oder in einem dedizierten, aber verknüpften Repo.
- Automatisierte Builds: Bei jeder Änderung wird die Dokumentation neu generiert und veröffentlicht.
- Validierung: Links werden geprüft, Syntax wird validiert, Diagramme werden gerendert.
- Wiederverwendung: Mit Include- oder Import-Mechanismen werden Bausteine in mehreren Dokumenten wiederverwendet.
Beispiel mit Antora (AsciiDoc):
.. include::requirements.adoc
Änderungen an requirements.adoc wirken sich auf alle Dokumente aus, die sie einbinden.
Praktische Umsetzung: Schritt-für-Schritt
-
Identifiziere redundante Inhalte
→ Welche Abschnitte werden mehrfach kopiert? Welche Diagramme existieren in mehreren Versionen? -
Erstelle zentrale Quellen
→ Fasse wiederkehrende Inhalte in wiederverwendbaren Dateien zusammen (z. B.shared/,components/). -
Wähle Tools, die Docs-as-Code und Diagrams-as-Code unterstützen
→ Markdown + Mermaid (oder AsciiDoc + PlantUML) + Git + CI/CD (z. B. GitHub Actions, GitLab CI). -
Integriere Dokumentation in den Entwicklungsprozess
→ Jede Codeänderung, die die API betrifft, erfordert eine Dokumentationsänderung – als Teil des Pull Requests. -
Automatisiere Validierung und Veröffentlichung
→ Prüfe Links, Syntax, Diagramme. Veröffentliche automatisch auf einer Dokumentations-Website. -
Etabliere Feedback-Mechanismen
→ Nutzer können direkt aus der Dokumentation Feedback geben – z. B. über GitHub Issues oder integrierte Formulare.
Fazit: Once-Only ist kein Luxus – es ist notwendig
In einer Welt, in der Software ständig wächst und sich ändert, ist manuelle Dokumentation nicht mehr tragbar. Once-Only ist die Antwort:
- Effizienz: Weniger Arbeit, weniger Fehler.
- Konsistenz: Alle Nutzer sehen denselben, aktuellen Stand.
- Skalierbarkeit: Dokumentation wächst mit dem System – ohne zusätzlichen Aufwand.
Mit Documentation Engineering, Docs-as-Ecosystem und Docs-as-Code wird Once-Only nicht nur möglich – es wird zur Grundlage einer modernen, lebendigen Dokumentation.