Gdybym miał wskazać jedno z kluczowych, lecz często niedocenianych wydarzeń w ramach metodyki Scrum, bez wątpienia byłoby to planowanie sprintu.
Jest to spotkanie oparte na współpracy, podczas którego zespół Scrum ustala zakres prac na kolejny sprint. Sesja ta nie powinna przekraczać dwóch godzin w przypadku sprintu dwutygodniowego. Niestety, często kończy się ona niedomówieniami i koniecznością dodatkowej pracy, aby w pełni określić zadania do wykonania w nadchodzącym sprincie.
Planowanie sprintu i jego rola w rozwoju zwinnym
To właśnie podczas tego wydarzenia zespół dokonuje analizy rejestru produktu. Jest to zbiór epików i funkcji, które zawierają wymagania oraz kryteria akceptacji produktu. Na podstawie backlogu wybierane są elementy o najwyższym priorytecie, którymi zespół zajmie się w danym sprincie. Następnie, wybrane pozycje są dzielone na poszczególne zadania. Te zadania razem składają się na całość prac, które zespół musi wykonać, aby osiągnąć sukces i dostarczyć zaplanowane elementy sprintu.
Istotą planowania sprintu jest osiągnięcie wspólnego zrozumienia zakresu pracy, do której zobowiązuje się zespół. Pomaga także określić, które elementy są w danej chwili najbardziej wartościowe, co pozwala na maksymalizację korzyści dla klienta. Dodatkowo, proces ten w naturalny sposób buduje poczucie współodpowiedzialności i zaangażowania wśród członków zespołu, co bezpośrednio przekłada się na wzrost jego produktywności.
Elementy składowe planowania sprintu
Istnieje kilka kluczowych części, które powinny być obecne na każdym spotkaniu poświęconym planowaniu sprintu w Scrum.
#1. Rejestr Produktu
Zanim rozpocznie się planowanie sprintu, Właściciel Produktu powinien zadbać o to, aby rejestr produktu był aktualny i odpowiednio uszeregowany pod względem priorytetów. Podczas sesji planowania, zespół analizuje zawartość rejestru, skupiając się na elementach z jego czoła.
#2. Cel sprintu
Zespół wspólnie ustala cel sprintu, który odzwierciedla wizję Właściciela Produktu. Jest to krótki opis, który określa, jaką wartość przyrostową osiągnie zespół po ukończeniu danego sprintu. Cel sprintu powinien być precyzyjny, mierzalny i możliwy do zrealizowania w ramach jednego sprintu.
#3. Zawartość Sprintu
Elementy z backlogu, które zostały wybrane do realizacji w danym sprincie, tworzą zawartość sprintu. Zespół musi mieć pewność, że wszystkie elementy z tej puli mogą zostać w pełni dostarczone w czasie trwania sprintu. Dlatego konieczne jest oszacowanie nakładu pracy dla każdego z elementów wchodzących w skład zawartości sprintu.
Składowe spotkania planowania sprintu
Wszystkie wymienione elementy składają się na konkretne działania, które mają miejsce podczas planowania sprintu.
Zespół uzupełnia zaległości. Jest to dialog między Właścicielem Produktu (odpowiedzialnym za treść) a zespołem programistów. Ma on na celu dokładne zrozumienie zamierzeń i kryteriów akceptacji poszczególnych elementów. Element (lub historia) jest uznawany za doprecyzowany, gdy cały zespół zgadza się, że opis jest wystarczająco jasny do podjęcia prac programistycznych.
Co należy osiągnąć
Nadrzędnym celem spotkania poświęconego planowaniu sprintu jest ustalenie Celu Sprintu oraz uzgodnienie Zawartości Sprintu, nad którą zespół będzie pracował w nadchodzącym sprincie.
Aby to osiągnąć, w backlogu musi znajdować się wystarczająca liczba dopracowanych historii i funkcji, które mogą stanowić zawartość sprintu. Właściciel Produktu jest odpowiedzialny za ustalenie priorytetów poszczególnych historii przed spotkaniem, tak aby zespół programistów wiedział, które zadania mają najwyższy priorytet biznesowy. Zespół programistów z kolei zapoznaje się z tymi elementami i szacuje nakład pracy potrzebny do ich realizacji.
Jak to osiągnąć
Spotkanie planowania sprintu to przede wszystkim komunikacja i współpraca pomiędzy Właścicielem Produktu a zespołem programistów. Wspólnie dążą do pełnego zrozumienia zakresu zadań o najwyższym priorytecie w backlogu. Gdy zespół zgromadzi odpowiednią liczbę najważniejszych historii, Właściciel Produktu definiuje cel nadchodzącego sprintu. Jest to komunikat skierowany do interesariuszy zewnętrznych, który jasno określa, na czym głównie będzie polegał sprint, jaki jest jego główny zamysł i cel.
Następnie, zespół programistów oblicza swoje możliwości na dany sprint i wypełnia zawartość sprintu elementami o najwyższym priorytecie, które razem składają się na cel sprintu.
Ostatecznie, do zawartości sprintu mogą zostać dodane dodatkowe historie, które nie są bezpośrednio związane z celem sprintu. Dzieje się tak po to, aby w pełni wykorzystać pozostałą wolną przestrzeń w sprincie. Mimo to, cel sprintu stanowi główną wartość, jaką zespół zamierza dostarczyć w danym sprincie.
W zależności od poziomu przygotowania, spotkanie planowania sprintu może przybrać formę długiej dyskusji lub szybkiej decyzji. Zespoły, które mają już doświadczenie, często posiadają w backlogu dobrze przygotowane historie na kolejne dwa, a nawet trzy sprinty.
W takich przypadkach spotkanie ogranicza się do określenia celu sprintu i wyboru odpowiednich elementów z backlogu. Jeżeli natomiast historie nie są przygotowane przed spotkaniem, konieczne jest dopracowanie ich w trakcie sesji. Wymaga to interaktywnej dyskusji pomiędzy Właścicielem Produktu a zespołem programistów.
Role i odpowiedzialności
W spotkaniu planowania sprintu biorą udział trzy kluczowe role: Właściciel Produktu (PO), Zespół Deweloperski i Scrum Master (SM). Każda z nich ma określone obowiązki w trakcie spotkania.
PO jest odpowiedzialny za zawartość backlogu oraz za jego aktualność i priorytetyzację. Jest również właścicielem spotkania planowania sprintu i kieruje dyskusją na temat elementów rejestru produktu. Pomaga zespołowi zrozumieć wartość biznesową każdego z nich. Ponadto, PO współpracuje z Zespołem Deweloperskim, aby ustalić cel sprintu i dba o spójność zawartości sprintu z ogólną wizją produktu.
Zespół Deweloperski jest odpowiedzialny za wybór elementów rejestru produktu, nad którymi będzie pracował w danym sprincie i za sprawne tworzenie zawartości sprintu. Tylko zespół programistów może zająć się konkretnymi elementami z backlogu. Zespół Deweloperski szacuje nakład pracy potrzebny do wykonania każdego zadania i przydziela je odpowiednim członkom zespołu.
SM jest odpowiedzialny za koordynację ceremonii sprintu i ułatwia spotkania planowania sprintu. Dba o to, aby wszystko przebiegało zgodnie z planem. SM pomaga także zespołowi zrozumieć cel spotkania planowania sprintu, istotę wspólnego zrozumienia zadań oraz uczy zespół najlepszych praktyk zwinnych.
Współpraca wszystkich ról (w ramach ich obowiązków) prowadzi do osiągnięcia wspólnego porozumienia odnośnie do pracy na kolejny sprint i sposobu jej wykonania. Członkowie zespołu zadają pytania, dzielą się swoimi spostrzeżeniami i wspólnie pracują nad tworzeniem zawartości sprintu. Celem nadrzędnym jest dostarczenie wysokiej jakości produktów w danym sprincie.
Jak przygotować się do planowania sprintu
Większość pracy przygotowawczej leży po stronie Właściciela Produktu. To PO odpowiada za gotowość backlogu. Nie chodzi o to, że PO musi zdefiniować wszystkie historie i funkcje w backlogu, ale to na PO spoczywa odpowiedzialność. Organizacja i kierowanie dyskusją merytoryczną również należy do PO.
Następnie zespół programistów powinien zapoznać się z backlogiem na długo przed planowaniem sprintu. Dzięki temu samo spotkanie może przebiegać sprawniej. Jeżeli uczestnicy zapoznają się z elementami po raz pierwszy podczas planowania sprintu, uzyskanie jasności co do zadań zajmie o wiele więcej czasu.
Każdy element, który ma być omawiany podczas planowania sprintu, powinien mieć już zdefiniowane kryteria akceptacji. Jest to ponownie zadanie PO. Rzeczywista treść elementu i kryteria akceptacji są dwoma kluczowymi danymi wejściowymi do planowania sprintu. Ich brak lub niejasna forma (np. historia zawierająca jedynie nagłówek bez dodatkowych informacji) uniemożliwiają zespołowi przygotowanie się do sprintu.
Wyznaczanie celu we właściwy sposób
Najskuteczniejszym podejściem do ustalania celów podczas planowania sprintu jest podejście iteracyjne. Poniżej znajduje się kilka kroków, które pomogą w definiowaniu skutecznych celów i zadań:
- Przed planowaniem przejrzyj Backlog Produktu. W ten sposób wiadomo, co będzie omawiane, co oszczędza czas podczas spotkania.
- Ustalcie wspólnie Cel Sprintu, gdy historie do realizacji w danym sprincie będą gotowe do wykorzystania przez zespół.
- Wybierzcie elementy z backlogu, które są niezbędne do osiągnięcia uzgodnionego celu sprintu. Upewnijcie się, że wszystkie elementy są realne do wykonania w trakcie sprintu.
- W razie potrzeby doprecyzujcie Cel Sprintu po ustaleniu zawartości sprintu. Dostosujcie go tak, aby informacja o przyroście sprintu była jasna dla wszystkich spoza zespołu.
- Przeglądajcie i poprawiajcie cele sprintu nawet w trakcie jego trwania, zwłaszcza gdy wystąpią nieprzewidziane komplikacje. W takich sytuacjach konieczna jest redefinicja celów sprintu. Im szybciej to nastąpi, tym lepiej dla wszystkich.
Pamiętajcie, że każdy cel sprintu powinien odzwierciedlać rzeczywiste możliwości zespołu (ile czasu zespół ma do dyspozycji w następnym sprincie) oraz że każdy element tworzący zawartość sprintu powinien mieć oszacowany nakład pracy potrzebny do jego wykonania.
Najlepsze praktyki planowania sprintu
Aby spotkanie zakończyło się sukcesem, należy odpowiednio się do niego przygotować. Ta informacja jest skierowana głównie do Właścicieli Produktu, ale dotyczy również zespołu programistów. Każdy powinien zapoznać się ze stanem backlogu z dużym wyprzedzeniem.
W ten sposób unikniecie pytań, czy dana historia jest widziana po raz pierwszy. Idealnie byłoby, gdyby niektóre z najprostszych historii były już oszacowane, choć w praktyce nie zawsze jest to możliwe.
SM powinien dołożyć wszelkich starań, aby spotkanie koncentrowało się na ustalonym porządku i tematach do omówienia. Jest to szczególnie trudne, gdy zespół nie jest jeszcze dojrzały. Często zdarza się tendencja do omawiania każdego szczegółu, a nawet kwestionowania podstawowych faktów, które mogłyby być uznane za oczywiste. W takich sytuacjach należy przerwać takie dyskusje i poprosić zespół o przejście do następnego punktu.
Współpraca i komunikacja to fundament każdego odnoszącego sukcesy zespołu scrumowego. Każdy powinien mieć możliwość zadawania pytań w dowolnym momencie. Nic nie jest gorsze od planowania sprintu, podczas którego słychać tylko Właściciela Produktu (lub, co gorsza, tylko Scrum Mastera).
Spotkanie planowania sprintu musi mieć określone ramy czasowe. Nie należy ich przekraczać. Nie powinno się również organizować kolejnej (dodatkowej) sesji planowania sprintu, ponieważ ta, która się właśnie odbyła, okazała się niewystarczająca. Zamiast tego wyciągnijcie wnioski i następnym razem zróbcie to lepiej.
Absolutne nie
Nie kończcie planowania sprintu bez podziału elementów na historie. Częstym błędem jest przekonanie, że zespół może to zrobić później. Wpływa to bezpośrednio na dokładność szacowania zawartości sprintu.
W efekcie część zadań związanych z planowaniem sprintu jest przenoszona na czas przeznaczony na faktyczne tworzenie elementów. Skracacie czas na rozwój elementów, a jednocześnie nie wyznaczacie na nie dodatkowego czasu.
Wydłużanie lub mnożenie ceremonii sprintu nigdy nie jest dobrym pomysłem. A jednak dzieje się to bardzo często. Nie podążajcie tą drogą.
Spójrzmy na kilka narzędzi, które mogą być wykorzystane podczas sesji planowania sprintu. Mogą one pomóc w zwiększeniu efektywności. Choć moim zdaniem, najbardziej efektywnym sposobem na udane planowanie sprintu jest nadal dojrzały zespół, który nie potrzebuje dodatkowych narzędzi.
#1. Tara
Źródło: tara.ai
Tara.ai to narzędzie do planowania sprintów, które wykorzystuje sztuczną inteligencję (AI), aby pomóc w skutecznym planowaniu i zarządzaniu sprintami. Narzędzie to automatyzuje zadania manualne związane z planowaniem, takie jak szacowanie nakładu pracy i przydzielanie zadań członkom zespołu. Tara.ai dostarcza zespołom dane i analizy w czasie rzeczywistym, które umożliwiają śledzenie postępów i identyfikację obszarów wymagających poprawy.
Jedną z kluczowych różnic między Tara.ai a innymi podobnymi narzędziami jest wykorzystanie sztucznej inteligencji. Tara.ai analizuje dane z poprzednich sprintów za pomocą algorytmów uczenia maszynowego i dostarcza rekomendacji, które pomagają w ulepszeniu procesu w kolejnych sprintach. Narzędzie to pomaga także w tworzeniu dokładniejszych i bardziej szczegółowych historii użytkownika.
Innym aspektem wyróżniającym Tara.ai jest możliwość dostosowania do indywidualnych potrzeb zespołu. Narzędzie można skonfigurować tak, aby odpowiadało konkretnym wymaganiom każdego zespołu. Można je również łatwo zintegrować z innymi narzędziami i platformami.
#2. ClickUp
Źródło: clickup.com
ClickUp to narzędzie do planowania sprintów, które zapewnia kompleksową platformę do zarządzania projektami, w tym planowania sprintów. To narzędzie jest bogate w funkcje i obsługuje wiele integracji.
Kluczową cechą odróżniającą ClickUp od innych narzędzi jest jego elastyczność. Można go dostosować i budować niestandardowe przepływy pracy i procesy, aby spełnić wymagania projektu. Narzędzie udostępnia szereg gotowych szablonów i przepływów pracy, które można dodatkowo modyfikować.
Kolejną zaletą ClickUp jest obsługa integracji z innymi narzędziami i platformami. Narzędzie można zintegrować z popularnymi platformami, takimi jak Slack, Trello i Dysk Google, co umożliwia zespołom usprawnienie przepływu pracy i współpracę.
ClickUp oferuje zespołom wiele funkcji, które pomagają w planowaniu i zarządzaniu sprintami, takich jak zarządzanie zadaniami, śledzenie czasu i raportowanie. Narzędzie obsługuje analizy w czasie rzeczywistym, które umożliwiają analizę postępów zespołu i identyfikację obszarów wymagających poprawy.
#3. Lucidspark
Źródło: Lucidspark.com
Lucidspark to narzędzie do planowania sprintów, które oferuje zespołom wirtualną tablicę do współpracy i planowania. Narzędzie pomaga w przeprowadzaniu burzy mózgów na nowe pomysły i w systematyzowaniu chaosu informacyjnego. Upraszcza planowanie pracy zespołu.
Jedną z kluczowych cech, które wyróżniają Lucidspark, jest jego nacisk na współpracę wizualną. Narzędzie oferuje wiele szablonów i elementów wizualnych, które zespoły mogą wykorzystać do porządkowania pomysłów i planowania sprintów. Wirtualna tablica umożliwia zespołom współpracę w czasie rzeczywistym, eliminując wady wynikające z różnic w lokalizacji.
Kolejną zaletą Lucidspark jest szeroka gama integracji z innymi narzędziami i platformami. Podobnie jak ClickUp, łatwo integruje się z narzędziami takimi jak Slack, Dysk Google i Trello.
Lucidspark oferuje wiele funkcji, które wspierają zespoły w planowaniu i zarządzaniu sprintami. Na przykład zarządzanie zadaniami, śledzenie czasu i raportowanie. Ponadto Lucidspark zapewnia dane i analizy w czasie rzeczywistym, które pomagają zespołom w śledzeniu postępów i identyfikacji obszarów wymagających poprawy.
#4. Wrike
Źródło: wrike.com
Wrike to narzędzie do planowania sprintów, które zapewnia kompleksową platformę do zarządzania projektami, w tym planowania sprintów.
Jedną z kluczowych cech wyróżniających Wrike jest nacisk na współpracę w czasie rzeczywistym. Wrike wdrożył wiele funkcji współpracy, takich jak edycja w czasie rzeczywistym, komentowanie i przydzielanie zadań. Narzędzie obsługuje także wiele kanałów komunikacji, takich jak czat, e-mail i wideokonferencje.
Wrike integruje się z narzędziami podobnymi do tych wymienionych wcześniej (Slack, Dysk Google), ale także z Microsoft Teams, co dla niektórych firm może być istotną zaletą.
Wrike udostępnia także funkcje, które pomagają zespołom planować i zarządzać sprintami, takie jak zarządzanie zadaniami, śledzenie czasu i raportowanie.
#5. Zoho
Źródło: zoho.com
Zoho Sprint to kolejne narzędzie do planowania sprintów, które stanowi kompleksową platformę do zarządzania projektami Agile.
Jedną z kluczowych cech Zoho Sprint jest nacisk na prostotę. Narzędzie zapewnia przejrzysty i intuicyjny interfejs, który jest łatwy w obsłudze, nawet dla zespołów, które dopiero rozpoczynają swoją przygodę z zarządzaniem projektami metodą Agile. Narzędzie udostępnia wiele szablonów i gotowych przepływów pracy, które można dostosować do wymagań projektu.
Podobnie jak inne narzędzia z tej listy, Zoho Sprint oferuje także zarządzanie zadaniami, śledzenie czasu i raportowanie, a także dane i analizy w czasie rzeczywistym, które pomagają zespołom mierzyć postępy i identyfikować obszary wymagające poprawy.
Podsumowanie
Sprawne planowanie sprintu to proces, którego można się nauczyć tylko poprzez doświadczenie. Nawet po poznaniu wszystkich teorii, naturalną reakcją uczestników spotkania będzie odchodzenie od głównego tematu.
Zespół pełen doświadczenia technicznego to często także zespół pełen komplikacji. Dojrzałość zespołu w tym kontekście jest mierzona umiejętnością zrozumienia określonego sposobu myślenia, a nie poziomem posiadanych umiejętności technicznych. Dlatego tak ważne jest, aby wiedzieć, co poprawić i, co ważniejsze, jak to zrobić.
Na koniec sprawdźcie, które niezdrowe procesy mogą zaszkodzić waszemu sprintowi.