Prawo Little’a

W różnych moich wcześniejszych tekstach dotyczących flow, flow management oraz efektywności przepływu przewijało się Prawo Little’a. Nadszedł więc czas na szczegółowe przedstawienie Prawa Little’a i opisującej go formuły:

Średnia Przepustowość = Średni poziom prac w toku / średni czas realizacji

Prawo i związana z nim formuła opisuje zależności związane z przepływem pracy w systemie, jakim może być przykładowo proces wytwarzania oprogramowania, lub każdy inny proces biznesowy, w którym mogą występować fazy prac (np. analiza, programowanie, testowanie). Znajduje szerokie zastosowanie praktyczne przy budowaniu różnego rodzaju systemów, w których występuje przepływ i kolejki i dlatego też warto i wręcz trzeba je rozumieć, by zrozumieć funkcjonowanie systemu.

Dr. John Little w latach 50-tych badał systemy kolejek, które można przedstawić w postaci prostego schematu:

Oryginalnie Prawo Little’a wyraża formuła: L = λ * W, gdzie:

L = średnia liczba elementów w systemie kolejkowym

λ = średnia liczba elementów zasilających system (wchodzących) w jednostce czasu

W = średni czas oczekiwania (przebywania) elementu (np. pracy lub auta na autostradzie) w systemie kolejkowym

 

Chwila analizy powyższej formuły prowadzi do następujących spostrzeżeń:

  1. Widać, że formuła ta dotyczy zasilania systemu z kolejką
  2. Prawo Little’a dotyczy wartości średnich oraz że wielkość elementu nie ma znaczenia – prawdziwość formuły zapewnia po prostu liczba elementów
  3. Najważniejsza jest relacja pomiędzy trzema składowymi formuły, gdyż może być zastosowana do budowy przewidywalnych procesów i systemów.

Zmodyfikowana formuła Prawa Little’a

W latach 90-tych Prawo Little’a znalazło zastosowanie w zarządzaniu produkcją, przy czym zostało ono nieco zmodyfikowane, dla zaakcentowania przepustowości, czyli wyjścia z systemu kolejki (a nie zasilania, którego dotyczyła oryginalna formuła). Podejście Kanban wykorzystuje właśnie tę zmodyfikowaną formułę Prawa Little’a w następującej postaci:

  • Średnia przepustowość = Średni poziom prac w toku / średni czas realizacji
  • Średni poziom prac w toku = Średni czas realizacji * Średnia przepustowość

I wracając do relacji pomiędzy trzema składowymi Prawa Little’a: inny kluczowy wniosek wynikający z Prawa Little’a to: jeśli chcemy realizować zadania (prace) szybciej, powinniśmy pracować nad mniejszą liczbą zadań (prac) – oczywiście: średnio. Bo im więcej mamy zadań (prac) w toku, tym dłuższy będzie czas realizacji zadania – znowu: oczywiście średnio. Z Prawa Little’a wynikają też bezpośrednio mechanizmy, jakie mamy do dyspozycji, gdy chcemy dokonywać usprawnień systemu pracy i doprowadzić do przewidywalności dostarczania zadań, a tym samym produktów.

Praktyczne wykorzystanie założeń Prawa Little’a

Formuła Prawa Little’a – jak napisałem powyżej – jest oczywiście bardzo ważna i bardzo praktyczna. Jednak najważniejsze jest rozumienie – oraz praktyczne wykorzystanie – założeń, warunkujących prawdziwość Prawa Little’a. Te założenia to:

  1. Średnia liczba elementów zasilających (wchodzących) w jednostce czasu (λ) powinna być równa średniej liczbie elementów wychodzących z procesu (systemu) w jednostce czasu, tj. równa przepustowości
  2. Wszystkie zadania (prace) rozpoczęte powinny być ukończone i wyjść z procesu (systemu)
  3. Poziom prac w toku w procesie (systemie) powinien być mniej więcej ten sam na początku i na końcu odcinka czasu wybranego do obliczeń
  4. Średni wiek prac w roku nie powinien ani maleć, ani rosnąć
  5. Czas realizacji, poziom prac w toku oraz przepustowość muszą być mierzone spójnymi jednostkami miary

