DSM (ang. Daily Scrum Meeting), jedno z pięciu wydarzeń opisanych w Scrum Guide. Wielokrotnie powtarzaliśmy, że najważniejsza jest Retrospektywa, ale czy bez Daily Scrum Meeting damy radę skutecznie i wydajnie pracować w Scrumie?
Czym jest Daily Scrum?
Na łamach naszego bloga pisaliśmy już między innymi czym są: Sprint, Przegląd Sprintu oraz Retrospektywa Sprintu. Dziś skupimy się na Daily Scrumie, które w polskim przekładzie Przewodnika po Scrum zwane jest Codziennym Scrumem. I jest to dobre tłumaczenie, ponieważ spotkanie to faktycznie odbywa się codziennie. A przynajmniej tak powinno być.
Ponieważ zwykle Daily Scrum odbywa się na stojąco, czasami bywa nazywany stand-upem.
Jak każde scrumowe spotkanie ma ono ściśle ustalony maksymalny czas trwania (ang. timebox). W przypadku Daily Scrum powinno ono trwać nie więcej niż 15 minut, niezależnie od długości Sprintu. Czy to dużo? Dość powiedzieć, że w doświadczonych zespołach Daily trwają zaledwie parę minut.
Daily Scrum ma być spotkaniem planistycznym, na którym szybko wymieniamy informacje o tym co zrobiliśmy wczoraj, co będziemy robić dziś i czy mamy jakieś problemy. Te ostatnie wszyscy lubimy nazywać „wyzwaniami”.
Tu pojawia się duże pole do popisu dla Scrum Mastera. Szczególnie młode zespoły zwinne mają tendencje do przeciągania tego spotkania, poruszania na nim zbyt wielu tematów czy zbyt szczegółowego opowiadania o podjętych działaniach.
Celem Daily Scrum jest zaplanowanie kolejnego dnia pracy. Nic więcej, nic mniej. Jeśli pojawia się potrzeba uszczegółowienia jakiegoś tematu, poświęcenia mu więcej niż przysłowiowe 2 minuty to zróbmy to, ale po Daily Scrum Meeting. Nie każdy musi być potencjalnie zainteresowany rozwiązaniem problemu z repozytorium czy sposobem, w jaki napiszemy test jednostkowy.
Po co ten stand-up?
Na początku sam zadawałem sobie te pytanie. Po co mamy codziennie opowiadać o tym, co będziemy robić? I faktycznie, jeśli będziemy podchodzili do tego spotkania na zasadzie:
„pójdę, powiem co mówię zwykle, i tak nikogo to nie obchodzi”
to nic z tego nie będzie.
Trzeba na własne oczy zobaczyć wielką moc tego spotkania. Sprawnie przeprowadzony Daily Scrum Meeting zaowocuje planem działania na następne 24 godziny, choć faktycznie planujemy najbliższy dzień pracy.
Poprzez aktywne słuchanie, wszyscy członkowie zespołu będą mieli możliwość dostosowania swoich planów na dzień do tego, co zostało ukończone. Bo nie ma sensu zabierać się za coś, co nie jest jeszcze gotowe, żeby wpadło w nasze ręce.
Daily Scrum Meeting ma jeszcze jedną zaletę. Wszyscy wiemy, gdzie dokładnie znajdujemy się w kontekście prac poruszonych na spotkaniu Sprint Planning. Mamy wiedzę, o tym czy musimy „przycisnąć”, czy też możemy pracować w jednolitym tempie.
Żeby to osiągnąć wystarczy najzwyczajniej w świecie przyłożyć się i przygotować przed spotkaniem. Powinno to polegać na podsumowaniu tego co zrobiłem wczoraj i tego, co planuję zrobić dziś. A wszystko po to, aby w kwadrans przekazać niezbędne całemu Zespołowi Deweloperskiemu informacje.
Działając w Scrum chcemy być zwinni. To znaczy, że na wszystkie zmiany i wyzwania odpowiadamy na bieżąco. A to z kolei sugeruje, że nasze plany rzadko kiedy wytrzymają dłużej niż jeden dzień. Codziennie odkrywamy nowe szczegóły naszych zadań i dlatego codziennie musimy zaplanować kolejny dzień pracy.

