Ein Modell aktuell halten
Modelle verrotten nicht, weil Leute faul sind. Sie verrotten, weil im tatsächlichen Arbeitsfluss nichts jemanden zwingt, sie zu öffnen.
6 Min. LesezeitModelling practice4 von 4
Die kurze Antwort
- Modelle verrotten, weil im Lieferprozess nichts jemanden zwingt, sie zu öffnen. Code hat Tests und Review; eine Wiki-Seite hat beides nicht.
- Hängen Sie das Modell an einen Schritt, der ohnehin stattfindet: ein Diagramm im Repository erscheint im Diff eines Pull Requests.
- Alles, was auf einem periodischen Review beruht, das niemand terminiert hat, übersteht das erste volle Quartal nicht.
- Löschen Sie ein veraltetes Diagramm, statt es stehen zu lassen. Ein fehlendes kostet zehn Minuten Nachfragen; ein selbstbewusst falsches einen Tag und eine schlechte Entscheidung.
01Warum Modelle verrotten#
Die übliche Erklärung ist Disziplin, und sie ist falsch. Dieselben Entwickler, die ein Modell zwei Jahre lang treiben lassen, halten ihre Testsuite jeden Tag grün, und der Unterschied liegt nicht daran, wie wichtig es ihnen ist - sondern daran, dass ein fehlgeschlagener Test die Pipeline anhält und ein falsches Diagramm gar nichts anhält.
Code ist von Maschinerie umgeben, die im Moment der Änderung Aufmerksamkeit auf ihn zwingt: ein Compiler, ein Testlauf, ein Reviewer, der zustimmen muss. Ein Modell im Wiki hat davon nichts. Nichts auf dem Weg vom Ticket zur Produktion verlangt von irgendwem, die Seite zu öffnen, also bringt nichts den Widerspruch je zum Vorschein. Das Modell wird nicht schlechter - das System bewegt sich, und das Modell bleibt genau dort, wo es war.
02Hängen Sie es an etwas, das ohnehin passiert#
Jede Anordnung, die funktioniert, hat dieselbe Form: Das Modell liegt dort, wo ein bestehender Schritt darauf stösst.
Legen Sie die Sicht ins Repository. Ein als Mermaid neben dem Code eingecheckter Diagramm taucht im Diff auf, sobald seine Datei angefasst wird, und wird von dem gelesen, der die Änderung reviewt. Es ist der einzige Mechanismus auf dieser Liste, dessen Erhalt nichts kostet, weil das Review ohnehin stattfand.
Verweisen Sie aus Entscheidungsprotokollen auf Sichten. Ein kurzer Architecture Decision Record, der auf die Sicht mit der beschlossenen Struktur verlinkt, sorgt dafür, dass die Sicht jedes Mal geöffnet wird, wenn jemand fragt, warum die Struktur so ist - und genau dann würde es zählen, wenn sie falsch wäre.
Machen Sie das Modell zur Quelle von etwas, das gebraucht wird. Wenn die Deployment-Sicht das Diagramm im Runbook erzeugt oder das Domänenmodell das Glossar, in dem der Support sucht, dann fällt es jemandem binnen Tagen auf statt binnen Quartalen.
Dazu greifen, wenn
- Eine Sicht liegt im Repository und ändert sich im selben Pull Request wie der Code
- Ein Entscheidungsprotokoll verlinkt die Sicht, die zeigt, was es beschlossen hat
- Das Modell erzeugt etwas, worauf sich ein Team bereits verlässt
- Jede Sicht hat eine namentlich benannte verantwortliche Person, und die Liste der Sichten ist kurz genug, um sie zu benennen
Zu etwas anderem greifen, wenn
- Ein Quartals-Review, das niemand angesetzt hat
- Eine Wiki-Seite, die ausser der Autorin oder dem Autor nie jemand geöffnet hat
- Ein exportiertes PNG neben der Quelle, aus der es erzeugt wurde
- Jede Anordnung, die verlangt, dass sich jemand erinnert
03Schrumpfen Sie es, und löschen Sie den Rest#
Die andere Hälfte der Antwort ist, dass die meisten Modelle zu gross sind, um gepflegt zu werden, und kein Prozess behebt das. Wenn die Pflege des Modells einen Tag im Monat kosten würde und das Team eine Stunde hat, veraltet das Modell unabhängig davon, wie das Review organisiert ist - der ehrliche Schritt ist also, es auf diese Stunde zurückzuschneiden.
Das ist derselbe Test wie beim Zuschnitt, nur später angewandt: Welche Sichten keine Entscheidung benennen können, sind die, die wegfallen, und ihr Wegfall ist kein Verlust, weil sie ohnehin nicht gelesen wurden. Was bleibt, ist klein genug, dass auffällt, wenn es falsch ist.
Und dann löschen Sie den Rest wirklich. Das ist der Schritt, den die Leute nicht gehen, und der mit der klarsten Rechnung. Ein fehlendes Diagramm kostet eine Leserin zehn Minuten Nachfragen; ein selbstbewusst falsches kostet sie einen Tag und, mit Pech, eine darauf gebaute Entscheidung. Dokumentation, die Sie nicht pflegen werden, ist nicht neutral, sie ist eine Falle mit dem Logo Ihres Teams darauf.
In je einer Zeile
- 01Modelle verrotten, weil nichts im Lieferfluss jemanden zwingt, sie zu öffnen.
- 02Hängen Sie jede Sicht an einen Schritt, der ohnehin passiert: an einen Diff, ein Entscheidungsprotokoll, ein erzeugtes Artefakt.
- 03Jeder Prozess, der davon abhängt, dass sich jemand erinnert, ist bereits gescheitert.
- 04Schneiden Sie das Modell auf das Pflegebudget zu, das das Team tatsächlich hat, nicht auf das, das es haben sollte.
- 05Löschen Sie den Rest, und datieren Sie, was bleibt. Ein falsches Diagramm kostet mehr als ein fehlendes.
04Häufige Fragen#
Warum veraltet Architekturdokumentation?
Weil im Lieferprozess nichts jemanden zwingt, sie zu öffnen. Code hat Tests und Review, die bei einer Änderung Aufmerksamkeit erzwingen; ein Modell im Wiki hat nichts Vergleichbares, driftet also lautlos - und es fällt niemandem auf, bis jemand ihm vertraut und sich irrt.
Wie hält man ein Modell aktuell?
Hängen Sie es an einen Schritt, der ohnehin stattfindet. Ein Diagramm im Repository erscheint im Diff eines Pull Requests; eine Sicht, auf die ein Entscheidungsprotokoll verweist, wird geöffnet, wenn die Entscheidung neu aufgerollt wird. Alles, was auf einem Review beruht, das niemand terminiert hat, übersteht das erste volle Quartal nicht.
Löschen oder stehen lassen, wenn ein Diagramm veraltet ist?
Löschen. Ein fehlendes Diagramm kostet einen Leser zehn Minuten Nachfragen; ein selbstbewusst falsches kostet ihn einen Tag und eine schlechte Entscheidung. Was Sie nicht pflegen werden, ist eine Verbindlichkeit und kein Vermögenswert, und es zu entfernen ist die billigste verfügbare Verbesserung.
In dieser Reihe
- 01Welche Sprache wählen
- 02Modellumfang festlegen
- 03Namenskonventionen
- 04Modell aktuell halten
Passend dazu
Modellierungspraxis
Modellierungspraxis
Modellierungspraxis
Modellierungspraxis
Modellierungspraxis