Czym są punkty fabularne? Szacowanie nakładu pracy, a nie czasu
Szacowanie w punktach 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, które zajmie jego wykonanie. Wielkość pozycji z listy zadań ocenia się na podstawie referencyjnego zadania, które zespół już zrealizował („to jest mniej więcej dwa razy większe od tamtego”), zamiast zgadywać czas trwania. To właśnie ta pojedyncza zmiana sprawia, że oszacowanie sprawdza się w praktyce.
Dlaczego należy mierzyć nakład pracy, a nie czas
Zespół, który szacuje nakład pracy w godzinach, w rzeczywistości posługuje się dwoma rodzajami szacunków: tym, w który wierzy starszy inżynier, oraz tym, który zapisuje młodszy inżynier po zaokrągleniu w górę, aby sprawić wrażenie odpowiedzialnego. Ludziom trudno jest wiarygodnie odpowiedzieć na pytanie „ile czasu to zajmie”, natomiast 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ę właśnie 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 godzinowym. Uzyskana liczba nie oznacza czasu trwania zadania; 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; stosowanie 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, podczas rundy pokera planistycznego. Różnice są celowo powiększane: im większe zadanie, tym mniej ktokolwiek naprawdę o nim wie, więc skala nie udaje już, że można odróżnić 9 od 10. Po zsumowaniu punktów zdobytych 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 ogólną pierwszą ocenę, niektóre zespoły klasyfikują cały zaległy zakres prac według rozmiarów koszulek i dopiero po doprecyzowaniu zadania przeliczają na punkty jedynie prace, które mają zostać zrealizowane w najbliższym czasie.
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ść stojącą za daną liczbą – jest zazwyczaj cenniejsza niż sama liczba. Pełny przewodnik po planingu pokerowym opisuje zasady tej metody.
Najpoważniejszym czynnikiem prowadzącym do niepowodzenia jest sytuacja, w której zespół zaczyna przeliczanie punktów z powrotem na godziny. W momencie, gdy tabela przeliczeniowa trafia na stronę wiki, każda rozmowa dotycząca szacowania zamienia się w spór o czas trwania, a kwestia względnego nakładu pracy schodzi na dalszy plan.
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 błędami i prace nad nowymi funkcjami konkurują o tę samą wydajność, 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ęćcie dzień lub dwa na poszukiwania, a następnie przedstawcie konkretną historię dotyczącą tego, co udało się ustalić.
Testowanie i zapewnienie 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 kontrolą 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 testy jakości dodają osobno, przyjmują zbyt duże zobowiązania w każdym sprincie, ponieważ testy jakości stanowią wąskie gardło, którego nikt nie uwzględnił w planowaniu. Jeśli za testowanie odpowiada oddzielny 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 tworzyć artykuły poświęcone tylko jednemu tematowi
Punkty mają charakter względny, więc ocena „1” ma sens tylko w zestawieniu z ocenami „2”, „3” czy „8”. Gdy w drużynie pojawia się ciąg wydarzeń ocenianych na „1”, ta skala znika: każda drobna sprawa to „1”, każda większa to „2” lub „3”, a cała skala sprowadza się do rzutu monetą.
Rozwiązaniem nie jest zakazanie wartości „1” (to właśnie jest wersja tej zasady oparta na „kulcie ładunku”). Należy raczej zadać pytanie, dlaczego tak wiele zadań jest klasyfikowanych na najniższym poziomie. Zazwyczaj odniesienie do historii uległo zmianie: zespół przyspieszył tempo pracy, a pierwotna „1” jest obecnie mniejsza niż cokolwiek, co obecnie dostarczają, więc należy wybrać nowsze odniesienie, które zespół pamięta, i ponownie ustalić punkt odniesienia. Czasami zespół nadmiernie rozbija zadania podczas doprecyzowywania, 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 natomiast 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 o kalibrację.
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ę, by zespół zrewidował swoje wspólne wyczucie skali i doprecyzował sposób podziału pracy. Dokładność szacowania poprawia się dzięki tej pętli informacji zwrotnej, a nie poprzez większy wysiłek na samym początku.
Najczęściej zadawane pytania
Czym są punkty fabularne w metodologii agile?
Punkty fabularne stanowią jednostkę względnej wyceny: jedną liczbę, która odzwierciedla wielkość danego zadania (jakość pracy, złożoność i niepewność łącznie) w porównaniu z przykładową historią, którą zespół już zrealizował. Celowo nie są one 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 dobrze radzą sobie z oceną, czy jedna rzecz jest większa od drugiej, a punkty fabularne wykorzystują tę zaletę. 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 perspektywie kilku sprintów prędkość zespołu wyrażona w punktach staje się bardziej wiarygodną prognozą niż suma szacunków wyrażonych w godzinach.
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 osobna 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 ukrytą złożoność zadania, 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 jasno określony: 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 można jeszcze określić; należy je umieścić w ścieżce badawczej z ustalonym czasem trwania i oszacować rzeczywisty zakres poprawki, gdy tylko poznają Państwo przyczynę.
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 również testy i kontrolę jakości przeprowadzane przez zespół w ramach jego definicji „zakończenia”. Jeśli przypisuje się punkty wyłącznie za prace programistyczne, sprint za każdym razem się przedłuża, ponieważ kontrola jakości stanowi wąskie gardło, którego nikt nie uwzględnił.
Dlaczego należy unikać artykułów skupiających się na jednym aspekcie?
Kilka takich przypadków nie stanowi problemu. Jeśli jednak większość zaległości to zadania o wartości 1, oznacza to, że punkt odniesienia zespołu uległ odchyleniu, a skala uległa załamaniu, przez co wszystkie zadania wydają się być albo bardzo małe, albo znacznie większe. Należy 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 celów 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 ich wartości.
- 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 wciąż okazują się nietrafione.
- 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.