W poprzednich postach pisałem o zadaniach i tablicy w Kanban. Aby być w miarę produktywnym trzeba w danym momencie skupić się nad jednym zadaniem. Kanban wspomaga ten proces i definiuje pojęcie pracy cząstkowej.
Praca cząstkowa w Kanban to liczba zadań realizowanych jednocześnie. Liczba takich zadań jest określa parametrem WIP Work-In-Progress lub praca w toku.
Parametrem WIP określa całą pracę, która jest aktualnie rozpoczęta.
Teoretycznie można by było pootwierać wiele zadań. Jeśli chcemy wykonać 10 zadań na raz, napotkamy wiele trudności. Głównym tego powodem jest strata czasu przy przechodzeniu z jednego zadania na drugie (koszt zmiany). Aby ograniczyć pracę, ogranicz skakanie z jednego zadania na drugie – to automatycznie pomoże zaoszczędzić czas. Podniesie też jakość. Zbyt dużo otwartych zadań nie sprzyja szeroko rozumianej produktywności. Trzeba ograniczać otwarte zadania. Określeniu liczby otwartych zadań pomaga wyliczenie tego parametru. Do wyliczenia można posłużyć się prawem Little’a.
Przykład:
Jeśli Twój projekt ma zająć cały rok i dostarczasz zadanie co tydzień, możesz ustalić limit swojej WIP jako 3.
Czy niezbędne jest określenie limitu?
Aby zakończyć zadanie w odpowiedni sposób, musisz skupić się na celu. Ograniczenie pracy zapewnia skupienie, a to przyśpieszy czas realizacji wymagań. Mniej pracy cząstkowej prowadzi do szybszego przepływu przez proces: krótszy jest czas dostarczenia gotowego produktu. Ograniczanie pracy cząstkowej jest jedną z głównych zasad Kanban. Nie oznacza to, że powinieneś wykonywać mniej pracy, ale że powinieneś robić mniej rzeczy naraz. Ograniczenie WIP pozwoli na wykonywanie pracy szybciej.
WIP w inżynierii oprogramowania
W inżynierii oprogramowania to zadanie cząstkowe to w zależności od etapu: robiony lub niewykonany artefakt. W tym miejscu ważnym jest aby określić czym ten artefakt jest. Dla mnie jest to zazwyczaj przypadek użycia. Może to być także historyjka użytkownika.
Wobec powyższego na WIP w inżynierii oprogramowania to będzie przykładowo:
- niedokończony opis przypadku użycia
- historyjka użytkownika w trakcie implementacji
- niewykonany test akceptacyjny
- nieprzekazany kod do instalacji
- itd..
Zbyt dużo zadań realizowanych jednocześnie oznacza, że pracujemy wolniej. Ponadto jakość tej pracy spada. Często też w ciągu dnia trzeba przełączyć się pomiędzy dwoma lub trzeba trudnymi zadaniami. Efekt jest taki, że nie tylko tracimy czas na wdrożenie w nowe zadanie, ale także nie mamy ukończonych zadań.
Rozwiązaniem wspomnianego problemu jest wstawienie limitów pracy cząstkowej. Co to oznacza? Oznacza to tyle, że w danym momencie można mieć rozpoczętych nie zadań niż określonych w limicie.
Dróg do określenia wartości parametru WIP jest wiele. Warto jednak wziąć pod uwagę, że niższy limit WIP jest zazwyczaj lepszy niż wyższy, ponieważ celem jest jak najbardziej ograniczać liczbę rzeczy, nad którymi pracuje się jednocześnie. Ustawienie zbyt niskiego limitu WIP może jednak spowodować zatrzymanie procesu. Gdy Parametr WIP jest ustawiony na wartość jeden, to w przypadku jakiegokolwiek problemu, który wymusza wstrzymanie chwilowe prac, cała praca stoi. Z moich doświadczeń wynika, że parametr WIP należy dostosować w pierwszych iteracjach.
Z drugiej strony, jeśli limit WIP będzie zbyt wysoki, praca będzie jałowa. Będą otwarte zadania, które nie będą realizowane. Limity nie powinny być zasadniczo narzucone odgórnie lecz powinny być wynikiem dyskusji zarówno w zespole jak i z interesariuszami, a najlepiej konsensusu.
Na koniec wspomnę, ze limity powinny być tak dobrane, by przepływ przez proces był płynny. O płynności procesu już za w kolejnym wpisie dot. Kanban.