User stories
User stories |
---|
Polecane artykuły |
Historyjka użytkownika (ang. User story) jest sposobem zapisu wymagań klienta. Metoda ta została zaproponowana przez Kenta Becka i Martina Fowlera - twórców metodyki Extreme Programming[1], i jest często stosowana do gromadzenia wymagań w metodykach zwinnych np. Scrum, Kanban czy właśnie Extreme Programming.
TL;DR
User story jest sposobem zapisu wymagań klienta w metodykach zwinnych. Składa się z trzech elementów: karty, konwersacji i konfirmacji. Każda historyjka powinna być istniejąca samodzielnie, negocjowalna, wartościowa, estymowalna, mała i testowalna. W metodyce Scrum historyjki są przechowywane w backlogu produktu, a podczas planowania sprintu zespół deweloperski wybiera, które z nich zostaną zrealizowane. Historyjki są umową pomiędzy zespołem deweloperskim a Product ownerem.
Konstrukcja
User story to krótki opis wybranej funkcjonalności, napisany z punktu widzenia docelowego użytkownika danego produktu. Opis taki, zwykle jednozdaniowy, zawiera jedynie informacje najważniejsze z punktu widzenia przyszłego użytkownika - jest on zasygnalizowaniem problemu oraz punktem wyjścia do dyskusji o sposobach jego rozwiązania.
Tradycyjnie, historyjki użytkownika zapisywane są na niewielkich kartkach papieru lub kartonikach – dzięki temu możliwe jest ich fizyczne umieszczenie na Scrum board lub Kanban Board. Rozmiar kartek ma również wpływ na to, że historyjki użytkownika zapisane na nich powinny być możliwie krótkie i zwięzłe.
Jeden z najprostszych, a także najpopularniejszy szablon zapisu historyjki użytkownika wygląda następująco[2]:
Jako<Kto?>chcę wykonać<Co?>aby<Dlaczego?>.
Kluczowe w tworzeniu historyjki jest odpowiedź na trzy pytania widoczne we wzorze:
- Kto? – informacja na temat użytkownika systemu, jego typu.
- Co? – informacja o zadaniu, jakie dany użytkownik ma wykonać.
- Dlaczego? – informacja o oczekiwanym wyniku wykonanego zadania.
W języku angielskim te trzy pytania układają się w tzw. “Trzy W”: Who-What-Why[3].
Przykładowa historyjka użytkownika:
Jako klient sklepu chcę dodać produkt do koszyka aby go później kupić.
Powyższy szablon może być oczywiście podstawą do modyfikacji – jeżeli realizowany projekt tego wymaga, może on zostać rozbudowany o dodatkowe informacje lub okrojony, jeśli dana informacja nie jest akurat w danym projekcie potrzebna.
Podczas tworzenia historyjek użytkownika należy pamiętać, aby opisywały tylko takie funkcjonalności, które mają rzeczywistą wartość dla użytkownika – nie uwzględniamy w nich informacji takich jak sposob realizacji danego zadania ani szczegółów technicznych - np. używanego języka programowania[4].
Elementy User story – trzy "K”
{{#ev:youtube|ODsSlyYeQUI|480|right|Jak utworzyć backlog? (Sławomir Wawak)|frame}} Każda historyjka użytkownika jest złożona z trzech poniższych elementów[5]:
- Karta – historyjka zapisana jest na niewielkiej kartce papieru. Kratka sama w sobie nie jest wymaganiem (ma za mało miejsca, aby umieścić na niej wszystkie niezbędne informacje), ale jest fizyczną reprezentacją wymagania, ułatwiającą pracę z wymaganiami, np. planowanie pracy.
- Konwersacja – historyjka użytkownika jest podstawą do rozmowy pomiędzy wszystkimi członkami zespołu projektowego, mającej na celu ustalenie wszystkich szczegółów koniecznych do prawidłowego zaimplementowania historyjki w produkcie.
- Konfirmacja – implementacja historyjki powinna zostać potwierdzona poprzez odpowiednie testy akceptacyjne. Testy akceptacyjne zwykle są opisywane po drugiej stronie karteczek z historyjkami. Uznaje się, że jedna historyjka nie powinna mieć więcej niż dziesięć kryteriów akceptacji[6].
Powyższy podział jest w języku angielskim nazywany "The three C`s" (trzy "C") - od angielskich słów "Card" (karta), "Conversation" (konwersacja) i "Confirmation" (konfirmacja).
Atrybuty User story
Zgodnie z techniką INVEST, każda historyjka użytkownika powinna być[7]:
- Istniejąca samodzielnie (ang. Independent).
- Negocjowalna (ang. Negotiable).
- Wartościowa (ang. Valuable).
- Estymowalna (ang. Estimable)
- Mała (ang. Small).
- Testowalna (ang. Testable).
User stories w Scrum
W metodyce Scrum format historyjki użytkownika jest zwykle stosowany do przechowywania wymagań klienta w backlog produktu. Osobą odpowiedzialną za tworzenie historyjek użytkownika jest Product owner[8]. Jest on również odpowiedzialny za przygotowanie kryteriów akceptacji dla każdej historyjki[9].
Podczas planowania sprintu zespół deweloperski wybiera, które historyjki zostaną zrealizowane w najbliższym Sprincie, a następnie dokonuje dekompozycji historyjek na zadania możliwe do wykonania przez jedną osobę.
Historyjka użytkownika w scrum jest pewnego rodzaju umową pomiędzy zespołem deweloperskim a Product ownerem:
- zespół deklaruje, że pracę nad daną funkcjonalnością rozpocznie dopiero po jej dokładnym omówieniu,
- Product owner natomiast deklaruje, że będzie dostępny zawsze, gdy zespół będzie chciał z nim rozmawiać[10].
Bibliografia
- Chrapko M. (2015). Scrum. O zwinnym zarządzaniu projektami wydanie II rozszerzone, Wydawnictwo Helion, Gliwice
- Sachdeva S. (2016). Scrum Methodology, "International Journal Of Engineering And Computer Science", nr 5
- Pfahl D. (2014). Lecture 11: Agile/Lean Methods
- Leffingwell D., Behrens P. (2009). A User Story Primer
Przypisy
- ↑ Chrapko M. (2015). Scrum. O zwinnym zarządzaniu projektami wydanie II rozszerzone, Wydawnictwo Helion, Gliwice, s. 151
- ↑ Chrapko M. (2015). Scrum. O zwinnym zarządzaniu projektami wydanie II rozszerzone, Wydawnictwo Helion, Gliwice, s. 151
- ↑ Pfahl D. (2014). Lecture 11: Agile/Lean Methods, s. 2
- ↑ Chrapko M. Scrum. O zwinnym zarządzaniu projektami wydanie II rozszerzone, Wydawnictwo Helion, Gliwice 2015, s. 154
- ↑ Jeffries R. (2011). Essential XP: Card, Conversation and Confirmation, "XP Magazine”, August 30, 2011
- ↑ Chrapko M. (2015). Scrum. O zwinnym zarządzaniu projektami wydanie II rozszerzone, Wydawnictwo Helion, Gliwice, s. 156
- ↑ Chrapko M. (2015). Scrum. O zwinnym zarządzaniu projektami wydanie II rozszerzone, Wydawnictwo Helion, Gliwice, s. 158
- ↑ Sachdeva S. (2016) Scrum Methodology, "International Journal Of Engineering And Computer Science", nr 5, s. 16797
- ↑ Chrapko M. (2015). Scrum. O zwinnym zarządzaniu projektami wydanie II rozszerzone, Wydawnictwo Helion, Gliwice, s. 156
- ↑ Cohn M. (2009). Succeeding with Agile: Software Development with Scrum, "Addison-Wesley", Reading 2009, s. 239
Autor: Karolina Zasada