Subway – proces doskonały?
Byliście kiedyś w Subway'u? Restauracji z kanapkami?
Idea jest prosta. Podchodzisz do lady i przesuwasz się wzdłuż niej razem z kanapką. Wybierasz pieczywo, mięso, ser, sałatki i sos. Na końcu czeka na Ciebie kasa. Zazwyczaj przez całą produkcję przechodzi z tobą jedna osoba z obsługi. W godzinach lunch'u to się trochę zmienia. Duża ilość klientów wymaga większej ilość pracowników i poprawienia przepustowości. Jak? Praca na taśmie (pipeline). Każda osoba z obsługi staje się odpowiedzialna za jeden krok - pieczywo, mięso, ser, itd. To niesamowite jak szybko te kanapki powstają w trakcie lunchu. Proces praktycznie doskonały.
Skoro w IT też możemy wyróżnic kolejne kroki projektu, to dlaczego nie idzie to tak gładko jak z kanapkami?
- kroki są tylko teoretycznie powtarzalne. Możemy 10 razy napisać HelloWorld i stwierdzić, że krok jest powtarzalny. Ale normalnie z kodem tak nie jest, każdy kod jest troche inny.
- wymagania klientów nie są powtarzalne, a co gorsza nie są stabilne. Wyobraźcie sobie, że w Subway'u przy kasie zmieniacie decyzję odnośnie pieczywa. Efekt? Albo dostajemy rozbebraną kanapkę (po prostu przerzucą nam środek to nowej bułki) albo zaczynamy proces od nowa.
- inne wymagania, inny kod, to implikuje inne testowanie, a więc inne scenariusze testowe, inne przebiegi testów.
Szeregi wypracowanych metodologii, procesów, technik mogą pomóc w ogarnięciu sytuacji. Jednak nie należy oczekiwać, że będzie idealnie i bez potknięć. Czasami trzeba wykazać się odrobiną zwinności i sprytu, nie należy też na ślepo podąrzać wyznaczonymi ścieżkami. Common sense.
Słuszne spostrzeżenie.