.st0{fill:#FFFFFF;}

Nic nie zajmuje 5 minut 

 15 listopada, 2022

Tomasz Dzierżek

Dzisiaj temat jednocześnie prosty i złożony. No bo ile trwają poszczególne zadania składające się na realizację naszych wymagań i czy warto je wyceniać? No i dlaczego nic nie zajmuje 5 minut?

 

Mityczne 5 minut

Przeglądając listę tekstów do napisania, czyli nasz backlog, zauważyłem kilka ciekawych tematów o szacowaniu. Jeden z nich brzmiał „Nic nie trwa 5 minut”. Pamięć ludzka jest ciekawą rzeczą, ponieważ jedyne miejsce w którym faktycznie udało mi się zlokalizować występowanie tego cytatu to film Black Hawk Down Ridley’a Scotta. A konkretniej scena ładowania więźniów na ciężarówki.

To sformułowanie musiało się jednak głęboko wryć się w moją pamięć, ponieważ od zawsze z powątpiewaniem podchodziłem do wszystkich oszacowań, które były zbyt małe. Mówiąc „zbyt małe” nie mam na myśli oszacowań zaniżonych, ale po prostu – krótkie. Bo nic nie trwa tylko pięć minut.

Weźmy banalny przykład, czyli mycie zębów. Większość osób powie, że mycie zębów zajmuje im dwie minuty. Jednak wszystko zależy od kontekstu. Jeżeli stoimy w łazience z pastą nałożoną na szczoteczkę i jesteśmy już gotowi, to faktycznie mycie zajmie nam te dwie minuty. O ile przy okazji nie będziemy na przykład przeglądać LinkedIna na telefonie.

W sytuacji, w której jeszcze leżymy w łóżku, umycie zębów albo w ogóle dotarcie do stanu w którym zęby są umyte zajmie nam nieco dłużej. Oczywiście część z was może tutaj powiedzieć, że pytanie było o czas potrzebny na umycie zębów, a to można rozumieć w różny sposób.  Pamiętajmy jednak że, dla nas liczy się empiryzm i fakt, że zęby zostały umyte. O to nam chodzi, gdy pytamy „Ile ci to zajmie?” i ten czas będzie przez nas używany chociażby do planowania.

 

Zadanie na godzinkę

Bardzo wdzięczne i nieco bardziej użyteczne przykłady to tankowanie samochodu i trening na siłowni. Zacznijmy od tego pierwszego.

Tankowanie samochodu jako czynność jest dość przewidywalna. Podjeżdżamy pod dystrybutor, tankujemy do pełna albo za określoną kwotę, idziemy zapłacić, wsiadamy do samochodu i jedziemy dalej. Planując naszą podróż możemy uznać, że tankowanie zajmuje nam 3 do 5 minut . Jednak nikt kto trochę jeździ, szczególnie po drogach ekspresowych i autostradach, nie podejdzie do tego w ten sposób.

Jeżeli planujemy tankowanie na ruchliwej autostradzie, to bardzo często będzie się to wiązało z kolejkami do kas i dystrybutorów. Co więcej, jeżeli jesteśmy w długiej trasie to przy takiej okazji będziemy chcieli odwiedzić toaletę bądź napić się kawy. A to już szybka droga do tego, że 3 do 5 minut wydłuży nam się do 20-30. Jeżeli w trakcie podróży planujemy kilka takich postojów, możemy całkiem nieźle przeszacować czas potrzebny nam na całą podróż.

Drugi wdzięczny temat to trening na siłowni, który najczęściej trwa do godziny. Jednak zajmując sobie miejsce w kalendarzu nikt nie blokuje tylko godziny. Liczy się przecież jeszcze dotarcie na miejsce, przebranie się, sam trening, wzięcie prysznica i przebranie się po oraz powrót. Może też się okazać, że w danym dniu będzie większe bądź mniejsze obłożenie i sam czas treningu też ulegnie wydłużeniu bądź skróceniu.

 

Przełączanie kontekstu

To do czego zmierzam, to pokazanie, że w przypadku małych zadań nie chodzi nam tylko i wyłącznie o czas samego zadania. Ba! Nie chodzi nawet o czas przełączania kontekstu przez nasz umysł. W większości przypadków, do zrobienia drobnej rzeczy, potrzebne jest mnóstwo czynności, które musimy zrealizować dookoła. Zwykle nie to mamy na myśli, mówiąc o koszcie przełączania kontekstu.

Za każdym razem, jak ktoś mi mówi, że coś zajmie 5 minut, to absolutnie w to nie wierzę. Wszystkie rzeczy dookoła tych 5 minut trwają zwykle dodatkowe kilka, kilkanaście bądź kilkadziesiąt kolejnych minut. Analogicznie, w naszej pracy absolutnie nie ma sensu szacować zadań które trwają na przykład godzinę, bo w skali tygodnia czy Sprintu jest to zbyt szczegółowa jednostka.

A w dodatku rozbijemy się o inne problemy.

 

Bezsens szacowania zadań składowych

Nikt o zdrowych zmysłach planując podróż i zastanawiając się nad tym, ile zajmą postoje na stacjach nie będzie ich rozpisywał na: kolejkę do dystrybutora, tankowanie, kolejkę do kasy, płacenie, oczekiwanie na kawę, toaletę, itd., itd. Interesuje nas całość postoju i dobrze wiemy, że czasami będzie większa kolejka do dystrybutora, a mniejsza do kawy, a czasami odwrotnie. Pięknem szacowania większych elementów zamiast poszczególnych zadań jest to, że odchylenia na poszczególnych zadaniach składowych się uśredniają.

Jeszcze większą korzyścią jest potencjalna możliwość uniknięcia planowania ponad miarę. Jeżeli oszacujemy i wylistujemy sobie tylko i wyłącznie poszczególne zadania składowe (tankowanie, mycie zębów, trening na siłowni), a zapomnijmy o wszystkim dookoła (wstanie z łóżka, kolejka do dystrybutora, podróż z/na siłownię) to w nasz kalendarz wciśniemy sobie za dużo rzeczy.

W przypadku planowania naszego dnia nie jest to duży problem, ale jeżeli chcemy zaplanować sobie tydzień bądź Sprint Pracy, nie możemy patrzeć tylko i wyłącznie na godziny! Możemy się nieźle przejechać planując sobie czterdzieści jednogodzinnych zadań w tygodniu. Bo nic nie trwa pięć minut, a zadanie na godzinę nie trwa godzinę – okaże się, że na wiele z nich potrzebujemy tak naprawdę półtorej do trzech godzin. A to już prosto do tego, żeby każda iteracja była przeładowana ponad miarę. A my regularnie będziemy się zastanawiać „Co się stało? Przecież znów zaplanowaliśmy się na 100, a nie na 300 procent?”.

 

Nie jesteśmy robotami

W tym momencie opowieści zwykle pojawia się pomysł – wylistujmy wszystkie elementy składowe, oszacujmy je precyzyjnie, a wtedy suma na pewno da nam cały czas potrzebny na wykonanie danej rzeczy. Takie coś może zadziałać tylko i wyłącznie w przypadku przewidywalnych i powtarzalnych rzeczy Jak trening na naszej ulubionej siłowni realizowany zawsze w te same dni i o tych samych godzinach. Nie ma to jednak żadnego zastosowania w przypadku rzeczy skomplikowanych i złożonych, jakimi zajmujemy się na co dzień.

Tutaj dużą pomocą mogą, ale nie muszą, być Story Pointy, które z definicji zacierają nam różnice pomiędzy precyzyjnie oszacowanymi godzinami, a tym ile faktycznie jesteśmy w stanie wykonać pracy w jakimś okresie. Wszystkie „drobne” oszacowania w stylu 30 minut i godzina można spokojnie włożyć między bajki. Nie jesteśmy robotami i nie ma szans, żeby ktoś zrealizował osiem 1-godzinnych zadań w jeden dzień. Ani tym bardziej szesnaście 30-minutowych.

Największą pomocą, jest jednak zmiana sposobu myślenia o pracy, którą wykonujemy. Nie zależy nam przecież na samym włożeniu pistoletu do baku i wlaniu tam paliwa, ale w głowie mamy cały procesem tankowania łącznie z płaceniem i tą nieszczęsną kawą. Podobnie powinniśmy działać jeżeli chodzi o wymagania, które realizujemy w zespołach. I tu konwersja Man-Day’ów na Story Point to ostatnia rzecz, którą powinniśmy robić.

 

Wymagania, a nie zadania

Nigdy nie chodzi nam przecież o „zrobienie backendu” albo „zrobienie frontendu” czy „wgranie jakiejś rzeczy na środowisko testowe”. Tak naprawdę interesuje nas, kiedy możemy powiedzieć, że praca jest skończona. Zamiast skupiać się na szacowaniu poszczególnych godzin będących składowymi wymagań, zajmiemy się całymi wymaganiami i traktujemy je jak jedną rzecz.

W przypadku zadań duże znaczenie ma, kto konkretnie będzie wykonywał które z nich i kiedy. Często warto też wziąć pod uwagę, jak poszczególne osoby współpracują ze sobą. Wiemy też, że nie mamy absolutnie żadnych szans na wylistowanie wszystkich zadań składowych. Te, które wylistujemy nie będą oszacowane precyzyjnie, bo ustaliliśmy już, że nic nie trwa 5 minut a żadne zadanie deweloperskie nie trwa godzinę.

Jeżeli potraktujemy wymagania całościowo i zaczniemy się zastanawiać nad nimi jako zespół i rozważać to, kiedy nam jako zespołowi uda się doprowadzić je do postaci działającej, to w końcu może przejdziemy od planowania indywidualnej pracy poszczególnym osobom, a zajmiemy się przekazywaniem wymagań do rozwiązania do zespołu. W tym drugim przypadku mamy większą szansę na to, żeby nasze szacunki (oczywiście o wiele bardziej zgrubne i nieprecyzyjne) jakkolwiek się sprawdzały i pozwalały nam planować pracę już nie poszczególnych osób, ale całego zespołu. I nie w godzinach, ale w mierze która jasno nam powie, ile możemy jako zespół zrealizować w jednej jednostce – na przykład w tygodniu bądź Sprincie.

Tu oczywiście potrzebne jest ostrzeżenie: nie można przesadzić w drugą stronę! Rzeczy, które realizujemy i rozważamy do realizacji nie mogą być zbyt duże, bo wtedy napotkamy na problemy z drugiego krańca spektrum. Przy dużych i skomplikowanych wymaganiach przestaniemy widzieć niuanse które znacząco zmieniają całą wycenę, a zamiast być zaskakiwanymi „rzeczami dookoła pięciu minut”, będziemy zdziwieni złożonością całego wymagania.

 

O szacowaniu i wycenach moglibyśmy pisać dużo. Co więcej, nawet to zrobiliśmy i napisaliśmy całą książkę pod tytułem: „Szacowanie: Story Points i nie tylko„, do której zakupu serdecznie zapraszamy.

Tomasz Dzierżek


23+ lat doświadczenia w IT, 15+ lat doświadczenia w Scrum i agile, PSM III (i inne), konsultant zwinnych procesów i zespołów, Agile Coach, trener

Your email address will not be published. Required fields are marked

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}