Scrum is dead. Long live the Agile.
Muszę się do czegoś przyznać. Mianowicie, ja lubię Agile. Zwinne techniki wytwarzania oprogramowania. Nie ma nic lepszego, i nic lepszego pewnie długo nie wymyślimy. Ale też, jak mówię Agile, to nie mylić ze Scrumem. A zdarzyło się nawet, że jestem certyfikowanym Product Ownerem (tak, mam PSPO I). Także, coś tam wiem, ale pewnie nadał mało.
Scrum w swoich założeniach nie był zły. Ciężko w ogóle o frameworkach do zarządzania projektami mówić w kategoriach dobry/zły. Natomiast to, co się w branży wydarzyło przez ostatnie lata spowodowało, że Scrum-em gardzą programiści i zaczynają też ci szkoleni od transformacji. To już stara historia, teraz mamy przecież SAFe, i ten też się "dobrze" sprzedaje. Bo enterprise upatrywał (upatruje?) w tym szansy na zwiększenie wydajności.
To jest w ogóle kluczowe, na moje proste rozumienie to jest punkt sprzedażowy dowolnego frameworka z rodziny Agile: zwiększenie wydajności. Zadzieje się jakaś magia, tu dodamy procesik, tu odejmiemy procesik i boom! programiści dowiozą 20% więcej. Jedyna uwaga to to, że to tak nie działa...
Wróćmy do wątku pogardy. Jest cała grupa programistów - i na moje oko, jest całkiem silna, dla której Scrum to zło ostateczne. I jakby popatrzeć trochę szerzej, to nie ma się czemu dziwić.
Pomylenie estymat z deklaracją, czy robienie z daily - status meetingu, to tylko wierzchołek góry lodowej. Scrum z pewnej perspektywy stał się narzędziem kontroli i wyznawaną religią (te jak wiemy, mają element kontroli wbudowany) - a jak tylko nie godzisz się, nie chcesz w tej wierze partycypować, to Cię wykluczą. Cancel cultre normalnie :)
Jak się człowiek poważniej zaczyna uczyć o Scrumie, i spojrzy poza rytuały, to dochodzi się do wartości:
- courage (odwaga)
- focus (skupienie)
- commitment (zaangażowanie)
- respect (szacunek)
- openness (otwartość)
Tu się wszystko zaczyna i wszystko kończy. I wszyscy mają za uszami. Devi devom zgotowali ten los. PMi PMom. Te wartości to jest jak fundament. Bez fundamentu nie da się budować. To jest technicznie się da - ale dom się zawali - jakby był z kart. Prędzej, czy później, ale erozja postępuje.
No moje główną przyczyną tego stanu rzeczy (to jest tego, że te wartości można sobie schować równie dobrze do pudełka) jest brak równowagi sił. W wielu firmach struktura jest nadal hierarchiczna - jeśli nie na papierze, to i tak umownie. W związku z tym dowolny menadżer jest "wyżej" od normalnego deva. Czy tam przypniemy "Product Owner", czy "Scrum Master" - nie ma znaczenia. My kochamy struktury, struktury społeczne są wpisane w naszą naturę homo sapiens.
A jak tylko pojawia się struktura, pojawia się nadużycie. Taki tam "PM" z przypiętym "PO", w grze o status jest w stanie zrobić dużo krzywdy. Krzywdy, która nijak nie jest oparta ani na szacunku, ani na otwartości. Jak ktoś knuje jak zostać Vice President of (tu wstaw cokolwiek) to się tym z teamem raczej nie podzieli. A zespół wtedy traktowany jest instrumentalnie. Swoją drogą ciekawe co by się stało gdyby się podzielił? Pewnie by go odsunęli bo "nie jest teamplayerem". Szczerość w korporacji? Samobójstwo.
Ale może można tak? "Ej, chłopaki, bo ja marzę o Vice President of CośTam, ten projekt jest dla mnie osobiście ważny, pomożecie? Mogę mieć przez to blindspoty i pchać rzeczy na siłę, bo wiecie, silne emocje, zatem zwrócie na to uwagę i jak przesadzam to kopnijcie mnie w tyłek." To jest zaufanie, masz takie?
Programiści? Bez skazy? Proszę Cię! Jajko, czy kura? Dowiozłem moje zadania w sprincie - jak się przyznam to dadzą mi więcej -> to przemilczę i będę "kontrolował" proces. W międzyczasie pogram sobie w Counter Strike. Wartości? A co to takiego? Takie mechaniki gry - nie są trudne, można je rozgrywać tak, że nawet doświadczony kolega z branży (również programista) się nie skapnie. Już pominę, że w wielu kręgach jest ciche przyzwolenie na takie rzeczy. Ba! To przyzwolenie często rozciąga się na cały zespół, włączając to Scram Mastera.
Więc często, gęsto to jest taki nieustanny wyścig zbrojeń, między tymi co płacą, i między tymi, którzy wykonują prace. Dziecinada taka. A Scrum? Scrum nie ma tu wiele do rzeczy, ale mu się dostało, bo był pod ręką.
Scrum is dead. I już dawno za punktem, w którym można to uratować. Story pointy i velocity stały się narzędziem kontroli. A commitment na dowiezienie traktuje się zbyt serio. Programiści się bronią: napompowane estymaty (poker też można ograć grupowo, wystarczy się zgadać przy piwie), i nieoczekiwane blockery... A spróbuj być tym devem, który chciałby "dobrze" i po ludzku, zobaczysz jak szybko presja grupy Cię złamie.
Scrum miał to rozwiązać przez transparency i trust. Ale jak nie ma zaufania - to, co na wierzchu staje się narzędziem kontroli.
Tak się nie robi rzeczy razem. I być może romantyzuję teraz, ale jak ja sobie zaczynałem karierę, to zbierała się grupa świrów, która chciała coś zrobić razem i najzwyczajniej w świecie to robiła. Projekt prowadzili na kartce papieru, zadania definiowali ad-hoc, mieli szybki feedback loop (przecież klikali to, co stworzyli - teraz odsyła się do QA...), i dostarczali. Tak o, po prostu. I jak było to daleko od Agile w sensie formalnym, tak było to Agile w najczystszej postaci.
I to jest jedyna możliwa odpowiedź, na to, co się dzieje. Nic innego nie wymyśliłem. Małe autonomiczne zespoły, w nieważne jak dużej jednostce. Płaskie w strukturze, z masą zaufania. I z zupełnie innym systemem wynagrodzeń. Tak, wynagrodzenia też są problemem. Jak płacisz wszystkim tyle samo niezależnie od wkładu - zespół dostosuje output do najsłabszego ogniwa. Jak płacisz za velocity - dostajesz velocity gaming. Lose-lose.
I nawet największy programistyczny koks, który wiedzą mógłby obdarzyć 20 osób, się podda prędzej czy później. Bo po co walczyć z wiatrakami?