W rozwoju agilnym historia użytkownika jest podstawowym elementem budowania wartości dla klienta. Te zwięzłe opisy funkcjonalności wymaganej uchwycić ‘kogo’, ‘co’ i ‘dlaczego’ cechy lub wymagania. Jednakże, aby zapewnić, że historie użytkownika są zarówno wykonalne, jak i testowalne, zespoły agilne często stosują technikę zwana kryteriami akceptacji ‘Give / When / Then’ (GWT). Ta metoda pomaga zdefiniować oczekiwane zachowanie historii użytkownika w sposób jasny i jednoznaczny.

Co to są kryteria akceptacji?
Kryteria akceptacji to warunki lub zasady, które historia użytkownika musi spełnić, aby została uznana za zakończoną. Są one mostem między wizją właściciela produktu a realizacją zespołu programistycznego. W istocie definiują granice i oczekiwania dotyczące każdej historii użytkownika. Bez dobrze sformułowanych kryteriów akceptacji historia użytkownika może być poddana różnym interpretacjom, co prowadzi do nieporozumień i potencjalnego ponownego wykonania pracy.
Struktura kryteriów akceptacji Give / When / Then
Give / When / Then to format do tworzenia kryteriów akceptacji, który pochodzi z rozwoju opartego na zachowaniu (BDD). Umożliwia bardziej zorganizowany i zrozumiały sposób wyrażania oczekiwanego zachowania historii użytkownika. Format składa się z trzech części:
- Daj: Ten rozdział opisuje początkowy kontekst lub stan systemu. Ustala tło dla scenariusza, który opisujesz. W istocie dostarcza informacje wstępną potrzebną do zrozumienia scenariusza.
- Kiedy: Ten rozdział reprezentuje działanie lub zdarzenie, które wywołuje zachowanie opisane w historii użytkownika. Jest to konkretne zdarzenie, które wykonuje użytkownik lub które następuje w systemie.
- Wtedy: Ten rozdział przedstawia oczekiwany wynik lub efekt działania lub zdarzenia opisanego w sekcji ‘Kiedy’. Określa, co powinno się wydarzyć jako skutek działania, często w formie obserwowalnych zmian w systemie lub aplikacji.
Zalety kryteriów akceptacji Give / When / Then
- Jasność: Format GWT oferuje zorganizowany i łatwy do zrozumienia sposób wyrażania oczekiwanego zachowania historii użytkownika. Zmniejsza niejasności i zapewnia, że wszyscy członkowie zespołu programistycznego, w tym programiści, testerzy i właściciele produktu, mają jasne zrozumienie, co musi zostać wykonane.
- Testowalność: Format naturalnie nadaje się do przypadków testowych. Każdy element ‘Daj’, ‘Kiedy’ i ‘Wtedy’ można przekształcić w konkretne scenariusze testowe, co ułatwia weryfikację poprawnego wykonania historii użytkownika.
- Zgodność: Kryteria akceptacji GWT zachęcają do współpracy między członkami zespołu. Właściciele produktu, programiści i testerzy mogą razem definiować i doskonalą kryteria, zapewniając, że wszyscy są zgodni co do zakresu i oczekiwań historii.
Przykłady kryteriów akceptacji Give / When / Then
Rozważmy prosty przykład dla strony internetowej e-commerce:
Historia użytkownika: Jako klient, chcę mieć możliwość dodania przedmiotów do koszyka zakupowego, aby móc je później kupić.
Kryteria akceptacji (GWT):
- DajJestem na stronie produktu
- KiedyKlikam przycisk ‘Dodaj do koszyka’ dla produktu
- Wtedy Produkt powinien zostać dodany do mojego koszyka zakupów
- IIkona koszyka w pasku nawigacyjnym powinna wyświetlać uaktualnioną liczbę przedmiotów
- IPowinienem zobaczyć komunikat potwierdzający dodanie produktu do koszyka
W tym przykładzie kryteria akceptacji zapewniają jasne zrozumienie tego, co oczekuje się od historii użytkownika, czyniąc ją realizowalną i testowalną.
Opis problemu – Studium przypadku:
Rozważmy studium przypadku dla popularnej aplikacji do dzielenia się przejazdami, takiej jak Uber. Problem polega na poprawie doświadczenia użytkownika poprzez wprowadzenie funkcji umożliwiającej pasażerom planowanie przejazdów na konkretne daty i godziny.
Historie użytkownika z kryteriami akceptacji GWT:
Historia użytkownika 1: Planowanie przejazdu z góry
Jako pasażer, chcę mieć możliwość zaplanowania przejazdu na konkretną datę i godzinę z góry, aby móc lepiej planować moje przejazdy.
Kryteria akceptacji (GWT):
- DaneMam zainstalowaną aplikację do dzielenia się przejazdami i jestem zalogowany
- KiedyOtwieram aplikację i wpisuję swój cel, datę i godzinę przejazdu
- WtedyAplikacja powinna wyświetlać dostępnych kierowców na wybraną datę i godzinę
- IPowinienem mieć możliwość potwierdzenia i zaplanowania przejazdu
- IPowinienem otrzymać powiadomienie potwierdzające z szczegółami zaplanowanego przejazdu
Historia użytkownika 2: Edytowanie lub anulowanie zaplanowanego przejazdu
Jako pasażer, chcę mieć możliwość edycji lub anulowania zaplanowanego przejazdu, w przypadku zmiany moich planów.
Kryteria akceptacji (GWT):
- DaneMam zaplanowaną jazdę
- KiedyOtwieram aplikację i przechodzę do moich zaplanowanych jazd
- WtedyPowinienem zobaczyć listę moich nadchodzących zaplanowanych jazd
- IPowinienem móc wybrać jazdę, aby zmienić datę i godzinę lub ją anulować
- IJeśli edytuję jazdę, aplikacja powinna wyświetlić dostępnych kierowców dla nowej daty i godziny
- IPowinienem otrzymać potwierdzenie w postaci powiadomienia o każdej wprowadzonej zmianie
Historia użytkownika 3: Powiadamianie kierowców o zaplanowanych jazdach
Jako kierowca, chcę otrzymywać powiadomienia, gdy pasażer zaplanuje jazdę ze mną, aby móc planować moją dostępność.
Kryteria akceptacji (GWT):
- DaneJestem aktywnym kierowcą z otwartą aplikacją do dzielenia się przejazdami
- Kiedypasażer zaplanuje jazdę ze mną na konkretną datę i godzinę
- WtedyPowinienem otrzymać powiadomienie w czasie rzeczywistym z szczegółami zaplanowanej jazdy
- IAplikacja powinna wyświetlać zaplanowaną jazdę na moim panelu kierowcy
- IPowinienem móc zaakceptować lub odrzucić zaplanowaną jazdę w rozsądnym czasie
Historia użytkownika 4: Udzielanie opinii o zaplanowanych jazdach
Jako pasażer, chcę mieć możliwość podania opinii i oceny kierowców za przejazdy planowane, aby wspomóc utrzymanie jakości usługi.
Kryteria akceptacji (GWT):
- Zakładającukończyłem przejazd planowany
- Kiedyotworzę aplikację po zakończeniu przejazdu
- Topowinienem mieć możliwość oceny kierowcy i podania opinii
- Iocena kierowcy powinna zostać zaktualizowana na podstawie mojej opinii
- Ipowinienem otrzymać wiadomość podziękowania za podanie opinii
Te historie użytkownika i ich powiązane kryteria akceptacji Give / When / Then rozwiązują problem wprowadzenia funkcji planowania przejazdów w aplikacji do współdzielenia przejazdów. Śledząc ten uproszczony podejście, zespół programistów może zapewnić jasne zrozumienie wymagań i oczekiwanego zachowania nowej funkcji, co w końcu prowadzi do lepszego doświadczenia użytkownika.
Wnioski
Kryteria akceptacji Give / When / Then oferują uproszczony sposób definiowania oczekiwanego zachowania historii użytkownika w procesie Agile. Poprzez podzielenie kryteriów na trzy różne sekcje – Give, When i Then – zespoły mogą osiągnąć większą jasność, testowalność i zgodność, co w końcu prowadzi do skuteczniejszego rozwoju produktu. Wprowadzenie tego formatu do procesu Agile może pomóc zespołowi w dostarczaniu oprogramowania wysokiej jakości, które spełnia oczekiwania użytkowników.











