Często spotykam się z pytaniem „Czym różnią się kryteria akceptacji od “definition of done”? Zazwyczaj takiej wiedzy szukają osoby, które są na początku swojej drogi. Ale równie często zadają je ci, którzy po prostu nie mieli jeszcze okazji pracować w zespołach zwinnych.
Różnicę między kryteriami akceptacji i “definition of done” można porównać do różnicy jak między przepisem na tort a podaniem go na imprezie urodzinowej.
Czym w teorii różnią się kryteria akceptacji od “definition of done?”
Kryteria akceptacji to zestaw warunków, jakie muszą być spełnione, aby implementacja mogła być uznana za dowiezioną. Będą one opisywać szczegóły implementacji i warunki, pod jakimi będzie ona działać (lub nie) itd. W moim poprzednim artykule – „Przykład kryteriów akceptacji do filtrowania listy (faktur)” jeszcze lepiej zgłębisz ten temat! Kryteria akceptacji określają też kiedy pisanie kodu zostanie uznane za zakończone.
Natomiast celem definition of done (DoD) jest uzgodnienie, co musi być zrobione, żeby dana zmiana mogła zostać wdrożona.
Definition of done w szczegółach
Definition of done może obejmować:
Elementy, które dotyczą samego pisania kodu, takie jak:
- napisane są unit testy,
- code review zostało zrobione i kod został zaakceptowany przez co najmniej jednego reviewera,
- napisane zostały testy integracyjne (lub inne).
Środowiska, na którym dana implementacja powinna się znaleźć
- kod jest wdrożony na środowisko UAT
Elementy testowania i akceptowania kodu:
- testy manualne zostały wykonane na desktopie i mobilce,
- wszystkie znalezione bugi zostały naprawione,
- implementacja została zaakceptowana przez Product Ownera.
oraz innych elementów, które uznamy za niezbędne, żeby „zamknąć temat”
- dokumentacja jest stworzona / uaktualniona,
- use case’y do testów automatycznych są napisane.
Różnica między kryteriami akceptacji a DoD w praktyce!
Nawiązanie do tortu nie było przypadkowe. Uwielbiam piec, więc skojarzenie nasunęło mi się samo
Kryteria akceptacji to opis tego jak ma wyglądać i smakować tort:
- tort ma być biszkoptowy,
- ma składać się z 3 blatów,
- ma być z kremem śmietankowym,
- między blatami mają być maliny
Definition of done natomiast uwzględni to, co ma się „stać” z tym tortem:
- tort ma być umieszczony na ozdobnej paterze
- do czasu imprezy tort ma zostać umieszczony w lodówce,
- ilość świeczek na torcie ma odpowiadać wiekowi solenizanta,
- zostanie wykonane zdjęcie gotowego tortu ze świeczkami,
- zostanie wykonane zdjęcie gotowego tortu ze świeczkami i solenizantem
itd.
Po co nam definition of done?
- Żeby wiedzieć, na co się tak naprawdę umawiamy,
- Żeby wiedzieć, co jest potrzebne, by móc powiedzieć klientowi: „Tak, to już jest gotowe po naszej stronie”.
Ale uwaga — to nie jest jedyne definition of done, jakie może istnieć. Opisałam najczęstszy przypadek, czyli DoD dla implementacji (user story). Możemy również określać DoD dla sprintu, wydania itd.
Mam nadzieję, że metafora tortu trafiła do Twojej wyobraźni!.
Jeśli nasunęły Ci się jakieś pytania — zadaj je mi w komentarzu. Zawsze odpowiadam!