W poprzednim artykule opisałem trudności z wykorzystaniem velocity do planowania i sporządzania prognoz, wskazując na przepustowość (ang. throughput) jako miarę, którą można posłużyć się w zamian. I nie chodziło mi o proste zastąpienie jednej miary inną. Zanim jednak przejdę do bardziej złożonych kwestii, warto pochylić się nad informacjami podstawowymi.

Przepustowość jako miara

Throughput to liczba rzeczy, które przepłynęły przez jakiś proces w wybranej jednostce czasu. Inaczej mówiąc, to liczba rzeczy, które wytworzył proces w rozważanym okresie.

Z definicji tej wynika kilka wniosków.

Po pierwsze, przepustowość jest miarą ilościową i do jej wyliczenia wystarczy wiedza o liczbie rzeczy zrealizowanych w określonym czasie. Oznacza to, że da się ją wyliczyć mimo braku wycen.

Po drugie, throughput to zawsze liczba naturalna i podawany jest bez jednostki, za to obowiązkowo ze wskazaniem okresu, dla jakiego został wyliczony.

Po trzecie, przepustowość to miara wyliczana zawsze bezpośrednio poprzez liczenie ukończonych rzeczy, a nie jako średnia z czegokolwiek. Dlatego nie można powiedzieć, że jeśli w przeciągu kwartału Zespół zrealizował 60 rzeczy, to jego miesięczny throughput wynosi 20. Natomiast można powiedzieć, że tyle wynosi średnia przepustowość miesięczna. Inaczej mówiąc, throughput i throughput średni są różnymi miarami.

Po czwarte, throughput nie może być traktowany jako ekwiwalent lub choćby przybliżenie żadnej z miar wymienionych poniżej:

  • dostarczonej wartości (bo przez proces mogą przepływać w dużej liczbie rzeczy niepotrzebne lub nawet szkodliwe),
  • produktywności (bo na przepustowość składa się liczba ukończonych rzeczy, więc może ona być bardzo wysoka po zrealizowaniu wielu drobiazgów, albo bardzo niska, jeśli przeprocesowanych zostało ledwie kilka olbrzymich tematów),
  • zdolności do szybkiej realizacji rzeczy do zrobienia (bo przepustowość nie uwzględnia czasu pracy nad rzeczami, które się na nią składają),
  • nakładu pracy lub pracowitości (bo z faktu, że w jakimś okresie zrealizowano dużo rzeczy, nie wynika, że wymagało to sporo wysiłku, podobnie jak niska przepustowość nie oznacza automatycznie, że pracy w jej uzyskanie włożono niewiele),
  • skuteczności rozumianej jako zdolność wytwarzania właściwych rzeczy na moment, w którym są one potrzebne (bo przepustowość nie uwzględnia w ogóle oceny terminowości, przydatności, jakości czy wartości tego, co zostało wytworzone).

Po piąte, wartość przepustowości jest ustalana precyzyjnie bez błędu wynikającego z konieczności uśredniania lub szacowania czegokolwiek. Wystarczy policzyć, jak wiele rzeczy ukończone zostało we wskazanym okresie, a to powinno dać się ustalić w sposób bezsporny i obiektywny. Jeśli nie jest jasne, co wciąż znajduje się w procesie, ani co zostało ukończone pomiędzy określonymi datami, to w praktyce oznacza, że proces jest niezdefiniowany i nie ma możliwości skutecznego kontrolowania jego przebiegu. W tym przypadku nie tylko nie ma sensu wyliczać przepustowości (bo się tego zrobić nie da), ale również większości innych miar, bo ich wartości będą niemiarodajne i oparte o domniemania.

Po szóste, przepustowością da się manipulować, dokonując niepotrzebnego podziału dużych rzeczy na kilka mniejszych albo łącząc niewielkie tematy w jeden duży, dzięki czemu wartość miary jest sztucznie zawyżana lub zaniżana.

Po siódme, taka sama lub bardzo zbliżona wartość przepustowości wyliczonej dla szeregu następujących po sobie okresów nie musi świadczyć o stabilności procesu. Podobnie jak zmienność przepustowości nie jest jednoznacznym symptomem niestabilności. Jeśli realizowane rzeczy różnią się wielkością, nakładem pracy, złożonością itd., to mimo iż proces jest stabilny, przepustowość w każdym z okresów może być różna.

