Przeciążenie: gdy formalności jest zbyt wiele
Trzeci rodzaj niepowodzenia w agile theatre: nadmierna formalność. „Podatek od spotkań”, koszt zmiany kontekstu, który znacznie przewyższa te piętnaście minut, oraz obciążenie związane z rytmem pracy, które niweczy efekty krótkich sprintów — oraz sposoby na znalezienie odpowiedniej równowagi.
Koszt uroczystości nie ogranicza się do piętnastu minut zapisanych w kalendarzu. To piętnaście minut plus dwadzieścia minut, które poświęca się na wyciszenie się przed nią, oraz dwadzieścia minut na powrót do normalnego trybu po jej zakończeniu, pomnożone przez liczbę wszystkich obecnych w sali.
Przeciążenie to tryb niepowodzenia, który kryje się na widoku, ponieważ każda z tych czynności z osobna wydaje się nieistotna. Kwadransowe spotkanie stand-upowe, godzina planowania, godzina retrospektywy — kto mógłby mieć coś przeciwko? Problem polega na tym, że nie pojawiają się one pojedynczo. Następują one jedna po drugiej, w rytmicznym tempie, nakładając się na dzień pracy, w którym prawdziwą, głęboką pracę trzeba wcisnąć w luki. W przeciwieństwie do pozostałych trzech trybów, przeciążenie nie polega na przejętej lub pozbawionej treści ceremonii — nawet doskonale przeprowadzona ceremonia może okazać się jedną za dużo. Jest to jedyny tryb, który diagnozuje się za pomocą arytmetyki.
Podatek od spotkań, naliczany uczciwie
Proszę więc to policzyć — cały stos, a nie tylko codzienne zadania. Dwutygodniowy sprint zazwyczaj obejmuje od dwóch do czterech godzin planowania sprintu, godzinę lub dwie na przegląd, godzinę lub dwie na retrospektywę, jedną lub dwie sesje dopracowywania oraz piętnastominutowe codzienne spotkanie stand-up, co łącznie daje kolejne dwie i pół godziny w ciągu dziesięciu dni. Zsumujcie to, a otrzymacie prawie cały dzień roboczy na jednego programistę w każdym sprincie, zanim napisano by choćby jedną linię kodu — a praktycy obliczają to w osobogodzinach, ponieważ właśnie w tej jednostce mierzy to kierownictwo: piętnaście minut spotkania stand-up w dwunastoosobowym zespole to nie piętnaście minut, to trzy godziny robocze, każdego dnia, stracone. Następnie dodajmy część, której kalendarz nigdy nie pokazuje — czas na wyciszenie się przed każdą z tych przerw i ponowne wkręcenie się po nich — a jedna piąta tygodnia pracy to ostrożne oszacowanie, które dokładnie odpowiada nakładom, o których nieustannie informują praktycy.
Nie oznacza to automatycznie, że jest to złe — koordynacja ma rzeczywistą wartość, a trzy dobrze wykorzystane godziny pracy mogą przynieść znacznie większe oszczędności na dalszych etapach. Jest to jednak opłata, a uczciwe pytanie dotyczące każdej opłaty brzmi: co się w zamian za nią otrzymuje. Zespół, który nie jest w stanie wskazać podjętej decyzji, unikniętej kolizji lub usuniętej przeszkody w wyniku przeprowadzenia ceremonii, ponosi ten koszt na próżno. Nakłady te można uzasadnić jedynie wtedy, gdy zwrot z nich jest wymierny.
To właśnie zmiana kontekstu stanowi prawdziwy koszt
Kalendarz ten nie uwzględnia jednak w pełni kosztów, ponieważ samo spotkanie stanowi najtańszą część. Najdroższą częścią jest zmiana kontekstu po obu stronach. Programista głęboko pochłonięty rozwiązaniem problemu nie „teleportuje się” na spotkanie stand-upowe i z powrotem — musi się z niego wyrwać, traci zbudowany model mentalny i po spotkaniu poświęca pierwszy okres na jego odtworzenie. Praktycy opisują poranne spotkanie stand-up jako narzędzie służące do „rozpalenia” początku dnia: praca tak naprawdę nie zaczyna się, dopóki spotkanie się nie zakończy, więc cała godzina poprzedzająca spotkanie jest traktowana jako stracona. Piętnaście minut to cena katalogowa; zmiana kontekstu to rzeczywisty koszt.
Właśnie dlatego moment, w którym odbywa się spotkanie, ma równie duże znaczenie jak jego czas trwania. Spotkanie typu „stand-up” w połowie poranka dwukrotnie przerywa pracę twórcy; to samo spotkanie w naturalnym momencie zajmuje znacznie mniej czasu. Jest to najsilniejszy argument przemawiający za całkowitym odejściem od synchronicznego zegara w zakresie przekazywania informacji o statusie: jeśli prawdziwym zadaniem codziennego spotkania jest przedstawienie statusu, który narzędzia już posiadają, to asynchroniczne spotkanie eliminuje przerwę bez utraty informacji, a krótka synchronizacja na żywo kilka razy w tygodniu pozwala zachować koordynację między ludźmi, której nie jest w stanie zapewnić wątek asynchroniczny. W naszym rozdziale „Jak prowadzić codzienne spotkanie stand-up” omówiono sposoby ochrony czasu twórczego niezależnie od wybranego przez Państwa rytmu spotkań.
Obciążenie związane z częstotliwością kroków: pułapka krótkich sprintów
Do tego dochodzi czynnik, którego nikt nie uwzględnia: długość sprintu. Każda ceremonia odbywająca się „raz na sprint” ma miejsce dwa razy częściej w przypadku sprintu tygodniowego niż dwutygodniowego. Skrócenie sprintu o połowę powoduje podwojenie liczby sesji planowania, przeglądów i retrospekcji — jednak nie zmniejsza to o połowę ilości pracy wykonywanej pomiędzy nimi, w związku z czym stosunek czasu poświęcanego na ceremonie do czasu poświęcanego na pracę gwałtownie wzrasta. Zespoły realizujące tygodniowe sprinty opisują to bez ogródek jako niekorzystne: planowanie i retrospektywa co tydzień, przy czym refleksja często okazuje się bezowocna, ponieważ tydzień to zbyt krótki okres, by nauczyć się czegoś nowego.
Rozwiązaniem jest zaprzestanie traktowania rytmu pracy jako jednego, jednolitego parametru. Długość sprintu, częstotliwość spotkań w pozycji stojącej oraz częstotliwość retrospekcji nie muszą zmieniać się jednocześnie. Zespół, który uważa cotygodniowe retrospektywy za pozbawione sensu, może przeprowadzać je co dwa lub trzy sprinty i nic przez to nie straci — refleksja ma swój naturalny rytm, a wymuszanie jej tempa szybszego niż tempo, w jakim zespół gromadzi wnioski, prowadzi jedynie do retrospektywy wykonywanej dla samego odhaczenia, opisanej w rozdziale Wydajność. Należy dostosować każdą ceremonię do odstępu czasu, w którym faktycznie przynosi ona konkretne rezultaty.
Gdy tryb „Overload” nakłada się na pozostałe tryby
Przeciążenie rzadko występuje samodzielnie. Martin Fowler w swojej publikacji „Flaccid Scrum” opisuje sytuację, w której zespół realizuje wszystkie rytuały, pomijając jednak leżącą u ich podstaw dyscyplinę inżynierską — w ten sposób ponosi pełne koszty związane ze spotkaniami, nie czerpiąc przy tym żadnych korzyści w zakresie realizacji, ponieważ wąskim gardłem nigdy nie była koordynacja. Natomiast „water-scrum-fall”, wzorzec nazwany przez Dave’a Westa z firmy Forrester, stanowi nasilenie przeciążenia Power: plan, którego zakres, czas i koszt są ustalane z góry, a następnie opakowany w sprinty — w ten sposób zespół ponosi zarówno obciążenie związane z rytuałami metodyki agile, jak i sztywność modelu kaskadowego, łącząc w ten sposób najgorsze cechy obu podejść.
Warto również poważnie potraktować argument przeciwny, ponieważ jest on powszechny i w połowie słuszny. Praktycy chętnie podkreślają, że wiele elitarnych organizacji inżynieryjnych ledwo stosuje zestaw rytuałów — inżynierowie kierują projektami, zespoły wybierają własną metodę, a ciągłe dostarczanie zapewnia szybszą informację zwrotną niż jakiekolwiek cotygodniowe spotkanie. Należy jednak ostrożnie podchodzić do tej obserwacji: stwierdzenie „zasady nas nie dotyczą” nie stanowi strategii, a duży, rozproszony zespół rzeczywiście wymaga większej synchronizacji niż mały zespół pracujący w tej samej lokalizacji. Prawdziwą lekcją nie jest pomijanie ceremonii — chodzi o dostosowanie ceremonii do rzeczywistych potrzeb koordynacyjnych pracy, które w przypadku niektórych zespołów są znacznie mniejsze niż zakłada standardowy podręcznik, a w przypadku innych odpowiadają dokładnie standardowemu zakresowi. Przeciążenie pojawia się wtedy, gdy kopiuje się podręcznik zamiast dostosować go do rzeczywistych potrzeb. Ostatni tryb, brak konsekwencji, ma miejsce wtedy, gdy nawet ceremonie o odpowiedniej skali nie przynoszą żadnych zmian.
Najczęściej zadawane pytania
Ile spotkań w metodologii Scrum to już za dużo?
Nie ma ustalonej wartości — kryterium to stosunek i zwrot z inwestycji. Proszę zsumować czas poświęcany na cykliczne spotkania jako procent tygodnia pracy zespołu; jeśli przekracza on 20%, a zespół nie jest w stanie wskazać, co dzięki temu uległo zmianie, oznacza to, że są Państwo przeciążeni. Spotkanie zasługuje na swoje miejsce w harmonogramie, jeśli prowadzi do podjęcia decyzji lub koordynacji działań, które są rzeczywiście niezbędne dla pracy, a nie tylko dlatego, że znajduje się na standardowej liście.
Czy tygodniowe sprinty to zbyt krótki okres na przeprowadzenie wszystkich ceremonii?
Często tak. Planowanie i cotygodniowa retrospektywa powodują, że stosunek czasu poświęcanego na formalności do czasu pracy gwałtownie rośnie, a dojrzałe zespoły często nie znajdują nic nowego, nad czym mogłyby tak szybko się zastanowić. Należy odpowiednio dostosować częstotliwość: jeśli cotygodniowa retrospektywa okazuje się mało owocna, retrospektywę warto przeprowadzać co dwa lub trzy sprinty, a omówienie stanu prac przenieść do trybu asynchronicznego, tak aby codzienne spotkanie nie pochłaniało całego poranka.
Dlaczego wydaje się, że wielkie firmy technologiczne pomijają ceremonie scrumowe?
Wiele elitarnych zespołów rzeczywiście działa w sposób bardziej elastyczny: inżynierowie kierują projektami, zespoły same wybierają metodologię, a CI/CD wraz z flagami funkcji zapewniają szybszą informację zwrotną niż mogłoby to zapewnić cotygodniowe spotkanie. Jednak wniosek nie polega na tym, że zasady nas nie dotyczą — chodzi o to, by dostosować formę spotkania do rzeczywistych potrzeb w zakresie koordynacji. Niewielki zespół pracujący w tej samej lokalizacji wymaga mniejszego stopnia synchronizacji niż duży zespół rozproszony, a ślepe naśladowanie którejkolwiek z tych skrajności jest samo w sobie błędem.
Jak zmniejszyć nakłady związane ze spotkaniami w metodologii agile bez utraty koordynacji?
Proszę poddać każdą cykliczną procedurę analizie, zadając sobie jedno pytanie: do jakiej decyzji lub jakiej koordynacji prowadzi ta procedura? Proszę zlikwidować lub połączyć te, na które nie ma odpowiedzi, przenieść sprawozdania dotyczące statusu do narzędzi, w których są one już gromadzone, a pozostałe spotkania ograniczyć do najmniejszej grupy osób, które faktycznie muszą w nich uczestniczyć. Celem jest poświęcanie mniej czasu na koordynację, a więcej na wykonywanie pracy.
Warto przeczytać
- Spektakl: ceremonia, którą organizuje się dla publiczności — ceremonia, której utrzymanie nie wiąże się z dużymi kosztami, ponieważ nikt niczego od niej nie oczekuje.
- Brak kontynuacji — kiedy nawet odpowiednio zorganizowana uroczystość niczego nie zmienia.
- Spotkania asynchroniczne i zdalne — uniezależnienie statusu od zegara synchronicznego.
- Spotkanie dotyczące planowania sprintu — planowanie przeprowadzone na tyle sprawnie, by w pełni wykorzystać przeznaczoną na nie godzinę.
- Ceremonie agile: kompletny przewodnik — do czego służy każda z nich, dzięki czemu będą Państwo mogli określić, które z nich są faktycznie niezbędne w danej pracy.
- Słownik terminów agile Theatre — definicje czterech określonych rodzajów niepowodzeń.