6
Dzisiaj zebrałem pytania, które dotyczą, moim zdaniem, jednej z fajniejszych praktyk w Scrumie – pielęgnacji Backlogu Produktu. Oto i one:
Po co nam sesje pielęgnacyjne? Kto powinien w nich uczestniczyć? Jak często się odbywają? Jak je planować?
Jaki jest najlepszy moment dla PO i zespołu na spotkanie związane z pielęgnacją Sprintu? Zaraz po zakończeniu wcześniejszego, kiedy łatwo spojrzeć w tył i pokazać co poszło nie tak?
Ogólnie Przyjęte Praktyki w Scrumie (OPPS)
Zanim zabiorę się do odpowiedzi na te pytania, zacznę od tego, że Scrum jest metodą, która ciągle ewoluuje i ma różne odsłony. Pamiętam, kiedy zaczynałem swój pierwszy projekt w Scrumie, było to już blisko jedenaście lat temu. Byłem wtedy etatowym pracownikiem dużej amerykańskiej korporacji. I jedynym źródłem mojej wiedzy o Scrumie była w zasadzie książka Kena Schwabera „Agile Project Management with Scrum” plus parę zagranicznych blogów. W Polsce nikt nie organizował jeszcze żadnych konferencji, szkoleń; ludzie nie pisali na ten temat artykułów, książek. W ogóle, nie było jeszcze żadnej „oficjalnej wersji” Scruma. I minęło dobrych parę lat, zanim to wszystko zaczęło się zmieniać.
Dzisiaj, oprócz samego rdzenia tej metody – „twardych” reguł, które tworzą jej szkielet, istnieje cała masa dobrych praktyk, które żyją w znakomitej symbiozie z regułami Scruma. Należą do nich chociażby: historyjki użytkownika, Sprint 0, Definition of Ready (DoR), Test-Driven Development, Programowanie w Parach, tablica scrumowa, a także sesje pielęgnacyjne. Mike Cohn ukuł nawet dla nich dość osobliwą nazwę Generally Accepted Scrum Practices, w skrócie GASP. Ja używam dla nich polskiego odpowiednika: Ogólnie Przyjęte Praktyki w Scrumie (OPPS).

