Agile Dokumentation: Balance zwischen Geschwindigkeit und Wissensspeicherung

Veröffentlicht: 2022-03-11

Die verschiedenen Dokumente, Artefakte und Prozesse im Zusammenhang mit ihrer Erstellung sind einige der Hauptsymbole des Wasserfallmodells. In Anlehnung an Lean betrachtet Agile einen Großteil der Dokumentation als „Verschwendung“, die beseitigt werden muss, um den Entwicklungslebenszyklus zu rationalisieren.

Für viele Projektmanager ist es nicht schwer zu verstehen, wie die Wasserfallphasen in Sprints umgewandelt werden – es wird die gleiche Arbeit erledigt; es ist nur anders organisiert. Die Entfernung der meisten Dokumentationen ist jedoch eine schwerer zu schluckende Pille, da sie eine völlig andere Arbeitsweise unterstreicht. Es erfordert, die Zügel der Kontrolle zu lockern, das Unbekannte anzunehmen und das Lieferteam zu befähigen, Entscheidungen vor Ort zu treffen.

Der traditionelle Ansatz zur Dokumentation wird in Frage gestellt

Bei der Wasserfall-Methodik wird viel Zeit darauf verwendet, Projektanforderungen zu dokumentieren und Lösungen zu detaillieren. Dieser Prozess funktioniert, wenn die Anforderungen vollständig klar sind und wir sicher sind, dass sich nichts von dem, was erfasst und als Baseline festgelegt wurde, ändern wird. Doch die Erfahrungen der meisten Unternehmen in den letzten Jahrzehnten haben gezeigt, dass dies fast nie zutrifft. In der heutigen Welt ist das Tempo des Wandels so dynamisch, dass sich die Bedürfnisse des Kunden bis zum Abschluss der Dokumentationsphase erheblich ändern.

Der Fokus von Agile liegt darauf, Dinge zu erledigen und den Stakeholdern einen Mehrwert zu bieten. Es ist so aufgebaut, dass das Modell davon abhält, an Peripheriegeräten und an Aktivitäten zu arbeiten, die dem Kunden nicht direkt und unmittelbar einen Mehrwert bringen.

Dokumentation in Wasserfall vs. Agile

Jedes Unternehmen hat einen anderen Dokumentationsstand, der sich sogar auf Projektebene unterscheiden kann. Aber so sehen typische Dokumentationsverfahren in Wasserfall- und Agile-Projekten aus:

Wasserfall Agil
Die Dokumentation ist für die meiste Zeit obligatorisch. Solange die Dokumentation nicht vollständig ist, geht die Arbeit nicht weiter. Es wird nur eine grundlegende Dokumentation empfohlen, um gerade genug zu verstehen, um mit der Arbeit beginnen zu können.
Dokumente durchlaufen einen langwierigen Überprüfungsprozess und müssen von mehreren Parteien genehmigt werden. Es gibt keinen formellen Überprüfungs- und Genehmigungsprozess, und der Projektmanager ist der Hauptentscheidungsträger.
Standardisierte Vorlagen müssen befolgt werden. Es gibt keine formellen Vorlagen für die Dokumentation; Stattdessen werden Best Practices verwendet.
In verschiedenen Phasen sind verschiedene Arten von Dokumenten erforderlich: Projektauftrag, Vision Statement, Geschäftsanforderungsdokument, funktionale und nicht funktionale Anforderungen, High-Level-Design- (HLD) und Low-Level-Design-Dokumente (LLD) usw. Es werden nur die Dokumente benötigt, die für die Bereitstellung der Funktionalität im kommenden Sprint benötigt werden.
Änderungen an der Dokumentation sind schwierig, da alle Dokumente miteinander verflochten sind. Änderungen an der Dokumentation sind viel einfacher.
Ein System oder Prozess zur Verwaltung einer großen Anzahl von Dokumenten wird benötigt. Die Dokumentation ist minimal und daher einfach zu verwalten.

Der Fall für die Dokumentation

Wasserfall fördert einen viel strengeren Ansatz für die Dokumentation, was übertrieben erscheinen mag. Aber bevor wir dies als „Verschwendung“ abtun, hier sind einige Vorteile, die starke Dokumentationsverfahren haben.

Gelegenheit für strategisches Denken

Wer nicht plant, plant zu scheitern. Die Dokumentation zwingt einen Projektmanager, sich hinzusetzen und die Dinge zu durchdenken und dann die besten Lösungen zu finden. Manchmal wird der agile Wert einer funktionierenden Software gegenüber einer umfassenden Dokumentation falsch interpretiert, um zu bedeuten, dass keine Dokumentation erforderlich ist. Dann eilen sie zum Markt, ein Schritt, den Paul Adams, VP of Product bei Intercom, als Dinge an die Wand werfen und sehen, was kleben bleibt, beschreibt. Entwerfen von Lösungen, Erstellen von Plänen, Überlegen von Maßnahmen – diese Aktivitäten schaffen Wert, indem sie Zeit sparen, da nicht jede einzelne Feature-Idee entwickelt werden muss, die Ihnen in den Sinn kommt.

