Powrót do bloga
Technology

Czym są “user stories” i dlaczego warto w nie inwestować?

Autor Grzegorz Dybowicz Lead Front-end Developer
User Stories są kluczowe dla tworzenia oprogramowania, ponieważ jasno definiują potrzeby użytkownika, cele i korzyści, umożliwiając zespołom dostarczanie wartościowych funkcji.

Co to jest “user stories”?

User stories to krótkie i proste opisy wymagań, które definiują zakres danego zadania. Są one napisane z góry narzuconej strukturze.

Ja [rodzaj użytkownika], chcę [cel], aby [korzyść].

Ważne jest to, że powinny być one zrozumiałe dla klienta oraz każdego członka zespołu. Nie mogą być napisane zbyt technicznym i skomplikowanym językiem.

User stories to tak naprawdę wymagania biznesowe ubrane w odpowiednią formę. Aby wyjaśnić dlaczego taki opis zadania jest ważny posłużmy się przykładem spoza świata IT.

Wyobraźmy sobie, że remontujemy dom. Postanowiliśmy, że remont sypialni zlecimy fachowcowi. Wykonawca dostaje od nas takie informacje:

Chcemy wyremontować sypialnie - zmienić panele i przemalować ściany na beżowo.

Wyjeżdżamy na tydzień na urlop, przyjeżdżamy do domu, spotykamy się z fachowcem, aby odebrać pracę, a tam niespodzianka.

Rachunek trzy razy większy niż się spodziewaliśmy, a rezultaty nie takie, jakich się spodziewaliśmy.

Dlaczego?

Okazało się, że nie sprecyzowaliśmy dokładnie, czego oczekujemy. Fachowiec zamówił i zamontował panele winylowe, które były kilka razy droższe od laminowanych, których oczekiwaliśmy.

Ściany zostały wygładzone, ponieważ fachowiec stwierdził, że są krzywe - mimo, że nam to nie przeszkadzało. Dodatkowo okazało się, że odcień beżu jest kompletnie nietrafiony, a sufit pomalowany na biało pomimo, że chcieliśmy, aby był w kolorze.

Czym jest User Story dla programisty lub testera?


User stories to lista tego, na co programista/tester powinien poświęcić czas w obrębie danego zadania. Często jest tak, że pracując nad jakimś zadaniem zatraca się szerszy kontekst biznesowy.

Zaczyna się poprawiać i zmieniać rzeczy które nie są bezpośrednio związane z zadaniem. W skrajnych przypadkach może okazać się, że praca którą wykonywaliśmy jest… niepotrzebna (analogicznie jak gładź na ścianie w naszym przykładzie z remontem).


Dla programisty historyjki użytkownika to taka kotwica, która pozwala mu wracać do tego, co tak naprawde jest wymagane w konkretnym zadaniu. Dokładnie wiemy z czego tester będzie go rozliczał (a z czego nie). Być może, na danym etapie projektu nie potrzebujemy obsługiwać jakichś skrajnych przypadków, które zajęłyby 80% czasu pracy nad danym zadaniem.

Jeśli nie sprecyzujemy tego, może okazać się, że programista, z założenia, będzie próbował je obsłużyć.


User stories to wytyczne także dla testera - może okazać się, że wyklikany “błąd” wcale nie jest błędem tylko przypadkiem którego aktualnie nie obsługujemy (bo nie musimy). Unikamy w ten sposób zbędnych przepychanek pomiędzy testerem a programistą.


Minusem spisywania User Stories jest potrzeba poświęcenia im czasu, natomiast w porównaniu do tego jakie koszty może wygenerować brak takich wymagań to może okazać się że jest to świetna inwestycja.

Analogiczne problemy można spotkać w świecie IT

Jak można było temu zapobiec?

Zanim wybraliśmy się na urlop, powinniśmy usalić z fachowcem konkretne wymagania. W przypadku świata IT miałyby one określoną formę i strukturę - nazywaną User Story.


Dzięki takim historyjkom minimalizujemy ryzyko niedomówień, spisujemy konkretne wymagania danej funkcjonalności. Po wykonanej pracy punkt po punkcie możemy przejść listę i sprawdzić czy praca została wykonana.


Spisanie takiej listy jest komfortowe dla obu stron - Wykonawca wie co ma robić (ale też czego nie robić) i z czego będzie rozliczany, a my jako zlecający wiemy czego się spodziewać.


Historia i rozwój User Stories

Struktura i szablon User Story

Odpowiednio dobrany użytkownik (persona)

W pierwszej części User Story kluczowe jest określenie, kto jest użytkownikiem funkcji, czyli "Jako ktoś, chciałbym...".

Użytkownik powinien być dobrze zdefiniowaną personą, reprezentującą grupę docelową korzystającą z danej funkcjonalności.

