Vad betyder klart? Definition of Done i praktiken
Definition of Done är en gemensam, skriftlig lista över vad som krävs för att något ska räknas som klart – inte bara att koden finns, utan att den är testad, dokumenterad och driftsatt. För en beställare är den ett skydd mot halvfärdiga leveranser, eftersom den kopplar ordet klart till konkreta kriterier alla enats om i förväg.
“Är det klart?” “Ja, det är klart.” Två veckor senare visar det sig att funktionen aldrig testades ordentligt, saknar dokumentation och inte ens är driftsatt hos användarna. Ordet klart är projektvärldens mest missbrukade, för det betyder olika saker för olika personer. Lösningen är en gemensam Definition of Done: en skriftlig överenskommelse om vad som faktiskt krävs innan något får kallas färdigt.
Vad en Definition of Done innehåller
En Definition of Done är en lista med kriterier som gäller lika för allt som byggs. Den fångar den obekväma sanningen att kod inte är klar bara för att den finns och verkar fungera. Runt själva byggandet finns en svans av arbete som annars osynligt skjuts på framtiden.
Ett rimligt exempel på en Definition of Done kan omfatta:
- Funktionen uppfyller sina acceptanskriterier. Den gör det den skulle göra.
- Koden är granskad. Minst en annan utvecklare har läst och godkänt den.
- Tester finns och passerar. Funktionen är testad, och testerna körs automatiskt.
- Dokumentation är uppdaterad. Nästa person förstår hur det hänger ihop.
- Driftsatt i rätt miljö. Koden finns där den ska, inte bara på en utvecklares dator.
- Inga kända allvarliga fel kvarstår. Det som lämnas är faktiskt användbart.
Listan behöver inte vara lång, men den ska vara gemensam och skriven. Poängen är att alla – utvecklare, testare och du som beställare – menar samma sak när ordet klart används.
Varför “koden fungerar” inte räcker
Tänk dig att du beställer ett nybyggt kök. Snickaren säger att det är klart. Du kommer dit och skåpen hänger på plats – men vitvarorna är inte inkopplade, det saknas handtag och ingen har städat efter sig. Fungerar köket? Delvis. Är det klart? Nej.
Digital utveckling är likadan. En funktion som lever på utvecklarens dator men saknar tester, dokumentation och driftsättning är köket utan inkopplade vitvaror. Den ser färdig ut i en demo men bär på osynligt restarbete som förr eller senare landar i knät på dig – ofta som en oväntad kostnad eller ett fel i produktion. Definition of Done tvingar fram det arbetet innan något räknas som klart, i stället för efteråt.
Ett konkret exempel
Säg att teamet ska leverera en inloggning med BankID. Utan Definition of Done demonstreras den i ett möte, ser bra ut, och bockas av som klar. Tre veckor senare upptäcks att den bara testades manuellt en gång, att felhanteringen är bristfällig när BankID svarar långsamt, och att ingen dokumenterat hur den ska driftsättas i produktionsmiljön.
Med en Definition of Done på plats kan funktionen inte bockas av förrän den är granskad, har automatiska tester som täcker även trögt BankID-svar, är dokumenterad och faktiskt driftsatt. Demon ser exakt likadan ut – men det du får är färdigt hela vägen, inte bara på ytan. Skillnaden märks inte den dagen; den märks veckan då något annat ändras och den gamla funktionen inte rasar med.
Kopplingen till avtal och fakturor
Definition of Done är som mest kraftfull när den knyts till vad som räknas som en godkänd, och därmed fakturerbar, leverans. Om betalningen sker mot levererade delar behöver båda parter veta exakt vad som ska vara uppfyllt innan en del får godkännas.
Utan den överenskommelsen blir varje godkännande en förhandling om tyckande, ofta när irritationen redan är på väg upp. Med den blir godkännandet en avstämning mot en lista alla enats om medan stämningen var god. Det skyddar båda: du slipper betala för halvfärdigt, och leverantören slipper oändliga diskussioner om vad som egentligen ingick.
Ta därför upp frågan tidigt, medan alla är sams, och skriv in den i avtalet eller i arbetssättet. Att definiera klart i efterhand, när en leverans redan är ifrågasatt, är betydligt svårare.
Vi på Weapp arbetar med tydliga kriterier för vad som räknas som färdigt, just för att undvika de diskussionerna. Vill du ha den tydligheten i ditt projekt? Läs om våra tjänster eller hör av dig med en kort beskrivning av vad du vill bygga.
Vanliga frågor
Vad är Definition of Done?
Definition of Done är en överenskommen lista över de kriterier som måste vara uppfyllda för att en uppgift ska räknas som färdig. Den fångar att kod inte är klar bara för att den existerar – den ska vara testad, granskad, dokumenterad och driftsatt. Listan gäller lika för alla uppgifter och tas fram gemensamt innan arbetet börjar.
Varför räcker det inte att koden fungerar?
För att en funktion som fungerar på utvecklarens dator men saknar tester, dokumentation eller driftsättning inte är klar i praktiken. Den kan gå sönder vid nästa ändring, ingen vet hur den ska förvaltas och den finns kanske inte ens tillgänglig för användarna. Definition of Done fångar allt det arbete som annars osynligt skjuts på framtiden.
Hur förhandlar jag in Definition of Done i ett avtal?
Ta upp den innan arbetet börjar och koppla den till vad som räknas som en godkänd leverans. Den kan skrivas in i avtalet eller i det gemensamma arbetssättet. Poängen är att båda parter enas om vad klart betyder medan alla är sams – inte att försöka definiera det i efterhand när en leverans redan är ifrågasatt.
Hänger Definition of Done ihop med faktureringen?
Ja. Om betalning är kopplad till levererade och godkända delar blir Definition of Done måttstocken för vad som får godkännas. Utan den blir godkännandet en förhandling om tyckande. Med den vet båda parter i förväg exakt vad som ska vara på plats innan en leverans räknas – och därmed innan den kan faktureras.
Skiljer sig Definition of Done från acceptanskriterier?
Ja. Definition of Done är generell och gäller alla uppgifter lika – testad, granskad, driftsatt. Acceptanskriterier är specifika för en enskild funktion och beskriver just vad den ska göra. De kompletterar varandra: acceptanskriterierna säger vad som ska byggas, Definition of Done säger vilken kvalitetsnivå allt måste nå.