Kiedy zapisałem na kartce tytuł dzisiejszego posta pomyślałem, że jest bardzo podobny do tytułu jednego z moich ulubionych polskich seriali, a mianowicie „Stawki większej niż życie”. Czy warto w ogóle posiadać w Backlogu wymagania większe niż Sprint? Wymagania takie przez swoją wielkość są mocno problematyczne. Sprawdźmy!
Typy backlogów
Dużo czasu spędzaliśmy ostatnio nad backlogami w różnych firmach. Generalnie dzielą się one na kilka podstawowych typów. Pierwsze to backlogi, których nie ma wcale. Czytaj: firma posiada wymagania wyłącznie na najbliższy Sprint. Drugim przypadkiem są backlogi, które istnieją, ale ich granularność znajduje się na poziomie zadań do wykonania, a nie wymagań. Oczywiście jest jeszcze trzeci typ w których backlogi istnieją i są dobrej jakości, ale do takich firm z oczywistych jak się wydaje względów ostatnio nie trafiamy.
Najczęściej występującym przypadkiem są jedna backlogi mieszane. Składają się one z wymagań i zadań, jednak wielkość jednych i drugich nie umożliwia ich realizacji w jednym Sprincie. Pisząc, że wymagania/zadania nie mieszczą się Sprincie, mam na myśli sytuację, w której realizacja wymagania zajmie więcej niż jedną iterację. Ktoś może zapytać, jaki jest z tym problem? Przecież #białko od zawsze mówi, że „w backlogu powinny znajdować się wymagania” i je właśnie mamy. Zgadza się, mamy wymagania, ale de facto nie wiadomo ile zajmie ich realizacja. Nie o to przecież chodzi!
Co z tego, że są za duże?
Konsekwencji za dużych wymagań może być wiele. Po pierwsze, chyba najbardziej trywialna, to problem polegający na braku możliwości otrzymania szybkiej informacji zwrotnej. Założeniem zwinnych metodyk jest jak najczęstsze oddawanie gotowych (czytaj: skończonych) wymagań po to, aby Klient mógł ocenić nasz postęp. Dokładniej chodzi o to, czy to nad czym pracujemy i sposób w jaki wykonujemy nasze prace jest zgodne z oczekiwaniami. Praca nad wymaganiami, które zajmują więcej niż jeden Sprint jest często proszeniem się o kłopoty. Zabieramy się za realizację wymagania nie definiując punktu, w którym jakąś skończoną część przynoszącą wartość biznesową będziemy w stanie „odbić” od Klienta.
Po drugie, wymaganie, którego realizacja zajmuje więcej niż jeden Sprint to wymagania duże, którymi będzie zajmowało się wielu Deweloperów. W naturalny sposób powstają wtedy zależności i konieczność kolejkowania prac między Deweloperami. Prowadzi to do nieefektywności i bardzo często konfliktów. Ktoś może powiedzieć, że od wymiany wiedzy w tym zakresie jest Daily, Tak, zgadzam się, ale jeśli możemy tego uniknąć, to po co komplikować sobie życie?
Kolejną konsekwencją na którą warto zwrócić uwagę, jest to, że w przypadku wymagań które zajmują więcej niż jeden Sprint nikt nie dołoży starań, żeby zrealizować je w ciągu jednego Sprintu nawet, jeżeli jest to możliwe. Ludzki umysł jest leniwy, zaprogramowany w taki sposób, że posiadając termin realizacji, a w tym przypadku jest to koniec drugiego Sprintu, tak naprawdę wykorzysta ten czas do maksimum. Pisaliśmy o tym przy okazji omawiania zagadnienia prawa Parkinsona, które zawsze łatwo tłumaczy się na działaniach urzędów państwowych. Dowolny urząd posiadając 14 dni na analizę wniosku wyda decyzję właśnie po 13 dniu. Podobnie będzie z naszymi wymaganiami. Ponieważ ktoś stwierdził, że to wymaganie jest za duże, aby zrealizować je w jednym Sprincie mamy niejako zielone światło na to, aby nie przeciążać się z jego realizacją. Nikt tego przecież nie oczekuje!
Wymaganie większe niż Sprint
Co to właściwie znaczy „za duże wymaganie„? Jedni z twierdzą, że za duże wymaganie to takie, którego wielkość wyrażona oszacowaniem godzinowym przekracza 80 godzin. To tyle właśnie zajmować będzie sumarycznie praca niezbędna do wykonania przez Dewelopera, aby zrealizować wymaganie. Drudzy stwierdzą, że za duże wymaganie to wymaganie, którego łączne oszacowanie na przykład w Story Points wynosi 21 i więcej. Z historycznych danych, które posiada Twój zespół może wynikać, że maksymalną wielkością wymagania, które jesteśmy w stanie zrealizować w jednym Sprincie jest 13 Story Points. Trzeci stwierdzą i do tych mi chyba najbliżej, że za duże wymaganie to wymaganie, w przypadku którego wszyscy kolegialnie stwierdzimy, że nie da się go zrealizować w jednym Sprincie. Nie ma tutaj znaczenia wycena, nie powinniśmy też patrzeć na szacowany czas realizacji. Bardzo często najlepszym doradcą będzie nasze przeczucie i pojmowanie tego, co znaczy za duże wymaganie jako wynik wspólnej dyskusji pomiędzy Deweloperami.
Co więc powinniśmy zrobić, jeżeli nasze wymaganie jest większe i już wiemy, że nie uda się go zrealizować w jeden Sprint? Na pierwszy rzut oka najlepszą odpowiedzią jest podział, ale nie zawsze musimy to robić. W pierwszej kolejności zastanowiłbym się, czy na pewno musimy je zrealizować. Tu pojawia się nasze ulubione pytanie „Co się stanie jeżeli tego nie zrobimy”. Jeżeli stwierdziliśmy już, że wymaganie jest niezbędne do zrobienia zweryfikujmy, czy całość tego wymagania jest faktycznie niezbędna naszemu Klientowi. Często w dużych wymaganiach kryją się tak zwane wodotryski, rzeczy efektowne lecz zbędne. Ich niezrealizowanie (wycięcie) spowoduje, że wymaganie będzie mniejsze. Jeśli wymaganie nie zawiera wodotrysków dopiero w tym momencie powinniśmy podejść do zagadnienia dzielenia. Jak tego dokonać? To już temat jednego z naszych warsztatów, na który serdecznie zapraszamy!