Jak zdefiniować użytkownika?

  1. Zrozumienie grupy docelowej

    • Określ, kto będzie korzystał z produktu: czy to klient końcowy, pracownik, administrator, czy inna specyficzna rola.

    • Przykład: "Jako klient sklepu internetowego" lub "Jako administrator systemu IT".

  2. Uwzględnij cele użytkownika

    • Zastanów się, jakie problemy użytkownik chce rozwiązać za pomocą produktu.

    • Przykład: Klient sklepu internetowego może chcieć szybciej finalizować zakupy, a administrator systemu – monitorować działania użytkowników.

  3. Dostosowanie do scenariusza użycia

    • Persona powinna być precyzyjnie dopasowana do specyfiki zadania, aby User Story miało sens w danym kontekście.

    • Przykład: Dla aplikacji edukacyjnej personą może być "Jako uczeń, chcę mieć dostęp do wyników testów, aby móc śledzić swoje postępy."

  4. Oparcie na danych i analizach

    • Warto oprzeć się na badaniach użytkowników, np. ankietach, wywiadach czy analizie zachowań, aby zrozumieć ich potrzeby i priorytety.

Najlepsze praktyki w pisaniu User Stories dla zespołów Agile

1. Użyj formatu "Jako... chcę... aby..."

Przykład: "Jako klient, chcę dodać produkt do koszyka, aby móc kontynuować zakupy później."

2. Zachowaj prostotę

3. Określ kryteria akceptacji

4. Twórz User Stories wspólnie

5. Rozbijaj na małe, zarządzalne elementy

6. Zorientuj się na wartość biznesową

7. Używaj Definition of Ready (DoR)

8. Regularnie priorytetyzuj

9. Testuj i weryfikuj z użytkownikami

10. Iteruj i ulepszaj

Historyjki użytkownika a kryteria akceptacji

Testy akceptacyjne i priorytetyzacja zadań

Zaangażowanie zespołu w tworzenie User Story (lepsza praca w zespole)

Prosto i do celu

Uzasadnienie, czyli konkretna korzyść z każdego User Story

Każde User Story powinno wyraźnie wskazywać, jaką wartość dostarcza użytkownikowi lub biznesowi. Część "aby [korzyść]" odpowiada na pytanie: dlaczego ta funkcjonalność jest potrzebna?

Dlaczego uzasadnienie jest ważne? Określa cel biznesowy.

Dzięki uzasadnieniu zespół rozumie, jakie korzyści przyniesie realizacja zadania i jak wpisuje się ono w cele projektu. Pomaga w priorytetyzacji. Korzyść wynikająca z User Story pozwala Product Ownerowi określić, które zadania mają największe znaczenie dla użytkownika lub biznesu. Minimalizuje zbędną pracę. Jasne uzasadnienie eliminuje ryzyko wykonywania działań, które nie przynoszą wartości.

Jak formułować korzyści? Konkretne i mierzalne efekty.

Uzasadnienie powinno wyraźnie wskazywać, jak User Story ułatwia życie użytkownikowi lub wspiera cele biznesowe.


Przykład: "Jako użytkownik aplikacji mobilnej chcę mieć możliwość zapisania ulubionych artykułów, aby móc do nich wrócić później."


Korzyść: użytkownik oszczędza czas i zwiększa wygodę korzystania z aplikacji. Skupienie na potrzebach użytkownika.


Zastanów się, jakie problemy rozwiązujesz. Uzasadnienie powinno odnosić się do rzeczywistych potrzeb.


Przykład: "Jako administrator systemu chcę widzieć raporty dzienne, aby szybciej analizować wydajność zespołu."


Unikaj ogólników. Korzyści powinny być konkretne. Zamiast: "aby działało lepiej", napisz: "aby użytkownik mógł szybciej znaleźć potrzebne informacje."


Uzasadnienie w User Story to kluczowy element, który wskazuje wartość dodaną dla użytkownika. Dzięki niemu zespół rozumie, dlaczego dane zadanie jest ważne i jak wpływa na realizację celów projektu. Precyzyjne sformułowanie korzyści ułatwia priorytetyzację i zapewnia lepsze efekty pracy zespołu.

Grzegorz Dybowicz
Lead Front-end Developer
Doświadczony programista Angular z analitycznym umysłem. Jego dbałość o jakość i szczegóły (zarówno w kodowaniu, jak i jego kulinarnych pasjach) sprawia, że jest nieocenionym wsparciem w dziedzinie front-endu.
Udostępnij

Pomożemy Ci osiągnąć cele biznesowe

Pomożemy Ci osiągnąć cele biznesowe

Porozmawiajmy o Twoich wyzwaniach
Podobne artykuły

Co zrobić, kiedy administracja systemu uzależniona jest od jednej osoby
Sprawdź, dlaczego jeden administrator systemów to zawsze zły pomysł. Zminimalizuj ryzyko związane...
Znalazłeś błąd na produkcji systemu? Sprawdź, jak zgłosić ten fakt dostawcy, aby mógł szybko zareagować.
Znalazłeś błąd w aplikacji na produkcji? Dowiedz się, jak prawidłowo zgłosić problem dostawcy, ab...
Rosnąca popularność aplikacji webowych w Polsce
Postęp technologiczny w ciągu ostatnich kilku dekad nabiera coraz szybszego tempa. Z każdym rokie...