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 odnoszą się do poszczególnych historii; definicja zakończenia ma charakter ogólny. Pomylenie tych dwóch pojęć prowadzi do sytuacji, w której „zakończone” po cichu 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ć. Wystarczy uzgodnić ją raz i egzekwować w każdym sprincie, niezależnie od tego, na czym polega dana historia użytkownika. Bez tego pojęcie „gotowe” pozostaje subiektywną opinią poszczególnych osób, a różnice ujawniają się podczas prezentacji, a w najgorszym przypadku – w środowisku produkcyjnym.
Lista kontrolna „Definicja 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 głównej gałęzi.
- 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ę oraz 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. Sprawia to, że zespół traktuje całą listę jako element dekoracyjny. Proszę zmieścić ją na jednym ekranie, a każdy punkt powinien 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 „logowanie” odnoszą się konkretnie do procesu logowania: prawidłowe dane logowania przenoszą użytkownika do pulpitu nawigacyjnego, a trzy nieudane próby blokują konto. Definicja zakończenia (sprawdzone, przetestowane, wdrożone) jest identyczna dla historii „logowanie”, „wyszukiwanie” oraz „rozliczenia”. 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ą „gotowości” a definicją „zakończenia”
To są elementy uzupełniające się, a nie symetryczne bliźniaki. Definicja gotowości pozwala na włączenie zadania do sprintu: musi być wystarczająco małe, wystarczająco 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ą głośno sygnalizowane) i po cichu pozwalają, by kwestia „zakończenia” schodziła 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 zorientują się Państwo, 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 – ta historia | Na całym świecie, każda historia |
| Bramy | Wejście w sprint | Własny finał tej historii | Zakończenie sprintu |
| Odpowiedzi | „Czy możemy już zacząć?” | „Czy stworzyliśmy właściwy produkt?” | „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ół dba o jego przestrzeganie. Scrum master pełni rolę moderatora, a właściciel produktu ma wpływ na poziom akceptacji, jednak to inżynierowie decydują, czego wymaga technicznie pojęcie „zakończone”, ponieważ nieprecyzyjnie zdefiniowane „zakończone” stanowi dług, za który odpowiadają 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 jakiejś granicy.
Co może pójść nie tak
Definicja „zakończenia” 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 ma charakter strukturalny, a definicja staje się fikcją. Gdy pojęcie „zakończenia” jest niejasne, prędkość zawyża się: zespół przypisuje 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ńczonego zadania” ma sens tylko wtedy, gdy uwzględnia zadania, których nie zamierzają Państwo oznaczyć jako zakończone, ponieważ nie spełniły one 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ńczenia” to pojedyncza lista kontrolna, której każda historia musi spełnić, zanim zostanie uznana za ukończoną: zazwyczaj obejmuje ona 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żdej historii, i ma on na celu zapewnienie, by termin „zakończone” miał zawsze to samo znaczenie, 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 i stanowi ten sam punkt kontrolny dla każdego zadania. Kryteria akceptacji mają charakter lokalny i odnoszą się konkretnie do jednego zadania. Kryteria akceptacji określają, jak dana funkcja musi działać; definicja zakończenia określa natomiast, co oznacza termin „gotowe do wydania” w odniesieniu do każdej pracy wykonanej przez zespół. Zadanie musi spełnić oba te warunki.
Czym jest lista kontrolna „definicji zakończenia”?
Krótka, jasno sformułowana lista warunków obowiązujących dla każdego zadania: kod sprawdzony i scalony, testy napisane i zakończone sukcesem, brak znanych regresji, dokumentacja zaktualizowana, wdrożenie w środowisku testowym oraz akceptacja ze strony właściciela produktu. Dokładny zestaw pozycji różni się w zależności od zespołu, jednak lista powinna zmieścić się na jednym ekranie, a każdy wiersz powinien dać się zweryfikować.
Jaka jest różnica między definicją „gotowości” a definicją „zakończenia”?
Etap „gotowość” wyznacza wejście w sprint, a próg, który zadanie musi spełnić, zanim zespół podejmie się jego realizacji. Etap „zakończenie” wyznacza wyjście ze sprintu, a próg, który ukończona praca musi spełnić przed jej wydaniem. Etap „gotowość” dotyczy prawidłowego sformułowania zadania; etap „zakończenie” 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, jednak to osoby wykonujące pracę decydują, co technicznie oznacza „zakończone”, ponieważ to właśnie one ponoszą konsekwencje, gdy definicja ta jest nieprecyzyjna.
Warto przeczytać
- Szacowanie w metodologii agile: kompletny przewodnik: tutaj znajdą Państwo wszystkie niezbędne informacje.
- Kryteria akceptacji: testy dotyczące poszczególnych opowieści, z którymi często mylona jest definicja zakończenia.
- Definicja terminu „ready”: brama mety znajdująca się na drugim końcu trasy sprintu.
- Błędy w planowaniu metodą pokera: w jaki sposób nieprecyzyjne określenie „gotowe” zawyża wskaźnik prędkości.