Czym są punkty fabularne? Szacowanie nakładu pracy, a nie czasu
Szacowanie punktów fabularnych służy do określenia względnego nakładu pracy, złożoności i niepewności zadania, a nie liczby godzin. Jak dokonać szacunku na podstawie historii referencyjnej oraz jakie pytania sprawiają zespołom trudności.
Punkty fabularne służą do pomiaru względnego nakładu pracy związanego z danym zadaniem (jego rozmiar, złożoność i niepewność ujęte w jednej liczbie), a nie liczby godzin, jakie zajmie jego wykonanie. Wielkość pozycji w backlogu ocenia się w odniesieniu do referencyjnej historii, którą zespół już zrealizował („ta jest mniej więcej dwa razy większa od tamtej”), zamiast zgadywać czas trwania. To właśnie ta jedna zmiana sprawia, że oszacowanie wytrzymuje konfrontację z rzeczywistością.
Dlaczego należy mierzyć nakład pracy, a nie czas?
Zespół, który szacuje nakład pracy w godzinach, w rzeczywistości opiera się na dwóch różnych szacunkach: tym, w który wierzy starszy inżynier, oraz tym, który zapisuje młodszy inżynier po zaokrągleniu w górę, aby sprawiać wrażenie odpowiedzialnego. Ludzie nie są wiarygodni, gdy chodzi o odpowiedź na pytanie „ile to zajmie”, ale zaskakująco dobrze radzą sobie z pytaniem „czy to jest większe niż zadanie, które ukończyliśmy w ostatnim sprincie”. Punkty fabularne opierają się na tym drugim podejściu.
Ocena względna pozwala zespołowi uzgodnić, że jedna pozycja jest większa od drugiej, bez konieczności podawania przez nikogo konkretnej liczby godzin, co pozwala uniknąć efektu kotwicy i stronniczości wynikającej ze stażu pracy, które często towarzyszą szacunkom czasowym. Wynikająca z tego liczba nie oznacza czasu trwania; jest to pozycja na wspólnej skali.
Ocena nakładu pracy zamiast liczby godzin pozwala uniknąć trzech problemów, które towarzyszą szacunkom opartym na godzinach:
- Szacunek nie stanowi zobowiązania. Podawanie liczby godzin skłania interesariuszy do traktowania „8 godzin” jako obietnicy; podawanie punktów sprawia, że szacunek pozostaje prognozą.
- Wykonanie tego samego zadania zajmuje różnym osobom różną ilość czasu. Punkt odzwierciedla wynik pracy, a nie samą osobę.
- Czas trwania nie uwzględnia ryzyka. Krótkie, ale niepewne zadanie może wiązać się z większym ryzykiem niż długie, dobrze znane zadanie, dlatego punktacja uwzględnia tę niepewność.
Jak działa szacowanie punktów fabularnych
Większość zespołów głosuje w oparciu o skalę typu Fibonacciego, 1, 2, 3, 5, 8, 13, w ramach rundy planowania pokerowego. Różnice są celowo powiększane: im większe zadanie, tym mniej ktokolwiek naprawdę o nim wie, więc skala przestaje udawać, że można odróżnić 9 od 10. Po zsumowaniu punktów uzyskanych przez zespół w każdym sprincie otrzymuje się prędkość, czyli tę wartość, którą faktycznie mają zapewnić punkty prognostyczne.
Jeśli element okaże się większy niż około 13, zazwyczaj oznacza to, że skala sugeruje, aby podzielić go na części, które zespół będzie w stanie zrozumieć i zrealizować w ramach jednego sprintu.
Aby przeprowadzić szybszą, bardziej przybliżoną pierwszą ocenę, niektóre zespoły oceniają wielkość całego backlogu w rozmiarach koszulek i dopiero po doprecyzowaniu zadania przeliczają na punkty wyłącznie te zadania, które mają zostać zrealizowane w najbliższym czasie. Ocena wielkości całego backlogu za jednym razem? Proszę zacząć od szacowania na podstawie podobieństwa, a na koniec przypisać punkty do poszczególnych grup.
W rundzie planning pokera wszyscy ujawniają swoje karty w tym samym czasie, dzięki czemu nikt nie kieruje się opinią osoby o najgłośniejszym głosie lub zajmującej najwyższe stanowisko. W przypadku rozbieżności między szacunkami wysokimi i niskimi te dwie osoby wyjaśniają swoje rozumowanie, a ta rozmowa – która ujawnia założenia i ukrytą złożoność kryjącą się za liczbą – jest zazwyczaj cenniejsza niż sama liczba. Pełny przewodnik po planowaniu pokerowym omawia zasady tej metody.
Najpoważniejszym źródłem niepowodzeń jest sytuacja, w której zespół zaczyna przeliczanie punktów z powrotem na godziny. W momencie, gdy tabela przeliczeniowa trafia na wiki, każda rozmowa dotycząca szacowania zamienia się w spór o czas trwania, a kwestia względnego nakładu pracy traci na znaczeniu.
Na które dzieło należy zwrócić uwagę?
Podczas każdego spotkania poświęconego dopracowywaniu projektu pojawiają się dwa pytania: czy to w ogóle daje punkty, a jeśli tak, to ile. Skala służy właśnie do określenia odpowiedzi na pytanie „ile”. W przypadku pytania „czy to daje punkty” obowiązuje praktyczna zasada: należy przyznawać punkty za wszystko, co zespół dostarcza w ramach pracy, do której się zobowiązał, tak aby wskaźnik prędkości odzwierciedlał rzeczywiste wykorzystanie zdolności produkcyjnej.
Błędy
Błąd o znanej przyczynie i jasnym sposobie naprawy stanowi zadanie. Posiada on kryteria akceptacji („formularz nie akceptuje już ujemnych wartości”), określony zakres oraz rozsądną wielkość, dlatego należy go głosować tak samo jak każde inne zadanie. Prace nad usunięciem błędów i prace nad nowymi funkcjami konkurują o tę samą zdolność produkcyjną, co powinno znaleźć odzwierciedlenie w wskaźniku prędkości.
Wyjątkiem jest błąd, którego charakter można opisać jako „nie wiemy jeszcze, co się tam kryje”: zbadanie uszkodzenia danych, ustalenie, dlaczego wartość p99 podwoiła się, klienci wciąż zgłaszają ten problem, a my nie potrafimy go odtworzyć. Nie można oszacować nakładu pracy związanego z naprawą, ponieważ przyczyna nie jest znana, więc głosowanie nad punktami fabularnymi mierzy jedynie to, co zespół ma nadzieję odkryć. Należy umieścić te zadania w ścieżce dochodzeniowej z określonym limitem czasowym: poświęć dzień lub dwa na poszukiwania, a następnie przedstaw konkretną historię dotyczącą tego, co udało się ustalić.
Testowanie i kontrola jakości
Punkty fabularne określają zakres prac od momentu „włączenia zadania do sprintu” do momentu, gdy „zadanie jest gotowe do wydania”, co obejmuje wszelkie działania związane z zapewnieniem jakości, które zespół wykonuje w ramach definicji „zakończone”: testy automatyczne, weryfikację ręczną, kontrole dostępności oraz przegląd bezpieczeństwa. Zadanie nie jest uznane za ukończone w momencie scalenia pull requestu; uznaje się je za ukończone dopiero wtedy, gdy spełnia definicję ukończenia.
Zespoły, które skupiają się wyłącznie na pracach programistycznych, a kontrolę jakości dodają osobno, przyjmują zbyt wiele zadań w każdym sprincie, ponieważ kontrola jakości stanowi wąskie gardło, którego nikt nie uwzględnił w planowaniu. Jeśli za testowanie odpowiada odrębny zespół ds. kontroli jakości, zadanie nadal wiąże się z kosztami po stronie programistów wynikającymi ze współpracy z nim: przygotowaniem kompilacji, sporządzeniem planu testów oraz udzielaniem odpowiedzi na pytania. Ta część nie jest bezpłatna, więc pozostaje uwzględniona w szacunku.
Dlaczego rzadko warto pisać artykuł oparty na jednym punkcie
Punkty mają charakter względny, więc ocena „1” ma sens jedynie w zestawieniu z ocenami „2”, „3” czy „8”. Gdy w drużynie pojawia się ciągła seria wydarzeń ocenianych na „1”, ta skala znika: wszystko, co nieznaczne, otrzymuje ocenę „1”, wszystko, co większe – „2” lub „3”, a skala sprowadza się do rzutu monetą.
Rozwiązaniem nie jest zakazanie wartości „1” (to jest wersja tej zasady oparta na „kulcie ładunku”). Należy raczej zadać pytanie, dlaczego tak wiele pracy skupia się na najniższym poziomie. Zazwyczaj historia odniesienia uległa zmianie: zespół przyspieszył tempo pracy, a pierwotna „1” jest obecnie mniejsza niż cokolwiek, co obecnie dostarczają, więc należy wybrać nowszą historię odniesienia, którą zespół pamięta, i ponownie ustalić punkt odniesienia. Czasami zespół nadmiernie rozbija zadania podczas dopracowywania, wyodrębniając każde kryterium akceptacji jako osobną historię: „aktualizacja tekstu przycisku” nie jest historią, lecz kryterium akceptacji w ramach większego zadania. Czasami zaś zadanie jest rzeczywiście niewielkie (kwartalna konserwacja, zmiana treści wymagająca weryfikacji prawnej, drobna modyfikacja konfiguracji mająca wpływ na środowisko produkcyjne) – w takim przypadku punkty spełniają swoją rolę i nie ma potrzeby wprowadzania żadnych zmian.
Sygnałem, na który należy zwrócić uwagę, nie jest to, że „nigdy nie ma zadań o priorytecie 1”. Chodzi o to, że zadania o priorytecie 1 stanowią większość zaległości. Jedno lub dwa takie zadania na sprint to nic złego. Jeśli co drugie zgłoszenie ma priorytet 1, oznacza to, że od zbyt dawna nie zadano pytania dotyczące kalibracji.
Punkty fabularne i retrospektywa
Szacowanie jest jedną z najczęstszych kwestii analizowanych przez zespół podczas retrospektywy sprintu. Gdy zadania są rutynowo szacowane zbyt nisko lub zbyt wysoko, gdy prędkość pracy ulega gwałtownym wahaniom lub gdy „zakończone” zadania są ponownie otwierane, retrospektywa stanowi okazję dla zespołu do ponownego skalibrowania wspólnego wyczucia wielkości zadań oraz doprecyzowania sposobu ich podziału. Dokładność szacowania poprawia się dzięki tej pętli informacji zwrotnej, a nie poprzez większy wysiłek na początkowym etapie.
Najczęściej zadawane pytania
Czym są punkty fabularne w metodologii agile?
Punkty fabularne stanowią jednostkę względnej oceny: jest to liczba odzwierciedlająca wielkość danego zadania (łączną wielkość nakładu pracy, złożoność i niepewność) w porównaniu z referencyjną historią, którą zespół już zrealizował. Nie są one celowo miarą czasu. Zespół ocenia wielkość każdego zadania w odniesieniu do pozostałych zadań, a nie w odniesieniu do czasu.
Dlaczego warto stosować punkty fabularne zamiast godzin?
Ludzie mają trudności z oszacowaniem czasu bezwzględnego, ale potrafią dobrze ocenić, czy jedna rzecz jest większa od drugiej, a punkty fabularne opierają się właśnie na tej zalecie. Pozwalają one również uniknąć pułapki traktowania szacunku jako zobowiązania, uwzględniają fakt, że wykonanie tego samego zadania zajmuje różnym osobom różną ilość czasu, a także uwzględniają złożoność i ryzyko, a nie tylko czas trwania. W ciągu kilku sprintów prędkość zespołu wyrażona w punktach staje się bardziej wiarygodną prognozą niż suma szacunków godzinowych.
W jaki sposób szacują Państwo punkty fabularne?
Większość zespołów korzysta z metody „planning poker”. Ktoś wyjaśnia element backlogu, zespół omawia go, a następnie każdy z członków zespołu indywidualnie wybiera wartość z wspólnej skali, zazwyczaj opartej na ciągu Fibonacciego (1, 2, 3, 5, 8, 13). Wszyscy ujawniają swoje oceny jednocześnie; w przypadku znacznych rozbieżności w szacunkach osoby, które podały najwyższą i najniższą wartość, wyjaśniają swoje rozumowanie, a zespół ponownie głosuje, aż do osiągnięcia konsensusu. Dyskusja, która ujawnia ukryte złożoności, jest często cenniejsza niż sama liczba.
Czy błędy powinny być przypisane do punktów fabularnych?
Tak, gdy przyczyna błędu jest znana, a sposób jego usunięcia jasny: jest to zadanie jak każde inne, a uwzględnienie go pozwala na rzetelne odzwierciedlenie w wskaźniku prędkości, na co przeznaczane są zasoby. Wyjątkiem są błędy o charakterze eksploracyjnym, których zakresu nie da się jeszcze określić; należy je umieścić na ścieżce badawczej z ustalonym limitem czasowym, a rzeczywisty zakres poprawki oszacować dopiero po ustaleniu przyczyny.
Czy punkty fabularne obejmują testowanie?
Tak. Punkty określają wszystkie etapy od momentu włączenia zadania do sprintu aż do momentu, gdy można je dostarczyć, co obejmuje testy i kontrolę jakości przeprowadzane przez zespół w ramach jego definicji zakończenia. Jeśli punkty będą przyznawane wyłącznie za pracę programistyczną, sprint będzie za każdym razem przekraczał wyznaczony termin, ponieważ kontrola jakości stanowi wąskie gardło, którego nikt nie uwzględnił.
Dlaczego należy unikać artykułów opartych na jednym punkcie?
Kilka takich przypadków nie stanowi problemu. Jeśli jednak większość zaległych zadań ma wartość 1, oznacza to, że punkt odniesienia zespołu uległ przesunięciu, a skala przestała mieć sens, przez co wszystkie zadania wydają się być albo bardzo małe, albo większe. Proszę ponownie skalibrować skalę w oparciu o najnowszy punkt odniesienia, zamiast ją zmniejszać.
Czy można porównać punkty fabularne między zespołami?
Nie. Punkt fabularny jest dostosowany do własnej oceny względnej wielkości danego zespołu, więc „5” jednego zespołu nie jest równoznaczna z „5” innego zespołu. Porównywanie prędkości lub łącznej liczby punktów między zespołami jest bezsensowne, a wykorzystywanie tych wartości jako celu jest wręcz szkodliwe: skłania zespoły do zawyżania szacunków. Punkty fabularne stanowią narzędzie planowania służące do prognozowania w ramach jednego zespołu, a nie wskaźnik produktywności przeznaczony do porównań.
Warto przeczytać
- Dlaczego w punktach fabularnych stosuje się ciąg Fibonacciego: dlaczego różnice między liczbami powiększają się wraz ze wzrostem liczb.
- Punkty fabularne a godziny: pułapka związana z przeliczaniem oraz co zrobić, gdy ktoś potrzebuje podać konkretną datę.
- Velocity: przekształcanie punktów zwrotnych w prognozę bez ich naruszania.
- Techniki szacowania w metodologii agile: kiedy zastosować daną metodę oraz jakie są jej ograniczenia.
- Retrospektywa sprintu: podczas której zespoły korygują szacunki, które ciągle okazują się niedokładne.
- Przewodnik po szacowaniu w metodologii agile: kompletny zestaw narzędzi, od pokera planistycznego po dzielenie opowieści.
- Bezpłatny Planning Poker dla zespołów stosujących metodologię agile: wspólnie określajcie wielkość zaległości w czasie rzeczywistym.