Lean from the Trenches

Lean from the Trenches – Managing Large-Scale Projects with Kanban
Henrik Kniberg
The Pragmatic Programmers LLC, 2011

5

To co, kolejny zestaw pochwał dla Henrika Kniberga? Jakżeby inaczej. Szwed doskonale zagospodarował przestrzeń w kategorii “agile w praktyce”, stawiając we wszystkich ze swoich dotychczasowych książek na przekazywanie wiedzy stricte praktycznej, pokazywanie jak przekuwał w praktykę kulturę agile oraz teoretyczne zasady zwinnego sposobu prowadzenia projektów związanych z wytwarzaniem oprogramowania. Dużą zaletą jego książek jest też zawsze prosty język, którymi są napisane. Może to być o tyle istotne, że pozycje te nie są dostępne w polskiej wersji językowej, stąd świetnie, że nie trzeba wieloletniej praktyki w języku angielskim ani notorycznego zaglądania do słownika, aby móc z pełnym zrozumieniem je przeczytać.

Lean from the Trenches można traktować jako nieco młodszą siostrę znakomitego “Scrum and XP from the Trenches”. Tym razem poznajemy “od kuchni” historię projektu prowadzonego przede wszystkim – jak głosi już subtytuł – w oparciu o Kanbana i Lean Programming, choć oczywiście i Scrum jest tam obecny. Całość ma niewiele ponad 150 stron, więc można przeczytać ją w jeden wieczór.

To opowieść o projekcie, całkowicie skupiona na jego praktycznym aspekcie. Projekcie o tyle ciekawym, że państwowym. Jak to jest z tego typu projektami IT w Polsce, wszyscy doskonale wiemy. Skojarzenia też mamy jednoznaczne i bynajmniej nie myślimy o projektach, które należałoby traktować jako wzór. Okazuje się, że w Szwecji jest niewiele lepiej… Poznajemy zatem historię produktu PUST, stanowiącego część planu informatyzacji szwedzkiej policji, mającej na celu ułatwić życie policjantom, wyeliminować zbędną papierologię i polepszyć przepływ informacji, szczególnie dla funkcjonariuszy poruszających się “w terenie”. O zwiększeniu efektywności pracy funkcjonariuszy chyba nie musimy głośno mówić.

To, o czym Kniberg w tej książce nie wspomina wprost, to fakt, że próbowano stworzyć podobne oprogramowanie wcześniej, bazując oczywiście na modelu kaskadowym, co spowodowało siedmioletnie oczekiwanie na wdrożenie systemu! Ktoś postanowił coś zmienić i pojawił się pomysł na poprowadzenie projektu, nową, zwinną ścieżką. Prace deweloperskie tym tokiem ruszyły w roku 2009 siłami niespełna dziesięciu deweloperów, a w kwartale IV nad aplikacją pracowały już 64 osoby. Kniberg był włączony w projekt na czas około sześciu miesięcy (grudzień 2010-czerwiec 2011) jako coach współpracujący z zespołem dwa, trzy dni w tygodniu. Tego okresu zatem tyczy się opowiadana historia. Okresu zakończonego sukcesem, bowiem aplikacja została wdrożona a projekt, zajął nawet drugie miejsce w szwedzkim konkursie “CIO Awards Project of The Year”. Chociaż czy na pewno sukcesem? Ale o tym na koniec.

Bez teoretyzowania, złotych rozwiązań czy wartościowania poszczególnych technik, Kniberg po prostu opisuje jak została zorganizowana praca, co, w jaki sposób i dlaczego zostało zrobione. Jak krok po kroku udoskonalono proces, jakie były główne problemy i jak sobie z nimi radzono. Od podziału na zespoły i ich strukturę, zorganizowanie ich pracy, koordynację spotkań (słynne w agile’owym świecie “Daily Coctail Party”) i przepływu wiedzy poprzez niezwykle rozbudowaną tablicę Kanbanową i zasady wizualizacji procesu i projektu, aż do zasad mierzenia skuteczności procesu czy nieustannego udoskonalania. Szczególnie ciekawym fragmentem są informacje o przewrocie mentalnym w postaci przejścia na pracę przyrostową, z częstym wdrażaniem i pozyskiwaniem informacji zwrotnej od przyszłych, rzeczywistych użytkowników systemu. Nie brak i co nieco technicznego mięsa, technikaliów – jak radzić sobie z technicznymi wymaganiami, jak z błędami. Jest też cały rozdział o pracy z systemem kontroli wersji. Charakterystyczne, że te techniczne rozdziały są w tej chwili, pięć lat od premiery, najbardziej przestarzałe (chociażby ze względu na używanego jako system kontroli wersji SVNa).

W książce znajdziemy całą masę zdjęć, pozwalających poczuć jak to wszystko wyglądało to naprawdę, a jednocześnie na tyle małych/niewyraźnych, że nie można z nich wyczytać żadnych tajnych szczegółów (Ci, którzy znają szwedzki – poprawcie mnie, jeśli się mylę).

W rozdziale z wnioskami, Kniberg przywołuje hasła wielokroć wałkowane przez wszelkich agile’owców: znaj swój cel, eksperymentuj, bądź gotowy na porażki i wyciąganie z nich wniosków, rozwiązuj rzeczywiste problemy. Są i dwa aspekty związane z “transformacją agile” – promuj zwolenników zmiany (“change agents”) i od początku włączaj we wszystko ludzi, dbając o dobrą komunikację. Ta książka to po prostu kolejny przykład tego jak te wszystkie zasady wdrożyć w życie.

Wydzielono także osobną część, gdzie Kniberg w charakterystyczny dla siebie sposób, w telegraficznym skrócie przedstawia zasady Scruma, Kanbana, Lean czy Agile. Jest też i ciekawy rozdział przypominający, że wszelka praca agile mija się z celem, jeśli zespół nie ma automatycznych testów. Co ważne, prócz tej konstatacji, Kniberg pokazuje jak w szybki sposób zacząć takie testy tworzyć. Ciekawy jest też rozdział o technice “Przyczyna-Skutek” (“Cause-Effects Diagrams”), z powodzeniem wykorzystywanej przez Kniberga do rozwiązywania różnego rodzaju problemów procesowych czy organizacyjnych.

Nic, tylko przeczytać, przyklasnąć, przemyśleć i być może wcielić pewne idee w życie w swojej organizacji. Dobry humor może nam zepsuć tylko wiedza o tym, że już po odejściu Kniberga ruszyła druga odsłona projektu stanowiącego bazę tej książki – PUST Siebel poprowadzona – jakżeby inaczej – w klasycznym „waterfallu”. Zakończyło się to totalną katastrofą – efekty nie ujrzały światła dziennego, za to wiedza o utopionych w projekcie horrendalnych kosztach (według niektórych źródeł sam dewelopment pochłonął 20 milionów euro) rozniosła się po Szwecji dość szerokim echem.

Konstatacja zatem smutna. Czytamy historię drogi do sukcesu, który jednak kompletnie nie zmienił mentalności, zmiana, jej efekty nie zakorzeniły się wśród ludzi zarządzających. Gorzka wiedza, dająca sporo do myślenia już po zakończonej lekturze.