Usprawnianie listy zadań (grooming): częstotliwość, odpowiedzialność oraz znaczenie pojęcia „gotowość”
Udoskonalanie listy zadań do realizacji, 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 doprecyzowywaniu, szacowaniu nakładu pracy, dzieleniu na mniejsze części oraz ustalaniu 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 decyduje o tym, czy planowanie sprintu przebiega spokojnie, czy też zamienia się w dwugodzinną dyskusję.
Czy to uroczystość, czy nie?
Z technicznego punktu widzenia – nie. W „Przewodniku po Scrumie” dopracowywanie backlogu nie zostało wymienione jako jedno z wydarzeń. Opisano je 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: nie jest to ceremonia.
A jednak przewodnik Asany po ceremoniach agile nosi tytuł „4 wydarzenia + udoskonalanie backlogu”, a większość zespołów roboczych rezerwuje w kalendarzu stały termin na udoskonalanie i przeprowadza je tak jak każdą inną ceremonię. Obie strony wskazują na tę samą prawdę z różnych perspektyw: udoskonalanie nie jest formalnym wydarzeniem, ale traktowanie go jako takiego jest zazwyczaj słusznym rozwiązaniem. Pominięcie tego etapu nie spowoduje, że związane z nim koszty znikną. Po prostu przeniosą się one do planowania sprintu, gdzie będą bardziej kosztowne i nastąpią w mniej odpowiednim momencie.
Na czym właściwie polega proces udoskonalania
Dopracowanie polega na przekształceniu surowych pozycji z listy zadań (często składających się jedynie z tytułu i niejasnej nadziei) 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 sformułowanie o jasnym celu i kryteriach akceptacji, które zespół będzie mógł przetestować.
- 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: proszę zapoznać się z sekcją dotyczącą podziału historii użytkownika.
- Rozmiar. Należy uzgodnić wspólną szacunkową liczbę punktów fabularnych, zazwyczaj za pomocą metody „planning poker”, tak aby przed podjęciem zobowiązania można było oszacować 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 będą uwzględniane 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 sztywnej zasady, ale istnieje rozsądne domyślne podejście: 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 zatwierdzić.
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. Jest to przejaw przeciążenia ceremonialnego w procesie dopracowywania – czas poświęcony na spotkania, który nie przynosi żadnych korzyści. Należy trzymać się wytycznej zawartej w Przewodniku Scrum, 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 oszacował, oraz dokonują faktycznej oceny nakładu pracy. Właściciel produktu, który samodzielnie dopracowuje backlog, tworzy pozycje, które są całkowicie jasne tylko dla jednej osoby, a dla wszystkich pozostałych stają się źródłem niespodzianek 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 obserwujących, 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” zasługuje na zdefiniowanie, podobnie jak pojęcie „zakończenia”. Prosta definicja gotowości to lista kontrolna, którą element musi spełnić, zanim zespół zatwierdzi go podczas 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 sztafeta, a nie rywalizacja. Dopracowywanie przygotowuje elementy, a planowanie je zatwierdza. Jeśli w Państwa zespole granica między nimi wydaje się nieostra, porównanie planowania sprintu z dopracowywaniem rejestru zadań pozwala ją wyraźnie wyznaczyć. Aby dowiedzieć się, gdzie dopracowywanie plasuje się w kontekście 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 backlogu produktu do realizacji: wyjaśnianie znaczenia każdego elementu, dzielenie większych elementów na mniejsze, dodawanie kryteriów akceptacji, szacowanie ich wielkości oraz zmiana kolejności według priorytetów. Działania te są prowadzone nieprzerwanie w trakcie trwania sprintu, tak aby w momencie, gdy dany element trafi do etapu planowania, zespół mógł bez zastrzeżeń 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 powinno ono zajmować nie więcej niż około 10% wydajności programistów. Jednak większość zespołów organizuje w tym celu cykliczne sesje i traktuje je jak ceremonię, ponieważ pominięcie tego etapu powoduje, że planowanie sprintu zamienia się w chaos.
Jaka jest różnica między porządkowaniem backlogu a udoskonalaniem backlogu?
Żadna. Chodzi o tę samą czynność. „Grooming” to pierwotne określenie; społeczność Scrum przeszła na termin „refinement”, ponieważ słowo „grooming” nabrało niekorzystnych konotacji. Wiele zespołów nadal używa terminu „grooming”. Niezależnie od tego, jak to nazwiemy, praca jest identyczna.
Jak często należy aktualizować listę zadań?
W trybie ciągłym, 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 z wyprzedzeniem jednego lub dwóch sprintów, tak aby dział planowania zawsze dysponował odpowiednim materiałem, z którego może czerpać.
Kto zajmuje się dopracowywaniem backlogu?
Właściciel produktu jest odpowiedzialny za listę zadań do realizacji oraz określa priorytety i cele, jednak dopracowywanie tej listy stanowi zadanie zespołowe. To programiści zadają pytania, ujawniają ukryte złożoności i dokonują oszacowania zakresu prac. Właściciel produktu, dopracowujący listę samodzielnie, tworzy pozycje, które mają sens tylko dla jednej osoby, a dla pozostałych uczestników spotkania planistycznego stanowią zaskoczenie.