DevOpsDe fases van de Definition of Done voor een team

De Definition of done volgens de Scrum guide

Uit de Scrum guide:
“When a Product Backlog item or an Increment is described as “Done”, everyone must understand what “Done” means. Although this may vary significantly per Scrum Team, members must have a shared understanding of what it means for work to be complete, to ensure transparency. This is the definition of “Done” for the Scrum Team and is used to assess when work is complete on the product Increment.”

Ook uit de Scrum guide:

“Development Teams deliver an Increment of product functionality every Sprint. This Increment is useable, so a Product Owner may choose to immediately release it.”

De reden

Bij voorkeur willen we als Scrum team zelf kunnen beslissen wanneer we onze software naar productie zetten. Door de Definition of Done zo op te zetten dat je aan alle voorwaarden voldoet van de organisatie is dus een goede stap om de rest van de organisatie ervan te overtuigen, dat ze dit in de handen van het Scrum team kunnen leggen.

Door onze software sneller in productie te kunnen zetten (of eigenlijk: beschikbaar maken voor de klant of gebruiker) leveren we echte waarde, krijgen we eerder feedback en kunnen dus sneller aan nieuwe wensen voldoen.

De eerste fase – opportunisme

Bij de eerste kennismaking met een team wil ik graag dat het team zelf de definition of done samenstelt, zodat het vanaf dag één van het team wordt. Dit doe ik door de simpele vraag te stellen: wat moeten we doen voor een user story om het naar productie te krijgen?

Hier komen natuurlijk de logische acties uit: programmeren, testen, maar bij organisaties waar dit het eerste team is komt hier het hele release proces om de hoek kijken: moet naar het Change Advisory  Board, moet ingepland worden in het release schedule, enzovoort.

Na nog wat discussie komen we dan meestal uit op een Definition of Done die moet voldoen aan wel 20 eisen moet voldoen.

De tweede fase – realisme

Aan het einde van de eerste sprint stellen we natuurlijk de vragen:

  • Hoe ging deze sprint?
  • Hoe is je eerste ervaring met Scrum?
  • En… wat hebben we allemaal afgekregen?

In het algemeen zijn mensen wel tevreden over hoe het ging. Ze vinden ze Scrum wennen, maar wel prettig werken. Ik krijg vooral vaak te horen dat  de samenwerking erg prettig is. Vervolgens kijkt het team naar het sprintbord en concludeert: alle taken staan op done, dus we hebben alles af. Totdat we de Definition of Done erbij pakken, dan blijkt dat er helemaal niets echt af is.

Is dit erg? Ik vind van niet. Het leereffect hiervan is namelijk erg sterk. Daarnaast zal een eerste Scrum team in de meeste gevallen in de organisatie toch nog te maken hebben met alle processen die bij de productiegang van software horen. Zoals releaseplannen en boards die hun akkoord moeten geven.

De vraag is dan ook: hoever kunnen we komen zonder hulp van buiten het team? We stellen daarvoor een processchema op en geven het punt aan tot waar we kunnen komen. Op basis hiervan herijken we de Definition of Done, zodat we de volgende sprint wel met onze user stories er aan kunnen voldoen.

De derde fase: overname

We hebben nu een Definition of Done waar we aan kunnen voldoen en we weten ook welke stappen nog gezet moeten worden om als Scrum team de controle in handen te krijgen voor de productiegang van onze software.

De eerste stap is bijvoorbeeld het overnemen van de taken van systeembeheer om onze software een stap verder in het proces te krijgen ( in een OTAP straat zie je vaak, dat je eerst naar Acceptatie een release doet). Bij voorkeur automatiseer je dit, zodat je ook de verantwoordelijke gerust kunt stellen dat alles altijd op de juiste manier gebeurt.

De Definition of Done wordt nu uitgebreid met de volgende stappen, die nu onder verantwoordelijkheid van het Scrum team vallen. Bij voorkeur krijg je het als team voor elkaar om deze fase compleet door te voeren, dus helemaal naar productie.

De vierde fase: versnelling

Nu je als scrum team het hele proces in handen hebt, kun je het proces gaan versnellen. Deels kan dit door in de fase drie genoemde automatisering van handmatige processen, maar ook door stappen van het proces compleet uit te faseren.

Versnelling kan ook gebeuren door het proces te verbeteren. Denk aan automatisering van unit tests, of Infrastructure as Code oplossingen. Deze nieuwe technieken zijn dan weer een aanpassing voor het team in de Definition of Done.

In welke fase zit jouw Definition of Done?

Bij een kritisch Agile team zal de definition of done in het begin flink schommelen qua activiteiten, maar ook als het eerste stof gedaald is zal de Definition of done vaak wisselen omdat het team zichzelf en het proces steeds meer verbetert.

Belangrijk hierbij: probeer altijd de feedbackloop zo kort mogelijk te krijgen, zodat je nóg beter kunt inspelen op de wensen en behoeften van je klanten en gebruikers.

Wij helpen graag met het opstellen van de Definition of Done en het verbeteren van het proces om de Definition of Done zo scherp mogelijk te kunnen stellen voor het team. Het is een goede practice om te zorgen, dat je product met hoge kwaliteit bij de klanten terecht komt.

Alex Roos, DevOps Consultant