UX und funktionale Konsistenz

Während Unternehmen von wenigen Gründern zu Hunderten oder Tausenden von Mitarbeitern wachsen, beginnen viele verschiedene Teams, an denselben oder verwandten Produkten zu arbeiten. Team A könnte denken, dass das, woran es arbeitet, nichts mit dem zu tun hat, woran Team B arbeitet, aber für den Endbenutzer ist es dasselbe Produkt. Anstatt dass funktionsübergreifende Teams ihr eigenes Ding machen, vermeidet eine klare Dokumentation der Benutzererfahrung und der Funktionsebenen einen unzusammenhängenden Benutzerfluss.

Dokumentation kann in Benutzerhandbücher umgewandelt werden

In Waterfall wird viel Zeit darauf verwendet, die Lösungen und ihre Verwendung im Detail zu beschreiben. Bilder von High-Fidelity-Designs werden für Front-End-Entwickler erstellt. All diese Assets erfordern weniger Arbeit, um sie in interne oder externe Benutzerhandbücher umzuwandeln, als sie von Grund auf neu zu erstellen.

Wie Agile den Dokumentationsbedarf reduziert

Ein Faktor, der immer wieder als Vorwand für eine Dokumentationspflicht auftaucht, ist die Mitarbeiterfluktuation. Manager befürchten, institutionelles Wissen zu verlieren, wenn Mitarbeiter gehen und neue hinzukommen, um sie zu ersetzen. Woher wissen sie, was implementiert wurde und wie es funktioniert? Wie lange werden sie brauchen, um aufzuholen? Wird das aktuelle Team die Bandbreite haben, um neue Teammitglieder aufzunehmen?

Die Hoffnung ist, dass eine gute Dokumentation neue, meist selbstständig arbeitende Mitarbeiter schnell einarbeiten wird. Agile reduziert jedoch den Dokumentationsbedarf durch Kollaborationstechniken, die gleichzeitig die Zeit für das Onboarding verkürzen. Hier sind einige Möglichkeiten, wie Agile den Dokumentationsbedarf reduziert.

Regelmäßige Interaktion zwischen Produktteams und agilen Teammitgliedern

Das Agile Manifest fördert „Individuen und Interaktionen über Prozesse und Tools“. Da sich Anforderungen während eines Projekts ändern und neue Ideen entstehen, stellt Agile sicher, dass Anforderungen direkt von der Quelle geklärt werden, anstatt sich auf schriftliche Artefakte zu verlassen, die ständig aktualisiert werden müssen.

Pflege und Planung unterteilt Aufgaben

Backlog-Grooming und Sprint-Planung zerlegen Funktionen in spezifische, umsetzbare Teile, die leicht verständlich sind und unabhängig voneinander bearbeitet werden können. Dies schafft eine Gelegenheit für neue Mitarbeiter, früh produktiv zu sein, ohne das Gesamtbild des gesamten Projekts noch vollständig zu verstehen.

User Stories bieten eine effiziente Dokumentation

User-Story-Vorlage für die Agile-Dokumentation.

Das einfache Format von User Stories ermöglicht es Projektmanagern, die absoluten Mindestanforderungen zu erfassen, die ein gemeinsames Verständnis aller Teammitglieder schaffen. Selbst wenn es eine User Story nicht in einen Sprint schafft, ist die Verschwendung bei der Erstellung dieses Dokumentationsartefakts sehr gering. Wenn User Stories in Sprints übergehen, können sie konkretisiert und mit anderen erforderlichen Informationen wie Wireframes, Designs, Akzeptanzkriterien usw. ergänzt werden. Dieser Prozess bietet eine sehr effiziente Dokumentationslieferung, die in hohem Maße verfügbar ist und in den am besten geeigneten Entwicklungsphasen erstellt wird.

Reduzierter Bedarf an Code-Dokumentation

Techniken wie Pair Programming und Code Review schaffen ständige Möglichkeiten, technisches Wissen im gesamten Team zu verbreiten, insbesondere an neue Teammitglieder. Das ständige Feedback führt zu einem gemeinsamen Verständnis, das auch die Flexibilität hat, sich an neue Gegebenheiten anzupassen, anstatt schnell irgendwo in einem Dokument veraltet zu sein.

Agile Zeremonien

