Usprecyzowanie listy zadań (grooming): częstotliwość, odpowiedzialność oraz znaczenie pojęcia „gotowy”
Udokumentowanie listy zadań, zwane również „groomingiem”, to ciągły proces przygotowywania elementów przed rozpoczęciem sprintu, w ramach którego mają zostać zrealizowane: polega on na doprecyzowaniu, oszacowaniu zakresu, podziale i ustaleniu kolejności.
Udoskonalanie backlogu, wciąż powszechnie nazywane „groomingiem”, to ciągły proces przygotowywania elementów backlogu produktu przed sprintem, w ramach którego zostaną one zrealizowane: wyjaśnianie znaczenia każdego elementu, dzielenie tych, które są zbyt obszerne, dodawanie kryteriów akceptacji, szacowanie ich zakresu oraz utrzymywanie ich w kolejności według priorytetów. Nie jest to tyle pojedyncze spotkanie, co raczej nawyk. I to właśnie ta subtelna różnica odróżnia spokojne planowanie sprintu od planowania, które przeradza się w dwugodzinną dyskusję.
Czy to uroczystość, czy nie?
Z technicznego punktu widzenia – nie. W Przewodniku Scruma doprecyzowanie backlogu nie zostało wymienione jako jedno z wydarzeń. Opisano je tam jako działanie o charakterze ciągłym, które nie powinno pochłaniać więcej niż około 10% wydajności programistów. Purystom więc słusznie się wydaje: nie jest to ceremonia.
A jednak przewodnik Asany po ceremoniach agile nosi tytuł „4 wydarzenia + dopracowanie backlogu”, a większość zespołów roboczych rezerwuje w kalendarzu stały termin na dopracowanie i przeprowadza je tak jak każdą inną ceremonię. Obie strony wskazują na tę samą prawdę z różnych perspektyw: dopracowanie nie jest formalnym wydarzeniem, ale traktowanie go jako takiego jest zazwyczaj słusznym rozwiązaniem. Pominięcie tego etapu nie spowoduje zniknięcia związanych z nim kosztów. Po prostu przenoszą się one do planowania sprintu, gdzie są bardziej kosztowne i odbywają się w mniej odpowiednim momencie.
Na czym właściwie polega proces udoskonalania
Dopracowywanie polega na przekształceniu surowych pozycji z listy zadań (często stanowiących jedynie tytuł i niejasną nadzieję) w elementy nadające się do realizacji. W praktyce obejmuje to cztery etapy, realizowane w sposób ciągły:
- Proszę doprecyzować. Proszę przekształcić sformułowanie „usprawnienie procesu wdrażania nowych pracowników” w cel o jasnym znaczeniu oraz kryteria akceptacji, które zespół będzie mógł zweryfikować.
- Podział. Zadania zbyt obszerne, by zrealizować je w ramach jednego sprintu, należy podzielić na mniejsze, niezależne i wartościowe części. Jest to sztuka sama w sobie: zapoznaj się z podziałem historii użytkownika.
- Zakres. Należy uzgodnić wspólną szacunkową liczbę punktów fabularnych, zazwyczaj za pomocą pokera planistycznego, tak aby przed podjęciem zobowiązania znany był względny nakład pracy.
- Porządek. Proszę utrzymywać listę zadań w porządku, tak aby najcenniejsze i najlepiej przygotowane zadania znajdowały się na górze listy, gdzie zostaną uwzględnione podczas planowania.
Wynikiem nie jest dokument. Jest to bufor z aktualizowaną na bieżąco listą elementów gotowych do pobrania, zazwyczaj obejmujący jeden lub dwa sprinty wyprzedzające aktualny etap prac zespołu.
Częstotliwość: jak często, jak długo
Nie ma żadnej zasady, ale istnieje rozsądne domyślne rozwiązanie: jedna krótka, cykliczna sesja jako punkt odniesienia oraz ciągłe, niewielkie działania pomiędzy nimi.
W przypadku dwutygodniowego sprintu większość zespołów organizuje jedną sesję doprecyzowania w połowie sprintu, trwającą około godziny, a także uzupełnia ją doraźnie w miarę pojawiania się pytań. Spotkania cotygodniowe sprawdzają się równie dobrze. Ważniejszy od dokładnego terminu jest bufor: należy dążyć do tego, aby w kolejce zawsze znajdowały się zadania gotowe do realizacji odpowiadające mniej więcej długości jednego sprintu, tak aby podczas planowania nigdy nie okazało się, że w backlogu nie ma żadnych zadań, które można by przydzielić.
Dwa scenariusze niepowodzeń wyznaczają właściwy zakres. Zbyt mały zakres sprawia, że planowanie staje się dopracowywaniem pod presją czasu: zespół doprecyzowuje i dzieli zadania w pośpiechu, a następnie zobowiązuje się do wykonania pracy, której ledwo rozumie. Zbyt dużo, a dopracowywanie przeradza się w drugie spotkanie planistyczne, podczas którego dyskutuje się nad szczegółami elementów, które mogą nigdy nie trafić do sprintu. To właśnie ta strona dopracowywania, która prowadzi do przeciążenia ceremonią, czyli czasu poświęconego na spotkania, które nie przynoszą żadnych korzyści. Należy trzymać się wytycznej zawartej w Przewodniku Scruma, zakładającej około 10% pojemności, a proces ten pozostanie użyteczny.
Kto tym kieruje?
Właściciel produktu jest odpowiedzialny za listę zadań: priorytet, cel oraz powód istnienia każdego elementu leżą w jego gestii. Jednak dopracowywanie listy zadań to praca zespołowa. To programiści zadają niewygodne pytania, ujawniają złożoność, której nikt nie uwzględnił w kosztorysie, oraz dokonują faktycznej oceny nakładu pracy. Właściciel produktu, który samodzielnie zajmuje się dopracowywaniem, tworzy pozycje, które są całkowicie jasne tylko dla jednej osoby, a dla wszystkich pozostałych stają się źródłem niespodzianek już w momencie rozpoczęcia planowania.
Scrum master dba o to, by sesja odbywała się w wyznaczonym przedziale czasowym i nie przerodziła się w proces projektowania oparty na decyzjach zbiorowych. Poza tym im mniej osób postronnych, tym lepiej.
Co oznacza termin „gotowość”: definicja gotowości
Celem procesu udoskonalania jest doprowadzenie elementów do stanu gotowości, a pojęcie „gotowości” wymaga zdefiniowania, podobnie jak pojęcie „zakończenia”. Prosta definicja gotowości to lista kontrolna, którą element musi spełnić, zanim zespół zatwierdzi go na etapie planowania: jest zrozumiały, jest na tyle niewielki, że można go ukończyć w ramach jednego sprintu, posiada kryteria akceptacji, znane są jego zależności oraz został oszacowany.
Dopracowywanie i planowanie to etapowe działania, a nie konkurencja. Dopracowywanie przygotowuje elementy, a planowanie je zatwierdza. Jeśli granica między nimi wydaje się Państwa zespołowi niejasna, artykuł Planowanie sprintu a dopracowywanie rejestru zadań wyjaśnia ją wyraźnie. Aby dowiedzieć się, gdzie dopracowywanie wpisuje się w kontekst formalnych wydarzeń, proszę zapoznać się z artykułem Wydarzenia Scrumowe a ceremonie.
Najczęściej zadawane pytania
Czym jest dopracowywanie listy zadań?
Ciągłe działania mające na celu przygotowanie elementów rejestru produktów do realizacji: wyjaśnianie znaczenia poszczególnych elementów, dzielenie dużych elementów na mniejsze, dodawanie kryteriów akceptacji, szacowanie ich rozmiaru oraz zmiana kolejności według priorytetów. Działania te trwają nieprzerwanie przez cały czas trwania sprintu, tak aby w momencie, gdy dany element trafi do etapu planowania, zespół mógł bez sprzeciwu podjąć się jego realizacji.
Czy doprecyzowanie listy zadań to ceremonia w metodologii Scrum?
Nie. W Przewodniku po Scrumie nie wymieniono tego jako wydarzenia. Jest to działanie o charakterze ciągłym, a nie ustalone spotkanie, a Przewodnik po Scrumie wskazuje, że nie powinno ono zajmować więcej niż około 10% wydajności programistów. Jednak większość zespołów wyznacza na to stałą sesję i traktuje to jak ceremonię, ponieważ pominięcie tego elementu powoduje, że planowanie sprintu zamienia się w chaos.
Jaka jest różnica między porządkowaniem rejestru zadań a dopracowywaniem rejestru zadań?
Brak. Chodzi o tę samą czynność. „Grooming” to pierwotny termin; społeczność Scrum przeszła na określenie „refinement”, ponieważ słowo „grooming” nabrało niepożądanych konotacji. Wiele zespołów nadal używa terminu „grooming”. Niezależnie od nazwy, praca jest identyczna.
Jak często należy aktualizować listę zadań?
W sposób ciągły, z jedną krótką, cykliczną sesją pełniącą rolę punktu odniesienia: zazwyczaj raz w tygodniu lub raz w połowie sprintu w przypadku cyklu dwutygodniowego, trwającą około godziny. Celem jest utrzymanie płynnego bufora gotowych elementów, zazwyczaj wyprzedzających o jeden lub dwa sprinty, tak aby dział planowania zawsze dysponowało odpowiednim materiałem, z którego może czerpać.
Kto zajmuje się dopracowywaniem backlogu?
Właściciel produktu jest odpowiedzialny za listę zadań i wyznacza priorytety oraz cele, jednak dopracowywanie tej listy stanowi zadanie zespołowe. To programiści zadają pytania, ujawniają ukryte złożoności i dokonują oszacowania nakładu pracy. Właściciel produktu, dopracowujący listę samodzielnie, tworzy pozycje, które mają sens tylko dla jednej osoby, a dla pozostałych członków zespołu podczas planowania stanowią zaskoczenie.