Po ósme, przy wyliczeniu throughput uwzględniane są rzeczy, nad którymi praca zakończyła się w trakcie okresu, dla którego przepustowość jest ustalana. Nie oznacza to, że ich realizacja nie zaczęła się jeszcze przed tym okresem. Jest więc możliwe, że przepustowość wyliczona np. za ostatni tydzień czerwca uwzględni rzeczy, które tkwiły w procesie od początku roku.

Po dziewiąte, skoro throughput jest miarą liczby rzeczy, dla których proces zakończył się w rozważanym czasie, wszystkie te rzeczy powinny być faktycznie ukończone w okresie, dla którego przepustowość jest wyliczana. Tym samym do przepustowości nie dolicza się rzeczy, nad którymi prace w tym czasie trwały, ale wciąż nie są zakończone. Może wręcz zdarzyć się sytuacja, że mimo bardzo ciężkiej pracy Zespołu, jego przepustowość będzie zerowa, jeśli od początku do końca okresu, dla którego jest wyliczana, nie uda mu się niczego ukończyć.

I po dziesiąte, throughput nie jest nazwą wybraną przypadkowo. Przepustowość to miara tego, jak wiele rzeczy jest w stanie przepłynąć przez jakiś proces o określonych ograniczeniach i możliwościach w konkretnym czasie. To oznacza, że jeśli z jakiegoś powodu jedna i ta sama rzecz przepłynie przez proces trzykrotnie w rozważanym okresie, to zwiększa przepustowość za ten okres o trzy, a nie o jeden.

Różnice w stosunku do velocity

Celowo przedstawiłem wnioski płynące z definicji przepustowości tak, by dało się je porównać z tymi, które opisałem w poprzednim artykule przy omawianiu prędkości. Różnice są istotne, choć mogą zdawać się niewielkie.

Przede wszystkim przepustowość nie uwzględnia wielkości zrealizowanych rzeczy, co w opinii wielu osób dyskwalifikuje tę miarę z użycia do sporządzania prognoz. Przecież poszczególne tematy wymagają różnego nakładu pracy, a jeśli potraktuje się je ilościowo, jakby były sobie równe, skutkiem jest „zafałszowanie prognoz”. I to prawda, ale zasadnicze pytanie brzmi, czy owo „zafałszowanie” będzie większe niż negatywny wpływ na prognozy sporządzane z użyciem velocity skumulowanych błędów oszacowań, z których ta miara jest wyliczana. Jeszcze do tego wrócę.

Druga istotna różnica objawi się w sytuacji, gdyby z jakiegoś powodu pracę nad czymś trzeba było wykonać więcej niż raz. Do przepustowości każde przejście tego czegoś przez proces wliczone zostanie jako kolejna rzecz ukończona, zwiększając wartość miary o jeden za każdym kolejnym razem (czyli cyklem). Do prędkości to coś wliczone zostanie dopiero wtedy, gdy przejdzie przez proces po raz ostatni, zapewne z odpowiednio podwyższoną wyceną, aby uwzględnić całkowity nakład pracy.

Oznacza to w praktyce, że możliwa jest sytuacja, kiedy velocity jest zerowe, podczas gdy throughput wyliczony w tym samym okresie jest całkiem wysoki. Natomiast niemożliwa jest sytuacja odwrotna, czyli niezerowe velocity przy zerowej przepustowości procesu. Wynika to wprost z różnic w definicjach tych miar, z których jedna (velocity) powiązana jest z tempem zmniejszania się listy rzeczy do zrobienia, a druga (throughput) z przebiegiem procesu jako takiego.

A skoro tak, to jakim cudem przepustowość miałaby być dobrym zamiennikiem dla prędkości, skoro wydaje się mieć od niej jeszcze więcej wad?

Która miara lepiej odzwierciedla rzeczywistość

Na początek rozprawię się z obawami, że sięgając po przepustowość, zgubi się „istotną informację” o tym, jak duże były rzeczy, które zostały zrealizowane. Tzw. chłopski rozum podpowiada, że velocity, które uwzględnia wyceny, musi być lepszą podstawą do wszelkich analiz czy prognoz. Tyle że wcale nie jest.

Wyceny z definicji skażone są błędem o nieznanej wielkości, dlatego nie da się wyliczyć velocity precyzyjnie. Do tego najczęściej w trakcie sporządzania analiz i prognoz używa się średniej wartości miary zebranej na przestrzeni np. kilku miesięcy, co dodatkowo kumuluje wszystkie te błędy. Nie ma co liczyć na to, że będą się one wzajemnie niwelować – równie dobrze mogą się sumować.

