Splitting user stories

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.

Story-Splitting-Flowchart

Zacznijmy od początku:

  1. 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.
  2. Cięcie Workflow
    — dostarczyć mały wycinek całego workflow
  3. Cięcie Operacji
    — wiele operacji – może da radę zrobić jedną z nich?
  4. Cięcie Reguł Biznesowych
    — skompilowane reguły biznesowe – wybrać najważniejszą i zacząć od niej. Następne dodawać stopniowo
  5. Cięcie Danych
    — czasem podział jest możliwy względem danych, które przetwarzamy
  6. 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)
  7. 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!)
  8. 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:

  • Wikipedia