Eine Umfrage unter 1764 Teams aus den Jahren 2019 und 2020 ergab:
„39 % [der Teams] haben in der Regel kein Inkrement, das am Ende eines Sprints ausgeliefert werden kann.“
Mich verwundert das nicht weiter.
„Wenn ich mir das so ansehe, dann erstellt mein Team in keinem Sprint ein Inkrement“, ist eine typische Aussage, die ich von Scrum Mastern im „Professional Scrum Master 2“-Training höre. Marc und ich bitten dort die Teilnehmer, die Überraschungen und Probleme, die bei der Entwicklung von Software auftreten können, zu visualisieren und in Beziehung zur Definition of Done zu setzen. Die Einsicht, die dabei entsteht: Je mehr die Definition of Done beschreibt, was für ein Release der Software nötig ist, desto weniger Risiken verbleiben. Geringeres Risiko bedeutet mehr Transparenz über den Fortschritt des Teams und die Vorhersagen über Release-Termine werden glaubhafter.
Wenn du mir zustimmst, dass die Definition of Done wichtig für den Erfolg eines Scrum Teams ist und du nach einem Weg suchst, diese in deinem Team einzuführen, dann ließ weiter.
Nach meiner Erfahrung besteht die erfolgreiche Anwendung der Definition of Done aus drei Schritten:
Das Produkt muss eine Definition of Done haben.Das Scrum Team muss die Definition of Done tatsächlich verwenden.Das Scrum Team muss die Definition of Done stetig weiterentwickeln, um die Qualität des Produkts und des Arbeitsprozesses zu verbessern.
Nachdem du die Schritte kennst, lass sie uns im Detail besprechen:
Schritt 1: Das Produkt muss eine Definition of Done haben
Ich kann dich fast hören, wie du jetzt denkst: „Natürlich hat unser Produkt eine Definition of Done.“
Die Frage ist nur: Kennt sie auch jeder? Aus leidvoller Erfahrung kann ich dir versichern, dass du diese Frage nicht vorschnell bejahen solltest. Handelt es sich bei der Definition of Done um eine Liste, die der Scrum Master vor dir vor einigen Jahren in den Untiefen von Confluence angelegt hat, dann solltest du deine Antwort überdenken.
Wenn es keine Definition of Done gibt oder sie nicht allen Mitgliedern im Team bekannt ist, dann verwende ich das „Now, Next, Later“-Vorgehen, um eine initiale Definition of Done zu erstellen. Hier eine kurze Anleitung dazu:
Bitte die Mitglieder deines Scrum Teams (lade gerne auch Stakeholder dazu ein), ein Brainstorming durchzuführen. Was sollte alles Teil der Definition of Done sein, damit unsere Arbeit den höchsten Qualitätsstandards entspricht und die Arbeit am Inkrement vollständig abgeschlossen ist? Beim Brainstorming sind alle Vorschläge erlaubt.Nun lass die Teammitglieder die Punkte identifizieren, die sie bereits tun oder jetzt tun könnten. Diese Punkte gruppierst du unter „Now“.Bei den restlichen Vorschlägen hilfst du dem Team zu entscheiden: Können wir mit diesem Vorschlag die aktuelle Definition of Done einfach verbessern? Dann gruppiere den Punkt unter „Next“. Kostet euch die Umsetzung dieses Vorschlags viel Zeit oder Geld, dann ordne ihn unter „Later“ ein.
Mit dem „Now, Next, Later“-Vorgehen hast du die aktuell geltende Definition of Done sowie mögliche Verbesserungen sichtbar gemacht.
Schritt 2: Das Scrum Team muss die Definition of Done tatsächlich verwenden
Die Definition of Done zu kennen, ist eine Sache; sie auch anzuwenden, eine andere.
Die stringente Einhaltung der Definition of Done kann sehr anspruchsvoll sein. Ich erinnere mich noch an Situationen wie: Letzter Tag im Sprint und eine User Story muss unbedingt noch fertig werden. Deshalb hat das Team entschieden, auf eine ausführliche Dokumentation zu verzichten. Oder im Supportteam stapeln sich Meldungen, dass Nutzer sich nicht mehr einloggen können. Um den Bug möglichst schnell zu lösen, wird auf ein Code-Review verzichtet.
In solchen Situationen sollten wir das Team an die Einhaltung der Definition of Done erinnern. Wir sollten es ihm nicht leicht machen, die Qualität des Codes zugunsten einer höheren Entwicklungsgeschwindigkeit zu opfern.
Natürlich hilft uns die Definition of Done nicht nur in diesen extremen Situationen. Sie sollte ein ständiger Begleiter der Arbeit des Teams sein. Hier einige Beispiele, bei denen die Definition of Done dem Team in seiner Arbeit hilft:
Product Backlog Refinement: Die Definition of Done hilft, Details von Product-Backlog-Einträgen zu klären. Sollte dieser Eintrag von der Fachabteilung getestet werden, bevor wir ihn als fertig ansehen können?Sprint Planning: Die Einträge der Definition of Done können Tasks im Sprint Backlog darstellen, etwa „Unit-Test abgeschlossen“.Daily Scrum: Die Definition of Done unterstützt die Entwickler dabei abzuschätzen, wie viel Arbeit noch erforderlich ist. Welche Tests fehlen noch zum Abschluss dieses Eintrags?Sprint Review: Die Definition of Done macht den Stakeholdern transparent, welche Arbeiten und Qualitätsmaßnahmen bei der Umsetzung der Funktionalität durchgeführt wurden.Sprint Retrospektive: Maßnahmen gegen wiederkehrende Probleme lassen sich in der Definition of Done festhalten. Zum Beispiel: Die Programmierung ist erst dann abgeschlossen, wenn der Code auch refactored ist.Schritt 3: Das Scrum Team muss die Definition of Done stetig weiterentwickeln, um die Qualität des Produkts und des Arbeitsprozesses zu verbessern
Die erfolgreichsten Scrum Teams, mit denen ich bisher gearbeitet habe, waren Teams, die sich immer weiter verbessert haben.
Ohne übermäßig viel Planung und Analyse zu betreiben, sich aber kontinuierlich zu verbessern, darum geht es letztendlich in Scrum. Dabei machen Scrum Teams auch nicht vor der Definition of Done halt.
Deshalb sollte dich der letzte Schritt nicht verwundern:
Nachdem die initiale Definition of Done vom Team verstanden und in der täglichen Arbeit umgesetzt wird, geht es darum, sie weiter zu verbessern. Die beste Möglichkeit hierzu bietet die Sprint Retrospektive, da sie einen geschützten Raum bietet, um den Arbeitsprozess zu betrachten und zu verbessern.
Hier zwei Ideen für deine nächste Sprint Retrospektive:
Verwende das Ergebnis des „Now, Next, Later“-Vorgehens und frage das Scrum Team, wie ihr im nächsten Sprint einen Eintrag von „Next“ nach „Now“ verschieben könnt.
Stelle Fragen, deren Antworten Anlass zur Verbesserung der Definition of Done geben können:
Welche Tests sollten automatisiert werden?Welchen Entwicklungsstandards sollten wir folgen, um technisch exzellente Software zu schreiben?Wie kann unsere Arbeit behördlichen, rechtlichen oder anderen Compliance-Standards genügen?
Jetzt kennst du meine drei bewährten Schritte, wie ich in der Vergangenheit Scrum Teams geholfen habe, die Definition of Done zu verwenden.
In welchem Schritt befindest du dich?
Schreibe es mir in den Kommentaren. Bestimmt kann ich dir helfen, noch einen Schritt weiterzukommen.