Een 'definitie van voltooid' is een gedeelde, expliciete beschrijving van de voorwaarden waaraan moet worden voldaan voordat een taak als voltooid wordt beschouwd. In tegenstelling tot acceptatiecriteria, die specifiek zijn voor een individueel onderdeel, is een definitie van voltooid uniform van toepassing op alles wat een team produceert en belichaamt deze de kwaliteitsnorm die het team zichzelf oplegt.
Het doel ervan is om volledigheid objectief en consistent te maken. Zonder een dergelijke definitie betekent 'klaar' wat de individuele ontwikkelaar er ook maar onder verstaat, wat varieert afhankelijk van de tijdsdruk en wie er om gevraagd wordt. Voor de één omvat 'klaar' testen, documentatie, toegankelijkheidscontroles en implementatie; voor de ander betekent het dat de code compileert op zijn of haar machine. Deze variatie is onzichtbaar totdat de gevolgen zich openbaren, meestal in de vorm van laat ontdekte defecten of werk dat herzien moet worden voordat het kan worden uitgebracht.
Een typische definitie omvat de voltooiing van de codebeoordeling, geautomatiseerde testdekking volgens een overeengekomen standaard, het slagen van alle tests, het voldoen aan de toegankelijkheidsvereisten, het bijwerken van de documentatie, het aanpakken van beveiligingsaspecten, prestaties binnen vastgestelde drempelwaarden en de implementatie in ten minste een stagingomgeving. De specifieke inhoud is minder belangrijk dan dat deze is overeengekomen, schriftelijk vastgelegd en daadwerkelijk toegepast in plaats van slechts een streven te zijn.
De belangrijkste functie is het voorkomen van de stille ophoping van verborgen werk. Items die als voltooid worden gemarkeerd zonder tests, documentatie of toegankelijkheidsverbeteringen, lijken vooruitgang te boeken, terwijl ze verplichtingen creëren die later moeten worden nagekomen, meestal onder slechtere omstandigheden. Een team dat gestage levering rapporteert terwijl deze achterstand zich opbouwt, geeft een illusie weer, en de afrekening komt enkele maanden later in de vorm van een onverklaarbare vertraging.
Het beschermt ook de kwaliteit onder druk, juist wanneer het er het meest toe doet en de kans het grootst is dat het werk wordt verwaarloosd. Wanneer een deadline nadert, is de druk om de norm te versoepelen enorm en wordt die versoepeling zelden expliciet gemaakt; taken worden simpelweg als afgerond gemarkeerd, terwijl bepaalde onderdelen worden weggelaten. Door de definitie als niet-onderhandelbaar te beschouwen en in plaats daarvan de scope te verkleinen wanneer de planning in gevaar komt, onderscheidt men teams met een daadwerkelijke snelheid van teams waarvan de gerapporteerde voortgang uit de toekomst wordt gehaald.
De definitie moet meegroeien met de mogelijkheden, in plaats van eenmalig vast te staan. Een team zonder geautomatiseerde implementatie kan de definitie in eerste instantie niet opnemen, maar moet deze toevoegen zodra de mogelijkheden aanwezig zijn. Door de definitie periodiek te herzien, bijvoorbeeld tijdens retrospectieven, en de norm aan te passen naarmate de werkwijzen zich ontwikkelen, wordt het een mechanisme voor doelbewuste verbetering in plaats van een statische checklist.
De definitie moet ook haalbaar zijn, want een norm waaraan het team onder normale omstandigheden niet kan voldoen, zal stilletjes genegeerd worden in plaats van openlijk heronderhandeld. Een genegeerde definitie is erger dan een bescheiden definitie, omdat het de gedeelde referentie volledig wegneemt. Door de norm vast te stellen op een niveau dat het team daadwerkelijk kan volhouden, en deze vervolgens bewust te verhogen naarmate de capaciteit verbetert, ontstaat een norm die daadwerkelijk het gedrag stuurt.
Wanneer werk daadwerkelijk niet aan de norm voldoet, is de eerlijke reactie om de uitzondering expliciet vast te leggen in plaats van de definitie van 'klaar' te herzien. Een artikel dat zonder specifieke controle wordt verzonden, om een aangegeven reden, met een geregistreerde herstelactie, is een beheerde beslissing. Hetzelfde artikel dat als 'klaar' wordt gemarkeerd, maar waarbij de omissie niet wordt vastgelegd, is technische schuld waar niemand mee heeft ingestemd en die niemand zich zal herinneren.
Omdat de definitie bepaalt wat kwaliteit in de praktijk betekent, is overeenstemming nodig van degenen die verantwoordelijk zijn voor de gevolgen, en niet alleen van het uitvoeringsteam. In de praktijk wordt dit vastgesteld binnen productontwikkeling waarbij de toegankelijkheids- en gebruiksnormen zijn afgeleid van UX-audit criteria en de prestatiedrempels van webprestaties budgetten, zodat de norm de gehele verplichting weerspiegelt in plaats van alleen de functionele.