Definicja stanu „zakończone”
Definicja zakończenia to lista kontrolna obowiązująca w całym zespole, którą każda historia musi spełnić przed wydaniem. Przykładowa definicja zakończenia, kto jest za nią odpowiedzialny oraz czym różni się ona od kryteriów akceptacji.
Definicja zakończenia to jedna lista kontrolna dla całego zespołu — standard, który każda historia musi spełnić, zanim zostanie uznana za ukończoną. Kryteria akceptacji dotyczą poszczególnych historii; definicja zakończenia ma charakter ogólny. Pomylenie tych dwóch pojęć prowadzi do sytuacji, w której „zakończone” niepostrzeżenie zaczyna oznaczać „działa na moim komputerze”.
Każdy zespół doświadczył rozbieżności między stwierdzeniem „programista twierdzi, że zadanie jest gotowe” a stwierdzeniem „można to faktycznie wprowadzić do produkcji”. Definicja gotowości pozwala tę lukę zniwelować. Należy ją uzgodnić raz i egzekwować w każdym sprincie, niezależnie od tego, na czym polega dana historia użytkownika. Bez tego „gotowość” pozostaje kwestią indywidualnej opinii — a różnice ujawniają się podczas prezentacji, a w najgorszym przypadku — już w środowisku produkcyjnym.
Lista kontrolna „definicji zakończenia” (przykład)
Praktyczny punkt wyjścia dla zespołu zajmującego się wdrażaniem aplikacji internetowej:
- Kryteria akceptacji zostały spełnione i zweryfikowane.
- Kod został sprawdzony i wkomponowany do gałęzi głównej.
- Napisano i pomyślnie przeprowadzono testy automatyczne; nie pojawiły się żadne nowe niestabilne testy.
- Nie odnotowano żadnych regresji ani otwartych błędów krytycznych związanych z tym zadaniem.
- Zaktualizowano dokumentację i dziennik zmian w zakresie zmian mających wpływ na użytkowników.
- Wdrożono do środowiska testowego i przeprowadzono testy sprawdzające.
- Właściciel produktu wyraził na to zgodę.
Proszę to przejąć, a następnie dostosować do tego, co Państwa zespół faktycznie będzie egzekwował. Definicja zakończenia zawierająca punkt, którego nikt nie sprawdza, jest gorsza niż krótka definicja — uczy to zespół traktowania całej listy jako elementu dekoracyjnego. Proszę zmieścić ją na jednym ekranie i zadbać o to, by każdy punkt dał się zweryfikować.
Różnica między definicją „zakończenia” a kryteriami akceptacji
To właśnie ta różnica sprawia zespołom najwięcej trudności. Kryteria akceptacji dla historii „logowania” odnoszą się konkretnie do logowania — po podaniu prawidłowych danych uwierzytelniających użytkownik trafia na pulpit nawigacyjny, a trzy nieudane próby powodują zablokowanie konta. Definicja zakończenia — sprawdzona, przetestowana, wdrożona — jest identyczna dla historii „logowania”, „wyszukiwania” i „rozliczeń”. Kryteria mają charakter lokalny i odpowiadają na pytanie: „Czy stworzyliśmy właściwą rzecz?”. Definicja zakończenia ma charakter globalny i odpowiada na pytanie: „Czy jakakolwiek część naszej pracy nadaje się do wdrożenia?”. Historia nie jest ukończona, dopóki nie przejdzie przez obie te bramki.
Różnica między definicją „gotowy” a definicją „zrealizowany”
To są dwa różne elementy, a nie symetryczne bliźniaki. Definicja gotowości pozwala na włączenie zadania do sprintu — musi być ono wystarczająco małe, jasne i oszacowane. Definicja zakończenia pozwala na wyłączenie ukończonej pracy ze sprintu. Gotowość dotyczy zadania; zakończenie dotyczy pracy. Zespoły, które stosują tylko jedną z tych definicji, zazwyczaj wybierają „gotowość” (ponieważ niegotowe zadania są bardzo widoczne) i po cichu pozwalają, by „zakończenie” schodziło na dalszy plan — w ten sposób gromadzą się zadania przenoszone z poprzedniego sprintu oraz te „zrealizowane w 90%”.
Te trzy listy kontrolne przestają się ze sobą zlewać, gdy tylko zorientuje się Pan, co każda z nich obejmuje:
| Definicja słowa „gotowy” | Kryteria akceptacji | Definicja stanu „zakończone” | |
|---|---|---|---|
| Zakres | Na całym świecie — każda historia | Wiadomości lokalne — ten artykuł | Na całym świecie — każda historia |
| Gates | Wejście w sprint | Własny finał tej historii | Zakończenie sprintu |
| Odpowiedzi | „Czy możemy już zacząć?” | „Czy stworzyliśmy to, co trzeba?” | „Czy nadaje się do wysyłki?” |
| Własność | Zespół wraz z właścicielem produktu | Właściciel produktu wraz z zespołem | Zespół |
Kto jest odpowiedzialny za określenie kryteriów zakończenia zadania?
Zespół to opracowuje; zespół to egzekwuje. Scrum master pełni rolę moderatora, a właściciel produktu ma wpływ na poziom akceptacji, jednak to inżynierowie decydują, co technicznie oznacza „zakończone” — ponieważ nieprecyzyjnie zdefiniowane „zakończone” stanowi dług, za który płacą oni sami, a nie kierownictwo. Proszę powrócić do tej kwestii podczas retrospektywy, gdy ta sama luka wciąż się powtarza; jest to sygnał, że brakuje jakiegoś kryterium.
Co idzie nie tak
Definicja „gotowości” staje się plakatem. Jest przypięta na wiki zespołu, odczytywana podczas wdrażania nowych pracowników, a pod presją terminów ignorowana — „testy napiszemy w następnym sprincie”. Dwa sprinty później dług testowy staje się strukturalny, a definicja „gotowości” jest fikcją. Kiedy pojęcie „zakończone” jest niejasne, prędkość zawyża się: zespół zapisuje punkty za pracę, która w rzeczywistości nie nadaje się do wydania, a prognoza po cichu traci wszelkie znaczenie.
Rozwiązaniem nie jest dłuższa lista, lecz krótsza, której zespół będzie się ściśle trzymał. Definicja „zakończone” ma znaczenie tylko w takim stopniu, w jakim są Państwo gotowi nie oznaczyć danego zadania jako zakończonego, ponieważ nie spełniło ono jednego z kryteriów.
Kryteria akceptacji stanowią punkt kontrolny dla danego zadania. Definicja zakończenia stanowi punkt kontrolny dla zespołu. Proszę zadbać o to, by były one na tyle zwięzłe, aby faktycznie można je było egzekwować — punkt kontrolny, który nie jest egzekwowany, to tylko formalność.
Najczęściej zadawane pytania
Jaka jest definicja „zakończenia” w metodologii agile?
Definicja „zakończone” to pojedyncza lista kontrolna, której każdy element musi spełnić, zanim zostanie uznany za ukończony — zazwyczaj obejmuje to przetestowanie, przegląd kodu, scalanie, udokumentowanie oraz wdrożenie do środowiska testowego. Jest to jeden wspólny standard dla całego zespołu, a nie lista odrębna dla każdego elementu, i ma on na celu zapewnienie, że termin „zakończone” oznacza zawsze to samo, niezależnie od tego, kto go używa.
Jaka jest różnica między definicją „zakończenia” a kryteriami akceptacji?
Definicja zakończenia ma charakter ogólny — ten sam punkt kontrolny dla każdego zadania. Kryteria akceptacji mają charakter lokalny — odnoszą się konkretnie do jednego zadania. Kryteria akceptacji określają, jak dana funkcja powinna działać; definicja zakończenia określa, co oznacza termin „gotowe do wydania” w odniesieniu do każdego wyniku pracy zespołu. Zadanie musi spełnić oba te warunki.
Czym jest lista kontrolna „definicji zakończenia”?
Krótka, jasno sformułowana lista warunków mających zastosowanie do każdego zadania: kod sprawdzony i wkompilowany, testy napisane i zakończone sukcesem, brak znanych regresji, dokumentacja zaktualizowana, wdrożenie w środowisku testowym oraz akceptacja przez właściciela produktu. Konkretne pozycje mogą się różnić w zależności od zespołu, jednak lista powinna zmieścić się na jednym ekranie, a każdy punkt powinien dać się zweryfikować.
Jaka jest różnica między definicją „gotowości” a definicją „zakończenia”?
Etap „gotowości” wyznacza moment wejścia w sprint — to próg, który zadanie musi spełnić, zanim zespół podejmie się jego realizacji. Etap „zakończenia” wyznacza moment wyjścia ze sprintu — to próg, który ukończona praca musi spełnić przed jej wydaniem. Etap „gotowości” dotyczy prawidłowego sformułowania zadania; etap „zakończenia” dotyczy tego, czy praca nadaje się do wydania.
Kto ustala definicję „zakończenia”?
Odpowiedzialność za to spoczywa na zespole programistycznym, zazwyczaj przy wsparciu scrum mastera. Właściciel produktu ma wpływ na ustalenie kryteriów akceptacji, ale to osoby wykonujące pracę decydują, co technicznie oznacza „zakończone” — ponieważ to właśnie one ponoszą konsekwencje, gdy definicja ta jest zbyt ogólna.
Warto przeczytać
- Szacowanie w metodologii agile: kompletny przewodnik — tutaj znajdą Państwo wszystkie niezbędne informacje.
- Kryteria akceptacji — testy dotyczące poszczególnych zadań, z którymi często mylona jest definicja zakończenia.
- Definicja terminu „ready” — brama mety znajdująca się na drugim końcu sprintu.
- Błędy związane z planowaniem pokerowym — w jaki sposób nieprecyzyjne określenie „gotowe” zawyża wskaźnik prędkości.