User stories – przykłady, użycie

Kasia Wolska on 4 lipca 2017

Jak budować User Stories?

User stories to krótki opis cech i właściwości systemu wyrażanych przez potrzebę użytkownika. Wykorzystuje się je w procesach developmentu produktu, w ramach tzw. metodyki Agile (zwinnej) do określenia funkcji i wytwarzanej wartości dla użytkownika. User stories powstają jako efekt współpracy pracy pomiędzy klientem, określającym wymagania i wizję produktu, a zespołem projektowym agregującym i weryfikującym informacje. Taka komunikacja pozwala na uspójnienie wizji, rozwiązań i pożądanego efektu, a także minimalizuje ryzyko powstawania ewentualnych błędów. Najczęściej stosuje się następujący schemat:

  • jako – osoba, przypisana rola,
  • chcę – cecha, funkcjonalność, czynność,
  • ponieważ uzasadnienie, rezultat, korzyść.

 

Przykłady User Stories:

Jako klient sklepu online chcę mieć możliwość zarejestrowania własnego profilu, abym nie musiał za każdym razem uzupełniać danych.

Jako użytkownik portalu chcę mieć możliwość ustawienia poziomu dostępu swojego profilu dla osób, których nie znam, aby chronić swoją prywatność.

Jako reklamodawca chcę mieć możliwość edytowania budżetu w trakcie trwania kampanii, aby w szybki sposób reagować zmiany.

Powyższy schemat pozwala na klarowne określenie: kto, co i dlaczego wykonuje daną czynność, dzięki czemu widzimy nie tylko funkcje, ale również ich wagę i znaczenie dla całego systemu. Konieczność myślenia poprzez pryzmat użyteczności dla użytkownika pozwala odpowiednio zaplanować pracę, uwzględniając biznesowe cele. User stories opisują najczęściej jedną wybraną interakcję użytkownika z systemem. Pomimo pozornej prostoty bardzo łatwo pominąć komponenty schematu lub źle określić poziom szczegółowości. By temu zapobiec, warto kierować się zasadami tworzenia user stories z poniższego schematu:

  • Independent – budowa mini jednostek, które mogą funkcjonować niezależnie od innych i być opracowywane w dowolnej kolejności,
  • Negotiable wypracowane historyjek w zespole drogą dyskusji, rezultat współpracy z klientem,
  • Valuable – istotne dla odbiorcy końcowego, ważne dla biznesu,
  • Estimable – łatwe do oszacowania w zakresie nakładu pracy,
  • Small na tyle małe, aby łatwo było zaplanować i przeprowadzić iterację, możliwe do wykonania od kilku dni do ok. 2 tygodni,
  • Testable określenie kryteriów akceptacji, zbudowanie scenariuszy testowych i warunków ich przejścia.

Każda historia powinna mieć zdefiniowane kryteria akceptacji, określające: które parametry powinny zostać spełnione, aby historia została zaakceptowana (np. logowanie przez FB, logowanie przez e-mail, logowanie przez LinkedIn, to kryteria akceptacji do funkcji logowania). Sprawdzanie poszczególnych kryteriów w ramach danej historii wyraża się poprzez scenariusz testowy, który określa: co musimy przetestować i jakie funkcje mają działać. Z kolei Definition of done odpowiada na pytanie, jakie parametry świadczą o ukończeniu danej user story. Ukończenie historii odpowiada jednocześnie ukończeniu sprintu.

Przykładowy user story z projektu, który realizowaliśmy:

 

Jira, User Story, Da Grasso

 

User stories na etapie brainstormingu najczęściej zapisujemy na sticky notes, co ogranicza miejsce i zapewnia większe skupienie na istocie opisywanego działania. Wszystkie historie tworzą zbiór tzw. backlogu i opracowywane są przez team w kolejnych iteracjach w narzędziu JIRA.

Najczęstsze błędy w user stories

Najczęstszymi błędami popełnianymi przy definiowaniu historii użytkowników są:

  • zbyt duża szczegółowość – powoduje rozproszenie się zespołu i jego uwagi oraz stwarza ryzyko pominięcia części konwersacji,
  • zbyt duża generyczność – stwarza problemy w wyodrębnianiu funkcji w danej iteracji,
  • zbyt duża formalność – powoduje brak skupienia na użytkowniku i zmniejsza czytelność opisu,
  • użycie technicznych parametrów zamaskowanych w user stories – wypis zadań technicznych, zamiast historii użytkownika przyczynia się do zamazywania priorytetyzacji zadań,
  • pomijanie etapu dyskusji – staje się ryzykiem dla utrzymania prawidłowego kierunku rozwoju projektu oraz pominięcia ważnych dla użytkownika funkcji.

Wady i zalety stosowania historyjek użytkownika

Zalety stosowania user stories:

  • uspójnienie wizji i języka komunikacji pomiędzy klientem a zespołem,
  • priorytetyzacja funkcji,
  • maksymalizacja użyteczności dla użytkownika,
  • zwiększenie poziomu kreatywności poprzez kooperatywność,
  • ułatwienie estymacji czasu poszczególnych iteracji.

Wady ze stosowania user stories:

  • komplikacje w opisie czysto systemowych tasków, np. bugów, spików,
  • rozbieżność w zrozumieniu sposobu funkcjonowania danej historyjki pomiędzy klientem a temem developerskim,
  • brak informacji dotyczących sposobu wykonania i interfejsu designu – różnice pomiędzy poszczególnymi deweloperami,
  • skupienie się na funkcjonalnościach biznesowych i pominięcie technicznych np. wydajność serwera,
  • utrata kontroli nad całokształtem wizji wynikająca z fragmentaryzacji funkcjonalności.

Estymacja czasowa iteracji odbywa się za pomocą nadania Story Points, które określają tzw. rozmiar relatywny, odnoszący relację historyjek względem siebie. Punkty nie określają bezwzględnej jednostki w czasie. Oznacza to, że wybierając najprostsze zadanie, przypisując mu wartość równą 2, zakładamy, że zadanie z opisem 4 zajmie nam dwukrotnie więcej czasu od pierwszego. Punkty odzwierciedlają rozmiar pracy, a nie czas potrzebny do jej wykonania. Dzięki temu różnice wynikające z zasobów, umiejętności czy podejścia przestają stanowić punkt rozbieżny. To samo zadanie wykonywane jest przez dwa różne zespoły w różnym tempie, dlatego uwzględniać należy rozmiar pracy oraz wydajność zespołu.

Dobrze napisane user story przyczynia się do ustrukturyzowania pracy w zespole i zaoszczędzania czasu przy wdrażaniu pomysłu. Historie użytkownika pozwalają wykorzystać efekt synergii wynikający ze wspólnego wypracowywania najlepszych możliwych efektów. Dlatego ta metodologia, nazywana zwinną, jest stosowana na co dzień w firmach wytwarzających software.

, , , , , , ,

Przeczytaj również

  • Jacek Góraj

    Hi Karolina,

    It is a lot easier to create test scenarios with a right tool. I highly recommend everyone to look into HipTest (https://hiptest.net/). I don’t want to go into much details here, but it allows testers to (among other things):

    – create function-like action words which reduces text duplication
    – launch test runs of your test scenarios which reduces regression time
    – generate simple reports from test runs
    – generate test code in chosen test framework (I didn’t use it so far to be honest but looks interesting)

    The tool is rather simple, but of course one needs to spend some time to learn it.

    Best regards 😉
    Jacek

  • Appchance

    🙂