#NoEstimates: między liczbami a rzeczywistością
Jednym z wyzwań, stawianych przed dzisiejszymi zwinnymi zespołami, jest szacowanie pracochłonności oraz poświęcany na nie czas. Tradycyjne metody niejednokrotnie wymagają sporych nakładów pracy i szybko zostały wyparte przez złożone algorytmy, jak i prostsze techniki typu planowanie pokerowe.
Z biegiem czasu jednak i te metody okazały się niewystarczające, ponieważ i one wymagały sporego zaangażowania zespołu. Środowisko agile’owe było bezlitosne i coraz głośniej i częściej padały pytania typu:
Czy aby na pewno szacowanie w takiej formie jest potrzebne? Może jednak nasza zwinność jest w tym aspekcie zbyt niska?
Swoją drogą chyba nie ma nic piękniejszego, niż takie kwestionowanie status quo, czyż nie? 🙂
Ale wróćmy do tematu… Zdania stawały się podzielone: jedni dalej podążali starymi metodami, a inni zastanawiali się coraz mocniej. Dodatkowo dynamiczne i zmieniające się ciągle środowisko nie ułatwiało, a tylko coraz mocniej potwierdzała się teza o nieefektywnym szacowaniu nie dającym wystarczających rezultatów.
Jak ja to zapamiętałam? Coraz częściej i częściej pojawiały się stwierdzenia, że wróżymy z fusów i brania estymat z tzw. „palca” lub „szklanej kuli”, a dodatkowo przeplatane z poczuciem… hmmm… marnotrawstwa czasu. Trochę słabe, prawda? Ale dlaczego tak się działo?
Funkcjonalności mimo wszystko rzadko się powtarzały, zespoły były coraz bardziej wydajne, ale równocześnie „wyżyłowane” do granic możliwości. Ciągły wyścig z czasem powodował, że ekspert danej rzeczy zajmował się wyłącznie nią, a mało osób z zewnątrz poszerzało swoją wiedzę.
W tym miejscu nie będę rozwijać tematu, czy to dobrze, czy źle. Przyjmijmy na potrzebę chwili, że tak po prostu czasem jest – mamy jakiś snapshot sytuacyjny 🙂 Wyobraźcie sobie teraz Poker Planning… (Mała dygresja, co to jest Poker Planning: Każdy członek zespołu deweloperskiego głosuje za pomocą liczb Fibbonaciego, jaka jest złożoność danej historyjki). Mamy np. historyjkę dotycząca stworzenia nowego modelu scoringowego. Ekspert wie, z czym się to wiąże i że nie będzie to trywialne, głosuje na 7. Pozostałe osoby nie mają pojęcia w tym konkretnym obszarze i głosują na liczby totalnie rozstrzelone: 2, 2, 2, 5, 12.
I jak tu wybrać sensowną estymatę w wyniku takiego głosowania? Czy ma to sens? W naszym konkretnym przypadku: nie miało. Dochodziło często do długich dyskusji i udowadnianiu, czy coś jest pracochłonne lub nie. Z czasem członkowie zespołu rezygnowali tłumacząc, że w sumie ciężko im racjonalnie to ocenić.
Czy istnieje jakiś inny sposób?
I właśnie tutaj… w tym oto miejscu, stojąc wręcz na rozdrożu dróg (aż sobie to wyobraziłam 😉 ) usłyszeliśmy o #NoEstimates! Na szczęście nie trzeba było nas przekonywać, szybko doszliśmy do wniosku: No to próbujemy, najwyżej za jakiś czas wrócimy do starych, lecz sprawdzonych praktyk.
Tu w tym miejscu pozwolę sobie na spojler: Nie wróciliśmy do nich, do dziś stosujemy #NoEstimates… i nie narzekamy 🙂
Na czym ono polega? Ta prosta technika proponuje wręcz radykalne odejście od konwencjonalnych praktyk szacowania: zamiast koncentrować się na próbach przewidywania przyszłości, to lepiej skupić się na adaptacji, ciągłym dostarczaniu wartości i podejmowaniu decyzji opartych na aktualnych informacjach.
A jak to wygląda w praktyce?
Sprawa jest niezwykle prosta…
Zamiast szacować, to dzielimy problem na równej wielkości historyjki. Podczas refinementu zadajemy sobie pytanie: Czy ta historyjka jest tak samo wielka jak poprzednia?
Jeżeli nie… i jest większa, to dzielimy ją w miarę możliwości.
A gdy jest mniejsza, to próbujemy łączyć.
I tak w kółko, cyklicznie…
Przyjęliśmy bazową jednostkę około 2-2,5 dnia roboczego na historyjkę (około 20h). Następnie, co sprint mierzymy statystyki badając rzeczywiste wielkości historyjek. Jeżeli podczas analizy wychodzi nam, że dana historyjka była większa, niż zakładany średni rozmiar, to zadajemy sobie pytanie dlaczego?
Czy można było ją podzielić inaczej?
Oczywiście nie zawsze się tak da – powiecie – czasem nie da się czegoś podzielić. Tak. Są wyjątki, czasem zostawiamy opis do historyjki Large Scope, który oznacza, że jest duże ryzyko, że dany US będzie większy, ale coraz częściej uczymy się reagować już w trakcie sprintów i po prostu dzielić. Oczywiście na tym tego nie zostawiamy… Historyjki są cały czas poddawane bieżącej analizie. I w ten oto sposób często okazywało się, że jednak dało się ją jakoś podzielić, mimo że pierwotnie zostawialiśmy ją połączoną.
A jak to wygląda z punktu widzenia PO?
Z mojego punktu widzenia jako Product Ownera bardzo szybko jestem wstanie określić postęp projektu – jeżeli mam 10 z 20 historyjek zrealizowanych, to jesteśmy w połowie. Powiecie zapewne… No dobra, ale co jak źle podzieliliśmy historyjki na początku?
Zawsze jest ryzyko! Okazuje się, że nawet przy sporych projektach, zgrubnie podzielonych z biegiem czasu część historyjek wypadała, a w to miejsce wchodziły nowe, po doprecyzowaniu i o dziwo z dużą dokładnością wszystko się zgadzało. I to wszystko jest świetne!
#NoEstimates Czy jest dobre? Czy to jedyne słuszne rozwiązanie? Myślę, że nie. Istnieje wiele dróg do osiągania tego samego oraz jedna droga może rozgałęzić się w różne strony. Wszystko zależy, co tak na prawdę jest potrzebne, jaki projekt realizujemy, jaka grupa ludzi ze sobą współpracuje.
Czy podejście #NoEstimates jest antidotum na wyzwania związane z tradycyjnym szacowaniem? Czy może być to kolejna moda przejściowa, która zniknie tak szybko, jak się pojawiła? Nie wiem… natomiast wiem, że u nas – w naszym konkretnym przypadku – się sprawdziła. Czy sprawdzi się u Was? Może… spróbuj i najwyżej wróć do starej techniki, jeśli próba się nie powiedzie.
To o czym należy pamiętać, to nie należy skupiać się nieraz na jednej metodzie pracy, bo tylko ona jest słuszna. Jak nie działa, to zmień, przetestuj, jak trzeba, to cofnij się o krok lub tyle, ile trzeba.
Pamiętaj, że tylko krowa nie zmienia zdania i cały czas idzie do przodu 🙂