Dwa pierwsze założenia określane są mianem Zasady Zachowania Flow (ang. Conservation of Flow), a dwa następne mówią o stabilności systemu.

Żeby być precyzyjnym trzeba by – tak, jak zrobił to Daniel Vacanti w książce „When will it be done” – przy stosowaniu tej Kanban’owej formy Prawa Little’a wyróżnić dwie podstawowe sytuacje:

  1. Proces (system), w którym poziom prac w toku (WIP) może być zerowy, jak idealny sprint Scrum’owy rozpoczynany z zerowym poziomem prac w toku i kończony także z zerowym poziomem
  2. Proces (system), w którym poziom prac w toku (WIP) nigdy nie osiąga poziomu zerowego.

Powyższe 5 założeń dotyczy sytuacji 2-giej, czyli procesu (systemu), w którym poziom prac w toku (WIP) nigdy nie osiąga poziomu zerowego. W sytuacji 1-szej wystąpią tylko 3 założenia. W praktyce w zdecydowanej większości przypadków, tj. poza „idealnym” sprintem i idealnym projektem rozpoczynanym „od zera” mamy do czynienia z sytuacją 2-gą.

Codzienne zastosowania Prawa Little’a

Na wstępie tekstu napisałem, że Prawo Little’a można bardzo, bardzo często zaobserwować w codziennym życiu. Najprostsze przykłady to: zatłoczona autostrada, lub zatłoczona ulica z licznymi skrzyżowaniami, czyli zasileniem dodatkowych samochodów, kolejka w Starbucksie, czy Cafe Nero. Jakiś czas temu – przy produkcji kursów on-line na platformę Udemy – miałem często do czynienia z procesem biznesowym pizzerii: składaniem zamówienia, dostawą pizzy i poprzedzającą ją produkcją. Przecież odpowiedź na pytanie: kiedy my – producenci kursu on-line - dostaniemy naszą pizzę, można uzyskać właśnie z formuły Prawa Little’a, w której czas realizacji to właśnie czas na wyprodukowanie i dostarczenie pizzy, przepustowość to możliwości realizacyjne pizzerii: ile pizz jest w stanie wyprodukować w jednostce czasu (np. w ciągu godziny), zaś poziom prac w toku to zarówno zamówienia złożone, lecz nie rozpoczęte, jak i pizze w piecu – w trakcie produkcji.

To teraz pytanie do Was; jeśli przepustowość pizzerii to 10 pizz na godzinę, a poziom prac w toku wynosi 10, to kiedy dostaniemy, oczywiście średnio licząc, swoją pizzę?

Inne codzienne zastosowania Prawa Little’a to na przykład system informacyjny dotyczący czasu oczekiwania na niektóre atrakcje w Disneylandzie, czy też zarządzanie kupującymi w supermarkecie w trakcie pandemii. Zobaczcie poniższe zdjęcie i pomyślcie, jak z nimi powiązane jest Prawo Little’a.

 

Prawo Little’a i zasady pracy

Wróćmy teraz do założeń Prawa Little’a i ich praktycznego wykorzystania jako podstawy tzw. polityk, lub mówiąc nieco inaczej: zasad pracy procesów wytwórczych, bazujących na Flow Management i na podejściu Kanban. Przypomnę, że jedna z praktyk podejścia Kanban mówi o stworzeniu i konsekwentnym stosowaniu transparentnych zasad pracy w danym procesie lub systemie. Praktyka ta – na pierwszy rzut oka – wydaje się mało istotna i mało przydatna w porównaniu z takimi praktykami jak wizualizacja procesu, wizualizacja wykonawców, czy wizualizacja poziomu ograniczeń prac w toku, czy też z inną praktyką tj. ograniczania prac w toku. Sam zresztą podobnie myślałem. Do czasu, gdy – współpracując z niedużą firmą - przekonałem się o sile i praktycznym znaczeniu tej praktyki.

