Na początku miałem inny pomysł na kolejny post na bloga, ale zostałem zainspirowany współpracując z zespołami, które są na samym początku drogi Scrum. Bardzo często dochodzi do niezrozumienia różnic między Product Backlog Refinement a Sprint Planningiem, co powoduje w dużej mierze frustrację. 

Co to jest Backlog Refinement? 

Backlog Refinement jest to ciągłe doskonalenie Backlogu Produktu poprzez dodawanie brakujących informacji do historyjek, estymowanie pracochłonności oraz ustawienie im odpowiednich priorytetów. Scrum Guide nie precyzuje Refinementu jako wydarzenie Scrumowe. Natomiast jest to przeważnie zaplanowane spotkanie członków zespołu z Product Ownerem w celu omówienia i uszczegółowienia wymagań biznesowych zawartych w Backlogu. Każdy Refinement podlega inspekcji i adaptacji.

Kto bierze udział w Backlog Refinemencie?

Product Owner wraz z zespołem developerskim pracują nad elementami Backlogu tak, aby był zrozumiały dla wszystkich. 

Product Owner, osoba odpowiedzialna za kształtowanie produktu oraz właściciel Backlogu. 

Zadania PO podczas Refinementu:

  • Priorytetyzacja Backlogu w celu maksymalizacji wartości wytwarzanego produktu 
  • Zapewnienie, że zespół developerski rozumie historyjki zawarte w Product Backlog
  • Zapewnienie dostępność Product Backlogu, aby był transparentny dla wszystkich 
  • Tworzenie nowych historyjek

Zespół Developerski jest zaangażowany w Refinement w celu poznania priorytetów oraz zrozumienia wymagań biznesowych. 

Dodatkowo:

  • Zrozumienie celu i kryteriów akceptacji wybranych historyjek
  • Rozbijanie rozbudowanych historyjek na mniejsze elementy
  • Estymacja historyjek

Scrum Master jest osobą opcjonalną podczas Refinementu. W głównej mierze jego zadaniem jest umiejętne facylitowanie spotkania, żeby przynosiło wartość dla zespołu scrumowego, a nie tworzyło tak zwanego “waste’u”. W przypadku zespołów z małym doświadczeniem, Scrum Master powinien nie tylko facylitować, ale też nauczyć Product Ownera oraz zespół deweloperski jak przeprowadzić Refinement, jaki jest time box dla niego oraz jakich technik użyć, by był efektywny. 

Ile trwa Refinement?

Według Scrum Guide Refinement powinien trwać maksymalnie 10% czasu całego sprintu. Jeżeli przyjmiemy, że sprint trwa 2 tygodnie, czyli 80 godzin roboczych, na doskonalenie Backlogu powinniśmy zarezerwować 8 godzin.

Z praktycznego punktu widzenia większość zespołów nie patrzy przychylnie na tak dużą ilość czasu poświęconego na Refinement, nawet w momencie, gdy jest on rozłożony na kilka dni. W praktyce do tego spotkania należy podejść zdroworozsądkowo. Scrum Master i Product Owner w porozumieniu z zespołem developerskim określają ile godzin tygodniowo jest im potrzebne na przeprowadzenie refinementu, aby był efektywny i przynosił wartość w postaci dobrze przygotowanych PBI (Product Backlog Item) do sprintu.

Backlog Refinement vs. Sprint Planning

Zespoły będące na początku swoje drogi Scrum mogą nie widzieć różnicy między Refinementem, a Sprint Planingiem. Dlatego bardzo ważna rolą Scrum Mastera lub Agile Coacha jest nauka, wskazanie celu oraz różnic między spotkaniami. Bez tego zespół w dalszym ciągu niechętnie będzie podchodził do podstaw Scrum. 

RefinementSprint Planning
Sprawdzenie oraz dodawanie informacji w historyjcePlanowanie pracy na następny okres sprintu
Estymacja historyjekPotwierdzenie, czy historyjki są gotowe do planowania
PriorytetyzacjaUstalenie Sprint Goal
Zaadresowanie pytań/wątpliwościConfidence voting
Rozbijanie historyjek na mniejszeVelocity zespołu vs. ilość zaplanowanych zadań/story point-ów
Tworzenie nowych historyjekVelocity vs. dni wolne w sprincie (np. święta, kalendarz zespołu)

Jak poprawić Refinement?

Na co należy zwrócić uwagę, aby Refinement był udany, a zespół developerów widział w nim wartość:

  1. Czas – zarezerwujcie tyle, ile faktycznie potrzebujecie. Nie musicie się trzymać dokładnie 8 godzin, aby zespół zdążył z odpowiednim przygotowaniem PBI
  2. Zaproście przedstawicieli biznesu/klienta/inne zespoły, czyli osoby, które pomogą zespołowi i Product Ownerowi w precyzowaniu wymagań biznesowych. Ich wiedza oraz doświadczenie może pomóc w odpowiedzi na pytania zespołu developerskiego
  3. Eksperymentujcie! Każdy członek zespołu Scrum może mieć jakiś pomysł na ulepszenie procesu Refinementu.
  4. Wykorzystajcie dostępne narzędzia w organizacji. Nie koniecznie musicie bazować na karteczkach, możecie wykorzystać Jirę, Trello lub inne aplikację, które mogą Wam tylko ułatwić pracę 
  5. Product Owner – dobrym przykładem współpracy PO z zespołem Scrumowym jest np. wysłanie do zespołu na 1-2 dni przed eventem informacji o tym, jakie historyjki będą omawiane podczas Refinementu. Daje to czas zespołowi na sprawdzenie nad czym będą pracować.

Podsumowanie

Refinement jest spotkaniem, w którym zespół Scrumowy nabywa wiedzę produktową. Dzięki estymacji może zacząć prognozę dostarczania inkrementów, dzięki czemu Product Owner będzie miał możliwość ułożenia roadmapy produktu i planu wdrożeń.