Przepustowość dla odmiany jest wyliczona w sposób bezsporny, a jedyny „błąd” powiązany z jej wartością wynika ze wspomnianego uśrednienia wielkości rzeczy, które się na nią składają. Tyle że tak naprawdę nie jest to błąd, tylko naturalna konsekwencja tego, jak miara jest zdefiniowana. Ona nie ma być przecież odzwierciedlać ilości pracy, jaka została wykonana, ale liczbę rzeczy, które udało się ukończyć.

I w ten sposób dochodzimy do kolejnej kwestii: przepustowość uwzględnia tylko te rzeczy, które zostały zrealizowane, a wyliczoną wartość miary można użyć z sensem do tworzenia prognoz tylko wtedy, gdy proces jest stabilny (czyli nie zmienia się szybko i w znacznym stopniu, a co najwyżej podlega powolnej ewolucji). Jeśli dobrze się nad tym zastanowić, jasne staje się, że wielkość zrealizowanych rzeczy nie ma istotnego znaczenia i może być bezpiecznie zignorowana. Już wyjaśniam, skąd taki wniosek.

Jeśli rozmiar tego, co jest przetwarzane w procesie, miałoby istotny wpływ na przebieg procesu i jednocześnie poszczególne rzeczy w sposób zasadniczy różniłyby się wielkością, to osiągnięcie choćby umiarkowanej stabilności jest niemożliwe. To, jak przebiegał będzie proces, zależeć wtedy będzie od tego, co akurat zostało do niego wciągnięte.

Natomiast jeśli proces jest stabilny, to albo rozmiar rzeczy, choć różny, nie ma istotnego wpływu na sposób ich procesowania, albo też rzeczy te różnią się w stopniu na tyle małym, że można uznać, iż są mniej więcej takie same. Jasne, niektóre będą mniejsze, inne większe, ale rozrzut wielkości wokół jakiejś wartości średniej nie będzie duży i nie będzie się istotnie zmieniał w funkcji czasu.

Czy da się jakoś wyliczyć skalę błędu popełnianego przy prognozowaniu z zastosowaniem velocity oraz przepustowości i porównać je, aby bezspornie wykazać, kiedy jest on wyższy? Wątpię, bo trudno sobie wyobrazić przeprowadzenie naukowego eksperymentu, który dostarczy niezbędnych danych. Poza tym, po co to robić?

Tak naprawdę obie miary są zgrubnym opisem rzeczywistości i doszukiwanie się w nich precyzji nie jest zbyt mądre. Z nich dwóch to velocity ma szansę być mniej dokładna, bo jest oparta o szacunkowe składowe (wyceny). O ironio, choć są one największą słabością tej miary, fakt posługiwania się nimi (i w ten sposób uwzględnienie wielkości realizowanych rzeczy) prowokuje do uznania (bezzasadnie), że velocity jest precyzyjniejsze od przepustowości.

Nie jest zresztą moją intencją przekonywanie kogokolwiek, że throughput z jego uśrednieniem wielkości zrealizowanych rzeczy jest w czymkolwiek dokładniejszy od prędkości. Na wiarygodność prognoz ma przecież wpływ nie tylko miara, którą się przy tym posłużymy, ale też sposób, w jaki jej użyjemy. A w tym aspekcie throughput wygrywa o kilka długości z prędkością.

Prognozy dat realizacji z użyciem throughputu

Sporządzanie prognozy z wykorzystaniem przepustowości nie różni się zasadniczo od tego opartego o pomiary prędkości. Jest przy tym o wiele prostszy. Wystarczy ustalić średnią wartość przepustowości w kilku następujących po sobie okresach, a następnie przejść przez listę rzeczy do zrobienia, zliczając je. Przykładowo, jeśli średnia przepustowość Zespołu to 10 rzeczy zrealizowanych na miesiąc, aby zrealizować kolejnych 60 rzeczy potrzeba pół roku.

Przy czym, tak samo, jak ma to miejsce w przypadku zastosowania velocity, prognoza wymaga wskazania poziomu niepewności, jaki się z nią wiąże. Dlatego trzeba powyższy proces powtórzyć kilka razy, np. z zastosowaniem średniej z trzech najniższych wartości przepustowości za ostatnich kilka miesięcy (wariant pesymistyczny), oraz analogicznie trzech najwyższych wartości (wariant optymistyczny).

