Znając już podstawową technikę definiowania historyjek – INVEST- możemy przystąpić to cięcia historyjek na mniejsze, bardziej strawne kawałki.
Zaproponowane przez Richarda Lawrence`a podejście traktuję to jako ściągawkę, którą warto “mieć przed oczami” w trakcie Backlog Refinement`u (czesania rejestru wymagań). Czesząc historyjki można przejść razem z zespołem krok-po-kroku po kolejnych proponowanych “płaszczyznach” cięcia funkcjonalności na mniejsze, spełniające zasadę INVEST, historyjki.
Zacznijmy od początku:
- Cięcie wstępne
— Już w trakcie dodawania zadań do Backlogu warto zastanowić się nad tym czy historyjka spełnia założenia zasady INVEST. Następnie sprawdzamy czy historyjka ma wielkość 1/10 do 1/6 Velocity zespołu. Np dla zespołu, który osiąga prędkość 30 Story Pointów zadanie powinno mieć od 3-5 Story Pointów. W przeciwnym razie albo staramy się zadanie przeredagować albo przystępujemy do następnego kroku podziału. - Cięcie Workflow
— dostarczyć mały wycinek całego workflow - Cięcie Operacji
— wiele operacji – może da radę zrobić jedną z nich? - Cięcie Reguł Biznesowych
— skompilowane reguły biznesowe – wybrać najważniejszą i zacząć od niej. Następne dodawać stopniowo - Cięcie Danych
— czasem podział jest możliwy względem danych, które przetwarzamy - Cięcie interfejsów
— podejście zwinne mocno opiera się o dobre praktyki inżynierii oprogramowania. Dlatego ten etap odnosi się do jednej z zasad SOLID – Interface segregation principle (Zasada segregacji interfejsów) - Cięcie pod kątem pracochłonności
— wyodrębnij historyjkę, która jest najbardziej pracochłonna a decyzje odnośnie pozostałych opóźnij najbardziej, jak możliwe. (osobiście nie zgadzam się z tym etapem – kluczem jest wartość biznesowa!) - Cięcie proste/złożone
— na początku zajmij się prostymi historyjkami, które dostarczą największą wartość biznesową, bądź pozwolą zweryfikować czy rozwiązane idziesz w dobrym kierunku.
źródła:
- Richard Lawrence – How to Split a User Story
- Wikipedia