Oficjalne spotkanie, czy nie?
Co ciekawe, sesje pielęgnacyjne wciąż nie należą do oficjalnych spotkań w Scrumie. Sama metoda mówi tylko, że pielęgnowanie Backlogu Produktu powinno mieć charakter ciągły, i to Zespół Scrumowy decyduje o tym, jak i kiedy powinno się ono odbywać. Nie wiem, czy wiecie, ale kiedyś, bardzo podobnie było z retrospektywami w sprincie. Mimo, że dzisiaj zabrzmi to jak herezja, ale początkowo, retrospektywa wcale nie należała do oficjalnych praktyk w Scrumie. Ogólne przeświadczenie było takie, że zespoły scrumowe powinny ciągle doskonalić swoją pracę i na bieżąco szukać sposobów jej ulepszenia. Nie ma potrzeby, żeby tego typu działania „wymuszać” jakimś dodatkowym spotkaniem. A jednak. Jak się później okazało, w praktyce, nikt nie miał do tego głowy, żeby myśleć o jakichś usprawnieniach w sprincie. Sytuacja zmieniła się dopiero wtedy, gdy retrospektywa zostały wprowadzona jako oficjalne spotkanie w Scrumie. Trzymam mocno kciuki, żeby kiedyś podobny los spotkał sesje pielęgnacyjne w sprincie.
Skąd nazwa?
Z nazwą tej praktyki było różnie. Sesje pielęgnacyjne pochodzą od angielskiego słowa „grooming”, które możemy przetłumaczyć jako:
- czyszczenie i szczotkowanie zwierząt domowych, np.: kota, psa, konia;
- dbanie o swój własny wygląd (higiena osobista, ubiór itp.) — czasem mówimy, że ktoś jest zadbany (ang. well-groomed);
- wzajemne mycie i czyszczenie się (futro, skóra) dwóch zwierząt .
Ale nie są to wszystkie możliwe znaczenia. Słówko „grooming”, w niektórych krajach (np. Holandii) oznacza również działania, związane z uwodzeniem dzieci przez internet (tzw. „child grooming”). Dlatego, od jakiegoś czasu, społeczność scrumowa używa innego, bardzo podobnego znaczeniowo słowa „refinement”. W jednym i w drugim przypadku chodzi jednak o to samo — pielęgnację Backlogu Produktu, jego obróbkę, cyzelowanie.
Po co nam sesje pielęgnacyjne?
Powodów jest kilka. Zacznijmy od Właściciel Produktu. Należy pamiętać, że jego myślenie o produkcie sięga dużo dalej, niż tylko do tego, co dzieje się w tym lub innym sprincie. Właściciel Produktu, zwłaszcza w dużych organizacjach, musi myśleć także o kolejnych wydaniach produktu lub kolejnych projektach, które są planowane. Tak więc, niezależnie od tego, co dzieje się w sprincie, w backlogu ciągle pojawiają się nowe wymagania, które trzeba z zespołem przegadać, doprecyzować, pomyśleć o możliwych rozwiązaniach i oszacować.
Do tego wszystkiego dochodzą również różnego rodzaju zależności (inne zespoły, dostawcy zewnętrzni). Może się na przykład okazać, że wynik naszego sprintu będzie mocno zależał od tego, czy inny zespół dostarczy jakiś element produktu, czy nie.
Pracowałem również z zespołami, które podczas sesji pielęgnacyjnych, od czasu do czasu, pokazywały co im się udało zrobić w sprincie – zanim jeszcze doszło do przeglądu na koniec sprintu. Czemu nie? Takie mini-dema czasem mogą być bardzo pomocne. Oczywiście nie można przegiąć.
Sesje pielęgnacyjne są również bardzo wartościową praktyka z punktu widzenia samego Zespołu Developerskiego. Pamiętam, że kiedy stawiałem pierwsze kroki ze Scrumem, a było to już blisko jedenaście lat temu, praktyka regularnych sesji pielęgnacyjnych z Właścicielem Produktu pojawiła się w naszym zespole, w pewnym sensie, naturalnie. Jedną z rzeczy, która najbardziej nam doskwierała w Scrumie były długi czas, który spędzaliśmy na planowaniu sprintu. Rzadko kiedy udawało nam się zaplanować dwutygodniowy sprint w 8 godzin. Wiele razy nasze planowanie kończyło się dopiero na drugi dzień. Wynikało to z bardzo prostej rzeczy. W trakcie sprintu nie mieliśmy regularnych „nasiadówek” z Właścicielem Produktu i, jak przychodziło do planowania sprintu, robiliśmy na nim wszystko: pisaliśmy historyjki, dogadywaliśmy szczegóły, szacowaliśmy, definiowaliśmy zadania i dzień leciał. Regularne sesje pielęgnacyjne w sprincie skróciły sam czas planowania sprintu do 2-3 godzin.
Co robimy na sesjach pielęgnacyjnych?
Poniżej lista rzeczy, które są najczęściej realizowane w trakcie takiego spotkania:
- przygotowanie historyjek użytkownika pod kątem najbliższego lub kolejnych sprintów (dekompozycja historyjek na mniejsze części, definicja kryteriów akceptacyjnych, uszczegóławianie zakresu, dyskusja nad możliwymi rozwiązaniami);
- porządkowanie historyjek w Backlogu Produktu (zmiana priorytetów);
- szacowanie pracochłonności historyjek (osobodni lub story points);
- Pisanie nowych historyjek i aktualizacja starych.
Częstotliwość spotkań
Sesje pielęgnacyjne zajmują mniej więcej od 5 -10% czasu trwania każdego sprintu i powinny być uwzględnione podczas planowania sprintu, najlepiej jako oddzielne zadania na scrumowej tablicy. Ja, zwykle robię to tak, że podczas planowania sprintu, na tablicy pojawia się historyjka, które nie jest funkcjonalna, a jedynie mieści w sobie wszystkie zadania „ogólnosprintowe” (np. bufory na naprawę błędów). Jednym z takich zadań są właśnie sesje pielęgnacyjne.
Ile sesji w sprincie?
To wszystko zależy od Zespołu Scrumowego. Pracowałem z zespołami, które preferowały krótkie spotkania, dwa lub trzy razy w tygodniu (np. 1 godzina/ spotkanie). Inne zespoły wolą robić to rzadziej, ale siedzieć dłużej (np. raz w tygodniu 2-3 godziny). Każdy zespół musi sobie wypracować swoje własne podejście, które jemu najbardziej odpowiada.
Kto w nich uczestniczy?
Tu bywa bardzo różnie. Na pewno powinien pojawić się Właściciel Produktu oraz Zespół Deweloperski. Jednak nie zawsze obecność wszystkich członków zespołu jest konieczna. Są sytuacje, w których Właściciel Produktu, spotyka się tylko z kilkoma, wybranymi osobami. W innych przypadkach, na takie spotkania przychodzą wszyscy. Oprócz członków Zespołu Scrumowego, zdarzają się sytuacje, że na sesje pielęgnacyjne przychodzą również inne osoby z organizacji np. architekt korporacyjny lub kierownik projektu (jeśli Backlog Produktu jest Backlogiem konkretnego projektu lub projektów). Tu znowu, nie ma reguły i sami musicie ocenić, kto jeszcze mógłby być na takim spotkaniu potrzebny.
***
Osobiście uważam, że sesje pielęgnacyjne są jedną z fajniejszych praktyk w Scrumie. I mimo, że nie ma obowiązku organizować ich w każdym sprincie, bardzo mocno was do tego zachęcam. Z Backlogiem Produktu jest jak z ogrodem. Jak go nie pielęgnujesz – zarasta.