Tägliche Standups, Sprint Reviews und Retrospektiven bieten reichlich Gelegenheit, Probleme zu lösen und Entscheidungen von Angesicht zu Angesicht zu treffen, anstatt sich auf E-Mails und Dokumente zu verlassen. Der begrenzte Zeitrahmen aller Zeremonien stellt sicher, dass nur die wichtigsten Informationen priorisiert werden, anstatt Zeit damit zu verbringen, alles zu dokumentieren, auch wenn es wahrscheinlich nie verwendet wird.

All dies reduziert direkt oder indirekt die Dokumentation und priorisiert die Erreichung der Projektziele, während gleichzeitig sichergestellt wird, dass nichts wirklich durch einen Mangel an Dokumentation verloren geht.

Hybride Ansätze zur Dokumentation

Einige Unternehmen ziehen es immer noch vor, eine gewisse Dokumentation zu haben, selbst in einer agilen Umgebung. Agilität ist nicht vorgeschrieben, da jedes Projekt anders ist und eine einzigartige Reihe von Umständen aufweist, die angegangen werden müssen.

Im Folgenden finden Sie einige Beispiele, wie Agile mit zeitintensiveren Dokumentationsmethoden kombiniert werden kann.

Kombination von UML und Agilität

Beispiel UML-Diagramm

Erwägen Sie die Verwendung einer Standardmodellierungssprache wie Unified Modeling Language (UML), die sehr strukturiert ist und über definierte Entitäten verfügt, um ein System zu visualisieren. Dies trägt dazu bei, den Inhalt sehr einfach zu halten und sich auf das Notwendige zu konzentrieren, und gewährleistet einen minimalen Gebrauch von geschriebener Sprache. Tools wie StarUML und Draw.io sind neben vielen anderen praktische Optionen.

Code-Dokumentationsgeneratoren

Ein anderer Ansatz besteht darin, sicherzustellen, dass der Code viel besser lesbar ist, indem strukturiertere und detailliertere Kommentare als Teil der Klassendetails, Methodendetails, Parameterverwendung, Abhängigkeiten usw. eingefügt werden. Es gibt viele Tools, die den Prozess der Generierung nützlicher Dokumente aus dem Quellcode automatisieren, und sie werden als Dokumentationsgeneratoren bezeichnet. Sie reichen von generischen bis hin zu programmiersprachenspezifischen.

Detaillierte Design- und UX-Dokumente

Die Definition von Anforderungen mithilfe von Wireframes, Mockups, Benutzerflussdiagrammen, Sequenzdiagrammen usw. hilft, die Projektabläufe zu vereinfachen und dem technischen Team klar zu machen, was entwickelt werden muss. Konstruktionsdokumente sind eine großartige Möglichkeit, eine strengere Dokumentation auf unterschiedlichem Niveau zu haben. Für diese Aufgaben stehen verschiedene Wireframing- und UX-Tools zur Auswahl.

Projektmanagement-Tools automatisieren die Dokumentation

Leistungsfähigere Projektmanagement- und verwandte Tools wie JIRA, Confluence, Asana und Basecamp bieten eine Möglichkeit, alle projektbezogenen Informationen an einem Ort zu speichern. Aufgaben können verknüpft, markiert, verschachtelt und verschiedenen Teammitgliedern zugewiesen werden, die dann Kommentare hinterlassen und Probleme melden können. All diese Aktionen, zusammen mit der Flexibilität, diese Tools anzupassen, können eine beträchtliche Menge an Dokumentation mit wenig bis gar keinem Aufwand erstellen.

Darüber hinaus ergibt sich historisch gesehen ein Teil des Dokumentationsbedarfs aus Berichtspflichten. Stakeholder wollen Zugriff auf die Teamleistung oder andere relevante Metriken. Projektmanagement-Tools machen es einfach, benutzerdefinierte Dashboards und Ansichten zu automatisieren, die den Projektfortschritt widerspiegeln und auf die relevante Dokumentation innerhalb des Tools verlinken.

Dokumentationsmanagement ist ein Balanceakt

Die Macher des Agilen Manifests schreiben, dass sie „funktionierende Software über umfassende Dokumentation“ stellen. Sie fügen jedoch auch einen Haftungsausschluss hinzu, dass „obwohl die Elemente auf der rechten Seite einen Wert haben, [sie] die Elemente auf der linken Seite mehr schätzen“. Agile schlägt nicht vor, die gesamte Dokumentation zu entfernen, da einige Dokumentation offensichtlich einen Wert bietet; Es schlägt einfach vor, dass die Priorität auf funktionierender Software liegen sollte und Dokumentation nur bei Bedarf hinzugefügt werden sollte, abhängig von den Umständen des Projekts und ohne den Entwicklungsfortschritt stark zu behindern.

Projektmanager müssen einen Spagat schaffen zwischen weniger Zeitaufwand für die Dokumentation und mehr Zeitaufwand für die Bereitstellung funktionierender Software und der eigentlichen Frage, wo eine Form der Dokumentation für langfristigen Erfolg erforderlich ist.