Definition of Done
Definition of Done (DoD) er et sæt fælles kvalitetskriterier, som teamet aftaler, at arbejdet skal opfylde, før noget må betragtes som færdigt.
DoD hjælper teamet med at have en fælles forståelse af, hvad det betyder, når en user story har status Done.
Et team kunne fx have følgende Definition of Done:
En user story er Done, når:
- funktionaliteten er implementeret
- koden kan compile, og programmet kan køre
- relevante tests er gennemført
- koden er reviewet af et andet teammedlem
- ændringerne er committed og pushet til GitHub
- user storyens acceptkriterier er opfyldt
- der ikke er kendte alvorlige fejl
Det væsentlige er, at DoD gælder generelt for teamets arbejde. Den beskriver altså ikke den konkrete funktionalitet i en bestemt user story.
Definition of Done og acceptkriterier kan umiddelbart ligne hinanden, men de har forskellige formål.
| Acceptkriterier | Definition of Done | |
|---|---|---|
| Handler om | Hvad funktionen skal kunne | Hvornår arbejdet har tilstrækkelig kvalitet til at være færdigt |
| Gælder for | Den enkelte user story | Alle user stories/teamets arbejde |
| Eksempel | “Brugeren kan registrere en træning med dato og varighed” | “Koden er testet og reviewet” |
| Kan variere | Ja, fra user story til user story | Er normalt fælles for teamet |
En enkel huskeregel er derfor:
Acceptkriterier: Har vi bygget det rigtige?
Definition of Done: Er vi ordentligt færdige med det?
Teamet arbejder med følgende user story:
Som fitnessbruger vil jeg kunne registrere en træning, så jeg kan følge min træningshistorik.
- Der kan angives dato.
- Der kan angives træningstype.
- Der kan angives varighed.
- Træningen gemmes i databasen.
Acceptkriterierne beskriver altså den konkrete funktionalitet, som skal være på plads.
Selvom alle fire acceptkriterier er opfyldt, er user storyen ikke nødvendigvis Done.
Teamets Definition of Done kan fx også kræve, at:
- koden er testet
- koden er reviewet
- ændringerne er committed og pushet til GitHub
- der ikke er kendte alvorlige fejl
Først når både acceptkriterierne og teamets Definition of Done er opfyldt, kan user storyen flyttes til Done på teamets Kanban-board.
En fælles Definition of Done hjælper teamet med at:
- sikre en fælles forståelse af, hvad færdig betyder
- sikre en ensartet kvalitet
- undgå at næsten færdigt arbejde bliver markeret som Done
- gøre status på Kanban-boardet mere troværdig
- huske aktiviteter som test, code review og dokumentation
DoD fungerer dermed som teamets fælles kvalitetsaftale for, hvornår arbejdet kan betragtes som færdigt.