Definition of Done (DoD)

Bild von maniacvector auf Freepik
Die Definition of Done (DoD) ist ein wichtiger Begriff in der agilen Softwareentwicklung, insbesondere in Methoden wie Scrum und Kanban. Sie beschreibt eine klare und präzise Vereinbarung darüber, was erfüllt sein muss, damit eine Arbeitseinheit – beispielsweise ein User Story, Feature oder eine Aufgabe – als fertig betrachtet werden kann. Die DoD sorgt dafür, dass alle Teammitglieder denselben Qualitätsstandard und dieselben Erwartungen an die Arbeitsergebnisse haben.
1. Zweck der Definition of Done (DoD)
Die DoD hat mehrere wichtige Ziele:
🔹 Klarheit über Fertigstellung
Die DoD stellt sicher, dass jeder im Team genau weiß, wann eine Aufgabe oder ein Produktinkrement als abgeschlossen gilt. Das verhindert Missverständnisse und sorgt dafür, dass keine offenen Punkte oder unvollständigen Arbeiten übrig bleiben.
🔹 Qualitätssicherung
Die DoD hilft, einheitliche Qualitätsstandards zu setzen und sicherzustellen, dass alle Anforderungen und Kriterien erfüllt sind, bevor das Ergebnis als „fertig“ angesehen wird. Dazu gehört die Überprüfung auf Fehler, Testabdeckung und Dokumentation.
🔹 Transparenz im Team
Durch die DoD wird Transparenz im Team geschaffen. Jeder Entwickler weiß, was erforderlich ist, um eine Aufgabe als erledigt zu betrachten. Dies erleichtert die Zusammenarbeit und hilft dem Product Owner, den Fortschritt des Teams besser zu verstehen.
🔹 Effizienz und kontinuierliche Verbesserung
Durch klare Vorgaben und einheitliche Definitionen von „fertig“ können Teams ihre Arbeitsweise optimieren und gezielt an der Verbesserung von Prozessen arbeiten.
2. Typische Bestandteile der Definition of Done
Die DoD wird oft als eine Checkliste verstanden, die für jede Arbeitseinheit oder jedes Produktinkrement überprüft wird. Sie kann verschiedene Aspekte umfassen, die sich je nach Team und Projekt unterscheiden können. Zu den häufigsten Punkten gehören:
🔹 Codequalität
- Code Reviews: Der Code wurde von einem Teammitglied geprüft.
- Fehlerfreie Codierung: Es gibt keine bekannten Bugs oder unerfüllten Anforderungen im Code.
- Refactoring: Falls nötig, wurde der Code so angepasst, dass er sauberer und wartungsfreundlicher ist.
🔹 Tests
- Automatisierte Tests: Es wurden ausreichend Unit-Tests, Integrationstests oder andere Arten von Tests geschrieben.
- Testabdeckung: Ein bestimmter Prozentsatz des Codes muss durch Tests abgedeckt sein (z.B. 80%).
- Manuelle Tests: Bei Bedarf wurden manuelle Tests durchgeführt, z.B. für User-Interfaces oder komplexe Interaktionen.
🔹 Dokumentation
- Dokumentation des Codes: Der Code enthält Kommentare oder eine externe Dokumentation, die für das Verständnis und die Wartung notwendig ist.
- Benutzerdokumentation: Falls erforderlich, wurde eine Dokumentation für den Endnutzer erstellt oder aktualisiert.
🔹 Funktionalität
- Akzeptanzkriterien: Alle Akzeptanzkriterien, die in der User Story definiert wurden, sind erfüllt.
- Produktintegration: Die Funktionalität wurde erfolgreich in das Gesamtsystem integriert und funktioniert nahtlos mit anderen Teilen der Anwendung.
🔹 Performance
- Leistungsanforderungen: Die Leistung des Codes oder Systems erfüllt die festgelegten Anforderungen, wie z.B. Ladegeschwindigkeit, Reaktionszeiten und Skalierbarkeit.
🔹 Deployment
- Produktionsbereit: Das Produkt kann ohne Probleme auf Produktionsumgebungen ausgerollt werden. Der Code ist stabil genug, um ohne Fehler in der tatsächlichen Anwendung zu laufen.
- Continuous Integration (CI): Der Code ist in die CI/CD-Pipeline integriert und hat alle Prüfungen durchlaufen.
3. Warum ist die Definition of Done wichtig?
Die DoD ist entscheidend, um konsistente Ergebnisse zu liefern und Missverständnisse im Team zu vermeiden. Ohne eine klare Definition von „fertig“ könnten Entwickler oder Stakeholder unterschiedliche Erwartungen daran haben, was eine Aufgabe oder ein Feature wirklich „abgeschlossen“ macht.
Einige der Hauptvorteile sind:
🔹 Vermeidung von offenen Punkten
Ohne eine DoD könnten Aufgaben „halbfertig“ abgegeben werden, z.B. ungetesteter Code oder fehlende Dokumentation. Dies würde zu weiteren Iterationen führen, die Zeit und Ressourcen kosten.
🔹 Höhere Qualität
Durch die strikte Einhaltung der DoD werden Fehler und Qualitätsmängel vermieden, die später zu Kosten und Verzögerungen führen können.
🔹 Erhöhte Zusammenarbeit
Ein Team, das eine gemeinsame Vorstellung davon hat, was „fertig“ bedeutet, arbeitet effektiver zusammen. Sie müssen nicht ständig nachfragen, ob noch etwas zu tun ist, sondern können sich darauf verlassen, dass die Kriterien klar sind.
4. Die Definition of Done im Scrum-Prozess
Im Scrum ist die DoD eine wichtige Grundlage, da sie direkt mit der Sprint-Zielerreichung und dem Inkrement zusammenhängt. Ein Inkrement wird nur dann als abgeschlossen betrachtet, wenn es alle Kriterien der DoD erfüllt.
Im Sprint Review
- Während des Sprint Reviews wird das Team dem Product Owner und anderen Stakeholdern das Inkrement vorstellen. Nur wenn das Inkrement die DoD erfüllt, kann es als vollständig betrachtet werden und zur Produktweiterentwicklung beitragen.
Kontinuierliche Anpassung
Die DoD kann im Laufe der Zeit angepasst und verfeinert werden, wenn das Team mit neuen Technologien oder Verfahren arbeitet. Sie wird oft während der Sprint Retrospectives überprüft, um sicherzustellen, dass sie den aktuellen Standards und Praktiken entspricht.
„Möchtest Du zu diesen Begriff oder einem anderen Thema mit uns ins Gespräch kommen?“
5. Beispiel einer Definition of Done
Hier ist ein einfaches Beispiel für eine DoD, das ein Softwareentwicklungsteam verwenden könnte:
- Akzeptanzkriterien sind erfüllt.
- Der Code wurde einem Peer-Review unterzogen.
- Alle Unit-Tests wurden erfolgreich ausgeführt und die Testabdeckung beträgt mindestens 80%.
- Die Funktionalität wurde in der Staging-Umgebung getestet und funktioniert fehlerfrei.
- Der Code ist in die CI/CD-Pipeline integriert und hat alle Prüfungen bestanden.
- Die Dokumentation (sowohl technischer als auch benutzerseitiger) wurde aktualisiert.
- Das Feature ist auf der Produktionsumgebung lauffähig.
6. Fazit
Die Definition of Done (DoD) ist ein wesentlicher Bestandteil eines effektiven agilen Entwicklungsprozesses. Sie sorgt für Klarheit und Transparenz, wenn es darum geht, wann eine Arbeitseinheit als „fertig“ gilt. Die DoD stellt sicher, dass alle wichtigen Kriterien – von der Codequalität über die Testabdeckung bis hin zur Dokumentation – erfüllt sind, bevor das Produkt oder die Funktion an den Kunden oder Benutzer weitergegeben wird. Sie hilft dabei, hohe Qualitätsstandards zu wahren, Missverständnisse zu vermeiden und die Kundenzufriedenheit zu steigern.
Wir sind darum bemüht die angebotenen Informationen aktuell zu halten und diese in knapper und verständlicher Form darzustellen. Fehler und Irrtümer bleiben aber menschlich und darum vorbehalten. Bei Unstimmigkeiten zu einem Begriff, bitten wir darum dies per E-Mail mit uns zu diskutieren. Bitte nutze hierfür unsere E-Mail: info@jupiterexpress.de« Zurück zum Glossar Index