Siła i znaczenie tej praktyki dotyczącej transparentnych zasad polega przede wszystkim na tym, że dotyczy rozwiązań organizacyjnych – właśnie tych wspólnie ustalonych, wspólnie rozumianych i konsekwentnie przestrzeganych w zespole, projekcie, czy departamencie zasad. Dla doskonalenia samych procesów pracy, jak i ich rezultatów często nie trzeba bowiem żadnych inwestycji, żadnych złożonych narzędzi i systemów, kosztownych szkoleń, itp. złożonych i kosztownych działań. Wystarczy umówić się na określony sposób pracy, obserwować jego rezultaty i – jeśli będzie to potrzebne dla uzyskania jeszcze lepszych rezultatów pracy –  modyfikować go i/lub dopasowywać do swojego, zmieniającego się kontekstu, jak i oczekiwań klientów.

Założenia prawa Little’a, w szczególności 4-ry pierwsze, stanowią praktyczną bazę do ustalenia różnych zasad. Mogą to być przykładowo takie zasady jak:

  • Zaczynamy w zespole zadania (prace) w takim samym tempie, w jakim kończymy zadania (prace) – nawiązująca do założenia 1
  • Zadania (prace) rozpoczęte kończymy, a nie przerywamy w trakcie realizacji - i już do nich nie wracamy - nawiązująca do założenia 2
  • Gdy zadanie (praca) zostanie zablokowana, to jej odblokowanie ma najwyższy priorytet i robimy wszystko, by szybko je odblokować i móc kontynuować pracę - nawiązująca do założenia 4.

Zasady są – jak napisałem – tak ważne, że poświęcę im odrębny tekst, link do którego pojawi się tutaj.

I na koniec jeszcze kilka zdań o innych – prócz w/w - zastosowaniach Prawa Little’a, szczególnie w kontekście kilku kluczowych pytań praktycznych, klienta lub zamawiającego, takich jak: na kiedy zrobicie projekt? Na kiedy będzie gotowe kolejne wydanie produktu? itp.

Bo na pierwszy rzut oka może wydawać się, że Prawo Little’s to proste i praktyczne narzędzie do prognozowania terminu dostarczenia projektu, wydania produktu, zbioru funkcjonalności. Bo – jak się wydaje - wystarczy prosta kalkulacja: gdy nasza średnia przepustowość to 5 zadań na tydzień, i mamy do zrobienia 40 zadań, to – korzystając z prawa Little’a – uzyskamy 8 tygodni, jako odpowiedź na pytanie: kiedy zrobicie te 40 zadań?

Właśnie: wydaje się. Powyżej opisane podejście jest błędne. Dlatego, że:

  1. Prawo Little’a mówi o wartościach historycznych, o przeszłości, a nie o przyszłości
  2. Prawo Little’a bazuje na średnich, a wartość średnia może być bardzo, bardzo myląca. Świetnie pisze o tym Sam L. Savage w książce „The Flaw of Averages”, więc sam nie będę tu rozwijał tego punktu – sięgnijcie do tej książki.

Więc nie, Prawo Little’a nie powinno być stosowane do prognozowania, zwłaszcza długoterminowego. Może być natomiast, zwłaszcza informacje o przepustowości (takie jak: średnia, mediana, dominanta, 85%-owy lub 90%-owy percentyl) do szacowania, nazywanego „back of the envelope”, czyli do szacowania krótkoterminowego (ile zrobimy w następnej iteracji, lub w ciągu 2 tygodni). Wtedy jednak kluczowe znaczenie ma spełnienie/nie spełnienie założeń Prawa Little’a.

Bardzo powiązany z Prawem Little’a temat to wizualizacja jego formuły, w postaci tzw. skumulowanego diagramu przepływu (ang. Cumulative Flow diagram – CFD). Diagram ten będzie przedmiotem odrębnego tekstu.

Podsumowując:

  • Ponieważ systemy związane z przepływem i kolejkami, np. z przepływem prac, samochodów po autostradzie lub ulicy, czy przepływem klientów w supermarkecie powszechnie występują w środowisku biznesowym i w codziennym życiu, to warto znać i rozumieć Prawo Little’a i związaną z nim formułę
  • Najważniejsze w Prawie Little’a są jego założenia, będące podstawą do sformułowania zasad pracy w systemie z przepływem i kolejkami, umożliwiające przepływ, stabilność i przewidywalność
  • Prawo Little’a nie powinno być stosowane do prognozowania, zwłaszcza długoterminowego, może natomiast być stosowane do szacowania krótkoterminowego.