W pierwszej części notatek o twórczości Eliyahu Goldratta opisałem ideę łańcuchów zależności przez alegorię podróży w góry. W tej części skupie się na bardziej przyziemnym przykładzie: produkcji w fabryce. Dzięki temu możemy sięgnąć po idee, które wychodzą poza pierwotną analogię.
Przyglądając się wystarczająco długo można dojść do wniosku, że każda fabryka ma taką samą logikę: z jednej strony przyjeżdżają ciężarówki z półproduktami, a z drugiej wyjeżdżają z gotowym produktem (nazwijmy go „gadżetem”) na sprzedaż.
Załóżmy, że wiemy, że nasz zakład ma na celu pracować w tempie 5 gadżetów na godzinę. W idealnej sytuacji więc półprodukty wjeżdżają na taśmę, w środku dzieje się „magia” i na koniec do TIRa pakowane jest 5 gotowych gadżetów na godzinę.
Spójrzmy jednak na to, co dzieje się w środku tej fabryki. Nasz gadżet nie jest składany magicznie – aby spełniać standardy i wymagania klientów musi być złożony w odpowiedniej kolejności kroków. Dla uproszczenia nazwijmy je A, B i C. Każda z tych operacji wymaga specjalistycznego sprzętu, doświadczonych pracowników i naturalnie zajmuje różną długość czasu. Uogólniając jednak można powiedzieć, że łączenie pierwszych częsci zajmuje 12 min, mocowanie drugiej 30 min a dodawanie ostatniej i wypchnięcie do TIRa 15 minut. A więc w ciągu godziny da się wykonać 5 razy krok A, 2 razy krok B i 4 razy krok C.
I teraz pojawia się centralne pytanie i problem: jak szybko będzie pracować fabryka?
Jeśli czytaliście moją ostatnią anegdotę o wycieczce w góry to już wiecie, że mniej niż 5 na godzinę, mniej nawet niż średnia 3 na godzinę.
Załóżmy, że zaczynamy od zera i nie mamy żadnych zapasów (czyli prawie dokończonych gadżetów poukładanych obok stanowiska B lub C).
Po godzinie 1: Stanowisko A: 5, Stanowisko B: 0, Stanowisko C: 0
Po godzinie 2: Stanowisko A: 8, Stanowisko B: 2, Stanowisko C: 0
Po godzinie 3: Stanowisko A: 11, Stanowisko B: 2, Stanowisko C: 2 (wreszcie!)
Ok, mamy 2 produkty na 3 godziny pracy, czyli 1.5 na godzinę. Ale jak to możliwe? Przecież wszystkie maszyny i ludzie pracują na maksymalnych obrotach i średnia z ich pracy to 3 na godzinę? Co tu się stało?
Rozpakujmy ten problem. Po pierwsze zrobiliśmy założenie, że nie mamy jeszcze nigdzie prawie złożonych gadżetów. Ergo, przez pierwszą godzinę pracuje stanowisko A a stanowisko B i C czeka bezczynnie. Po drugie, po godzinie jak już stanowisko A zrobi swoje 5 rzeczy to zabiera się za nie stanowisko B; stanowisko A pracuje już nad kolejnymi, ale stanowisko C ciągle czeka… Stanowisko B po kolejnej godzinie może oddać 2 przedmioty bo tylko taką ma przepustowość, a więc stanowisko C dostaje tylko dwa mimo swojej przepustowości 4 na godzinę (więc pół godziny ludzie stoją tam znudzeni i zamiatają podłogę).
Oczywiście z każdą kolejną godziną ta średnia się poprawi, ale nigdy nie przekroczy magicznej szybkości wąskiego gardła.
Ale czekajcie, to nie wszystko!
Stanowisko A ciągle pracuje pełną parą, więc tworzy nowe przedmioty nawet wtedy kiedy stanowisko B nie może ich przerobić. W związku z tym tworzą się nadwyżki, które trzeba gdzieś magazynować (a to kosztuje!). Fabryka potrzebuje swoich półproduktów, bo jeśli ich nie dostanie to ich najszybciej pracująca ekipa na stanowisku A nie będzie miała co robić (a przecież to niedopuszczalne, bo obniży efektywność kosztową stanowiska!). Więc dział zakupów kupuje więcej półproduktów obniżając wolne środki firmy – te półprodukty też trzeba gdzieś magazynować. Mamy więc dwa sposoby obniżania rentowności organizacji.
Stanowisko B robi co może, jeśli mieliby jeszcze bardziej przyśpieszyć to obniży się jakość finalnego towaru, a to spowoduje problemy ze sprzedażą i niezadowolenie na rynku. Tymczasem stanowisko C pracuje na półgwizdka. W pierwsze pół godziny zrobią to co przyjdzie z A i później się nudzą. Kolejne miejsce w którym obniża się rentowność – płacimy ludziom za nic nierobienie a kosztowna maszyna stygnie.
Stanowisko B to tytułowe wąskie gardło. Największa zmora zarządzania jakimkolwiek procesem. Każdy proces ma wąskie gardło i, tak jak pisałem wcześniej: cała wycieczka napije się herbaty z prądem dopiero gdy ostatni jej członek dotrze na szczyt, tak tutaj cały system jest w stanie pracować tak szybko jak jej najwolniejszy element.
Najbardziej fascynujący wniosek Goldratta jest taki, że patrząc na cały system produkcji wąskie gardło nie tylko ogranicza szybkość produkcji ale także powiększa koszty całego systemu. Godzina przestoju wąskiego gardła (incydent) powoduje nie tylko zastopowanie etapu C, ale efektywnie brak powstania dwóch gadżetów! A więc obniżenie efektywności całej fabryki. Tymczasem etap A może sobie robić przerwę częściej niż co drugą godzinę, bo ma nadprodukcję, a etap C i tak pracuje na pół gwizdka bo, za mało dostaje do produkcji. A więc godzina przestoju wąskiego gardła jest najdroższe!
Ale co to wszystko znaczy?
Wąskie gardła są wszędzie. Fabryka to tylko wygodny przykład, ale spójrzcie jak wygląda chociażby dostarczanie nowych funkcji w naszych produktach technologicznych. Gdzie tam są wąskie gardła? Gdzie największe opóźnienia?
O ile podczas wycieczek górskich można najwolniejszego członka przestawić na początek, ale nie da się najpierw opublikować aplikacji mobilnej zanim się ją napisze. Można pracować nad jej zakresem, ale pewna logiczna kolejność, tak jak w fabryce, jest wymagana.
Zapewne intuicyjnie wiecie, gdzie te wąskie gardła są: może to etap zbierania wymagań, design, development, QA a może release management. Zawsze jakieś są, to normalne i nieuniknione ze względu na specyfikę i złożoność pracy.
To, co jednak istotne, to fakt że przyśpieszenie całego cyklu produkcyjnego jest możliwe TYLKO wtedy, gdy wąskie gardło przyśpieszy. Jeśli nie bedziesz nad tym pracować to wygenerujesz dużo nadwyżek (niewykorzystanych designów, zdezaktualizowanego kodu, niespójnych wymagań) i straty czasu całego zespołu.
Prawdopodobnie „najdroższymi” osobami w Twoim zespole są programiści. Wydajemy duże pieniądze, aby przyciągnąć do siebie najlepszych, bo wierzymy, że ich ekspertyza pomoże nam szybciej tworzyć nowe funkcje w produkcie, które ostatecznie pozwolą więcej zarobić firmie. Ale może się okazać, że gdzieś w organizacji jest ktoś wielokrotnie „tańszy”, kto nieświadomie wstrzymuje prace całego zespołu. Jeśli tak faktycznie jest to ta budżetowo „tańsza” osoba jest najbardziej kosztochłonną w całej firmie.
Moim zdaniem najważniejsza myśl od Goldratta.
Często najdrożsi są menadżerowie, a nie programiści. Nie zliczę, ile razy widziałem zespoły działające ze skrawkami wiedzy, po czym menadżer budził się po 2-3 tygodniach i doprecyzowywał kompletnie inną funkcjonalność.
Potem organizacja rekrutowała dodatkowych programistów, by Ci jeszcze w większej grupie nie czytali w myślach managerowi. I tak to się kręci ;)