Idealna pora na Daily Scrum
Pytanie wydaje się być trywialne, a odpowiedź – oczywista. Róbmy stand-up rano, zaraz po tym jak wszyscy przyjdą do pracy i zanim jeszcze zalogujemy się do swoich komputerów. Gdyby wszystko było takie proste…
Na pewno Daily Scrum Meeting, zgodnie z Przewodnikiem, powinien odbywać się każdego dnia Sprintu, w tym samym miejscu i o tym samym czasie. Pomaga to uniknąć pytań „o której dziś daily?” albo wręcz „czy mamy dziś stand-up?”.
W przypadku, gdy pracujemy w międzynarodowym projekcie, a nasze zespoły rozsiane są po całym świecie, powinniśmy ustalić jedną godzinę pasującą wszystkim zainteresowanym. Zapewne nie będzie to godzina 9:00 czasu lokalnego.
Natomiast jeśli nie mamy ściśle ustalonej godziny rozpoczęcia pracy, dostosujemy godzinę rozpoczęcia Daily Scrum Meeting do czasu przyjścia do pracy osoby, która dojeżdża do niej najpóźniej.
Jest jeszcze jedna istotna rzecz, którą należy wziąć pod uwagę. Przy okazji tekstów o CI i CD wspominałem o narzędziach wspierających zwinne podejście i budowanie aplikacji.
Jeśli nowa wersja aplikacji budowana jest np. o 10:15, zastanówmy się czy jest sens spotykać się przed ta godziną. Spotkanie oderwie programistę od pracy, co z kolei spowodować może, że nie zatwierdzi on swoich zmian do centralnego repozytorium. W tym przypadku, spotkanie o godzinie 10:15, kiedy to środowiska i tak są nieczynne, będzie idealnym wręcz rozwiązaniem.
Procedura Daily Scrum
Uczestnikami Codziennego Scruma są członkowie Zespołu Deweloperskiego. Koniec i kropka. Nikt poza nimi nie powinien brać udziału w tym spotkaniu, włączając w to Scrum Mastera, Product Ownera czy interesariuszy.
Nie ma przeciwwskazań, żeby się mu przysłuchiwali, ale ważne jest, żeby nie przeszkadzali. Nie oni są przecież odbiorcami informacji przekazywanych podczas Daily Scrum Meeting, ani nie oni mają skin in the game, jeżeli chodzi o Sprint Backlog.
Jeżeli sama obecność prezesa firmy na stand-upie powoduje zanikanie transparentności, to jak najbardziej przeszkadza on w sprawnym przeprowadzeniu Daily. Scrum Master powinien wziąć głęboki oddech i wyprosić takiego szkodnika ze spotkania.
Sposób przeprowadzania Daily Scrum Meeting nie został sztywno określony i jest dowolny, o ile pozwala na osiągnięcie zakładanych celów. Nie ma znaczenia, czy będziemy stać przy tablicy, projektorze, czy może będziemy sobie opowiadać o wymaganiach znajdujących się w Backlogu Sprintu.
Ważne jest, abyśmy wszyscy dokładnie wiedzieli, o którym wymaganiu mówi w chwili obecnej nasza koleżanka czy kolega z zespołu. W jaki sposób to osiągniemy to zależy już od samoorganizującego się Zespołu Deweloperskiego. To on, tak jak w przypadku innych spotkań odpowiedzialny jest za jego przeprowadzenie.
Nikt, włącznie ze Scrum Masterem, nie powinien mieszać się w to w jaki sposób spotkanie się odbywa. Jedynym sygnałem do intwerwencji SM-a jest moment, w którym przestaje ono spełniać postawiony przed nim cel. Albo sytuacja, w której w ogóle Daily Scrum Meeting się nie odbywa.
Słynne trzy pytania…
Przed wprowadzeniem zmian do Scrum Guide w listopadzie 2017 roku istniał wymóg odpowiedzi na poniższe pytania:
Co zrobiłem wczoraj, co pomogło Zespołowi Deweloperskiemu przybliżyć się do osiągnięcia Celu Sprintu?
Co zrobię dzisiaj, co pomoże Zespołowi Deweloperskiemu przybliżyć się do osiągnięcia Celu Sprintu?
Czy widzę jakiekolwiek przeszkody mogące uniemożliwić mi lub Zespołowi Deweloperskiemu osiągnięcie Celu Sprintu? – Scrum Guide
Jednak mówimy o metodykach zwinnych. Nie ukrywajmy, powyższe pytania na zwinne nie wyglądają.
W zaktualizowanym Scrum Guide dodano zapis o tym, że pytania te są sugestią, a nie wymogiem. W dalszym ciągu powinniśmy osiągnąć nasz cel – zaplanować najbliższy dzień pracy. Nie ma jednak wskazanej metody, w jaki sposób mamy go osiągnąć.
Czy Daily Scrum jest najważniejszy?
„Codzienne Scrumy poprawiają komunikację, eliminują inne spotkania, identyfikują i usuwają przeszkody, sprzyjają szybkiemu podejmowaniu decyzji i podnoszą poziom wiedzy Zespołu Deweloperskiego. Jest to spotkanie kluczowe dla procesu inspekcji i adaptacji.” – Scrum Guide
W pełni zgadzam się z powyższym cytatem. Jeśli dobrze podejdziemy do tematu i skupimy się na celu Daily Scrum, a nie na tym, żeby mieć je z głowy, to osiągniemy dokładnie to, co przyświecało twórcom Scruma.
Nie jesteśmy jednak w stanie jednoznacznie stwierdzić, które scrumowe spotkanie jest najważniejsze.
Dla mnie, jako Scrum Mastera, najważniejsza pozostanie Retrospektywa. Jako dla odpowiedzialnego członka Zespołu Scrumowego Sprint Retrospective i Daily Scrum.
Jak zwykle punkt widzenia zależał będzie od punktu siedzenia. Jedno jest pewne, stand-up ma wielki sens w dzisiejszym „dynamicznie zmieniającym się środowisku”. I to w tym wszystkim jest najważniejsze.
Jeszcze więcej o Daily, w tym zalecane przez nas „najlepsze praktyki”, możecie znaleźć w tekście https://bialko.eu/agile/3-sposoby-na-daily/