Powiedzmy, że uśrednione minimum to pięć rzeczy zrealizowanych w czasie miesiąca, a uśrednione maksimum to aż 20. Z racji dużego rozrzutu przepustowości, prognoza jest dość niepewna: na zrealizowanie kolejnych 60 rzeczy Zespół potrzebował będzie być może tylko trzy miesiące, ale niewykluczone, że aż rok. Gdyby uśrednione minimum wynosiło 8 rzeczy na miesiąc, a maksimum 12 rzeczy na miesiąc, prognoza byłaby dokładniejsza: od 5 miesięcy do 7.5 miesiąca na wykonanie całości prac.

Uwaga: wyliczona wartość średnia przepustowości może być ułamkowa, a wtedy nie da się jej użyć do prognozowania, w których kwartałach, miesiącach czy iteracjach mogą potencjalnie zostać ukończone poszczególne rzeczy z listy do zrobienia. Chodzi wszak o ustalenie, kiedy praca nad nimi się zakończy. Dlatego, jeśli wyliczona średnia nie jest liczbą naturalną, trzeba ją zaokrąglić w dół.

A gdzie ta łatwość w porównaniu do użycia velocity, o której pisałem? Otóż nie potrzebujemy już wycen wszystkich elementów na liście rzeczy do zrobienia, by sporządzić prognozę. Nie potrzebujemy też mozolnie sumować wycen, by ustalić, dokąd dobrniemy w jakim czasie. Prognozowanie sprowadza się do prostego zliczania elementów na liście.

Ta prostota prognozowania i brak potrzeby wcześniejszego ustalenia wycen powoduje, że proces można powtarzać często. Łatwiej też uwzględnić całe spektrum oszacowań w ramach prognozy, niekoniecznie ograniczając się tylko do użycia jakiegoś uśrednionego minimum i maksimum. Przykładowo, można sporządzić przewidywania dla:

  • średniej wartości przepustowości,
  • wartości minimalnej,
  • wartości maksymalnej,
  • uśrednionego minimum wyliczonego z trzech najniższych przepustowości,
  • uśrednionego maksimum wyliczonego z trzech najwyższych przepustowości,
  • różnych percentylów wartości przepustowości, w tym np. mediany.

Oczywiście do prognozowania potencjalnych dat ukończenia, czyli nałożenia na listę rzeczy do zrobienia granic okresów, dla jakich wyliczana jest przepustowość, ponownie trzeba sięgnąć po jej wartości całkowite. Jeśli więc mediana wynosi 6.3 rzeczy na miesiąc, to do sporządzenia prognozy na jej podstawie posłużyć należy się wartością 6 (zaokrąglając liczby zawsze w dół).

A to oznacza, że dzięki zastosowaniu przepustowości prawie zawsze da się sporządzić prognozy lepsze i mniejszym kosztem, niż w przypadku posłużenia się velocity. Lepsze, czyli złożone z większej liczby wariantów, a tym samym dające dokładniejszą ocenę stopnia niepewności.

Prognozy na potrzeby planowania iteracji

Mechanika jest tu identyczna, jak opisana powyżej, przy czym prognoza dotyczy czasu trwania jednej iteracji (zwykle jest to zarazem okres, dla którego wyliczana jest przepustowość).

Przy czym, analogicznie jak to pisałem odnośnie do velocity w poprzednim artykule, takie prognozy nie powinny stanowić podstawy do podejmowania decyzji przez Zespół o tym, jak wiele rzeczy podjąć do realizacji w iteracji. Ta decyzja powinna być oparta o ocenę czasochłonności przewidywanych prac.

Dopiero po sporządzeniu prognozy tego, co zdaniem Zespołu jest możliwe do ukończenia w trakcie iteracji, można sprawdzić, jaką pozwoli to uzyskać potencjalną przepustowość i porównać tę wartość z throughputem z iteracji wcześniejszych. Jeśli różnica jest zasadnicza, być może plan jest zbyt zachowawczy albo mało realistyczny – jeśli tak, Zespół może (nie musi) wprowadzić do niego zmiany.

Raz jeszcze ujawni się przy okazji przewaga przepustowości nad velocity: Zespół nie potrzebuje ustalać wycen rzeczy, których realizację rozważa, a wyliczenie potencjalnego throughputu, który osiągnąłby, realizując wszystko, co zaplanował, jest trywialne.

Wady prognoz opartych o throughput

Czy przepustowość to miara idealna, pozbawiona ograniczeń? Oczywiście nie, ale o nich napiszę w kolejnej, ostatniej części cyklu już wkrótce.