.

Czym są kryteria akceptacji w tworzeniu oprogramowania? Definicja i zasady

W procesie tworzenia produktu każda osoba pracująca nad danym problemem może mieć delikatnie inne podejście do jego rozwiązania. Niekoniecznie muszą być to duże różnice, wystarczy inna interpretacja idei, aby gotowe rozwiązanie nie odpowiadało w pełni product ownerowi. Określenie jasnych i przejrzystych kryteriów akceptacji pomoże i usprawni tworzenie oprogramowania, a także pozwoli zapobiec potencjalnym nieporozumieniom.

Czym są kryteria akceptacji? Definicja

Kryteria akceptacji to lista warunków, stosowana w metodyce Agile. Stanowią one odniesienie do historii użytkownika (user stories) oraz uzupełniają założenia biznesowe klienta. Określają warunki przedstawiające potrzeby użytkowników i klienta oraz założenia poszczególnych funkcjonalności. Dzięki poprawnemu ustaleniu kryteriów akceptacji, zespół deweloperski jest w stanie w pełni zrozumieć, jak podejść do problemu.

Właściwe kryteria akceptacji powinny spełniać zbiór zasad i dobrych praktyk

Kto powinien tworzyć kryteria akceptacji?

Osoba odpowiedzialna za stworzenie kryteriów powinna mieć szeroką wiedzę na temat projektu. Jest to szczególnie ważne, ponieważ w procesie tworzenia oprogramowania to właśnie kryteria będą definiować, jakie warunki powinny spełniać poszczególne funkcjonalności. W wielu przypadkach najlepszym wyborem będzie klient, który ma kontakt z projektem od samego początku. Jednak częstym wyborem jest również product manager lub product owner.

Kryteria akceptacji a historie użytkownika

Kryteria akceptacji są odniesieniem do poszczególnych historii użytkownika. Te ostatnie są natomiast krótkimi opisami problemu, mają za zadanie zasygnalizowanie oraz określenie, w czym tkwi problem. Dlaczego więc warto określić kryteria akceptacji i czym się różnią od historii użytkownika? Kryteria akceptacji określają dokładnie poszczególne przypadki, które ma spełnić rozwiązanie, aby zostać zaakceptowanym. Uzupełniają samo wskazanie problemu, poprzez określenie, jakie funkcjonalności powinno dawać gotowe rozwiązanie. Kryteria powinny również być tak skonstruowane, aby nie pozostawiać wątpliwości co do prawidłowego wykonania produktu.

Dlaczego kryteria akceptacji są ważne i czym się charakteryzują?

Wyznaczenie kryteriów akceptacji jest kluczowym punktem, ponieważ to one odzwierciedlają potrzeby użytkowników. Kryteria wpływają na sam proces tworzenia oprogramowania, poprzez określenie, na czym zespół deweloperów powinien się skupić. Aby kryteria akceptacji spełniły swoje zadanie, powinny spełniać parę wymagań.

  • Jasne określenie założeń rozwiązania. Pozwala to na uniknięcie nieporozumień między zespołem deweloperów a klientem.
  • Krótka forma. Najlepiej, aby kryteria opisywały poszczególne założenia osobno, bez zbędnych i długich opisów.
  • Opisanie poszczególnych przypadków. Poza określeniem jasnych przypadków, które muszą zostać spełnione, kryteria akceptacji powinny zwracać wynik tak lub nie.
  • Na ich podstawie można stworzyć testy. Dzięki jasnym założeniom, które musi spełnić oprogramowanie, możliwe jest również stworzenie testów sprawdzających owe kryteria.
  • Możliwość określenia zakresu prac i estymowanego czasu. Poprzez dokładne ustalenie kryteriów akceptacji danego rozwiązania, możliwe jest określenie złożoności problemu.

Co jeśli nie będzie kryteriów akceptacji w zadaniu?

W wypadku gdy zabraknie kryteriów akceptacji, oszacowanie potrzebnego czasu może być dosyć trudnym punktem w rozpoczęciu prac. Przez brak jasno określonych warunków akceptacji, zespół pracujący nad realizacją oprogramowania, mimo zrealizowania historii użytkownika, może wykonać artefakt, który odbiega od oczekiwań klienta. Brak kryteriów akceptacji, określonych przed realizacją prac, tworzy kompilacje oraz zmiany w kodzie, których można uniknąć w prosty i szybki sposób, poprzez określenie, jakie warunki musi spełnić gotowe rozwiązanie.

Typy i formaty kryteriów akceptacji

Kryteria akceptacji mają jedno zadanie, lecz można przestawić je na parę różnych sposobów sposobów. Dlatego kryteria można podzielić na parę kategorii:

1. Przedstawiające scenariusz zachowań. Charakterystyczne są dla nich zwroty: gdy, jeżeli, jako, po, gdzie. Określają one okoliczności oraz poprawne zachowanie oprogramowania w danej sytuacji. Są najczęściej używanym typem kryteriów, który pozwala na łatwe określenie testów oraz wskazuje jasne zadania dla zespołu testerów.

Jeżeli jestem uwierzytelnionym użytkownikiem oraz mam aktywne konto od ponad roku, w momencie gdy znajduje się w ustawieniach konta, mogę sprawdzić datę utworzenia konta.

Jeżeli uwierzytelniony użytkownik straci połączenie z Internetem, zobaczy błąd “Błąd połączenia”.

2. Krótka checklista założeń. Jest odzwierciedleniem zestawu reguł opisujących zachowanie oprogramowania. Na podstawie tych zasad można stworzyć konkretne scenariusze. Ten typ kryteriów przedstawiamy w formie wielu punktów.

  • Przycisk szukania jest w nagłówku.
  • Przycisk szukania jest niebieski z białym obramowaniem.
  • Pole szukania pozwala na wprowadzanie jedynie cyfr.

3. Własny typ kryteriów. Pomaga w bardziej indywidualnych scenariuszach, gdzie wymagane jest dokładniejsze określenie problemu. Jest to często połączenie dwóch typów.

Dobre praktyki w tworzeniu kryteriów akceptacji

Samo podejście do problemu i określenie kryteriów bywa trudnym zadaniem, lecz pomocne może być parę dobrych praktyk, które ułatwią spełnienie założeń zagadnienia kryteriów akceptacji.

1. Komunikacja z zespołem. Rozmowa z zespołem deweloperów może przynieść wiele dobrych rezultatów. Pozwala to na spojrzenie na problem i podejście do niego z innej strony. Nie należy bać się kompromisów, które mogą wyniknąć z takich konsultacji.

2. Dobrze poznaj projekt i jego założenia. Bez solidnej wiedzy na temat problemu i jego okoliczności, trudno jest określić jakie będzie najlepsze podejście do rozwiązania.

3. Nie zagłębiaj się w zagadnienia techniczne. Kryteria akceptacji powinny być określone powszechnym językiem. Nie każdy może mieć pojęcie na temat technologii i poprawnego podejścia.

4. Poprawnie sprecyzuj warunek spełnienia. Kryteria nie powinny być zbyt ogólne, nie mogą być również zbyt precyzyjne, skupiające się na zbędnych szczegółach. Powinny być krótkie i pozwalać zespołowi deweloperów na zaproponowanie odpowiedniego rozwiązania.

5. Rozpocznij dokumentacje kryteriów akceptacji na początku. NIe zostawiaj tego na późniejszy etap procesu. Kryteria akceptacji powinny być znane i jasne, w momencie gdy zespół rozpoczyna pracę nad oprogramowaniem.

Przykłady poprawnie określonych kryteriów akceptacji

Historia użytkownika: Jako zalogowany użytkownik serwisu streamingowego chciałbym mieć możliwość sprawdzenia stanu mojej płatności, aby wiedzieć, kiedy mam zapłacić za usługę.

Kryteria akceptacji:

1. Jeżeli jestem uwierzytelnionym użytkownikiem oraz mam aktywną subskrypcję, w momencie gdy znajduję się w zakładce ustawień konta, widzę informacje o statusie mojej płatności.

2. Po zalogowaniu w ustawieniach konta widzę termin płatności.

3. Po zalogowaniu w ustawieniach konta widzę informację, jak zapłacić za usługę.

4. Jeżeli usługa będzie niedostępna, widzę informację “Spróbuj ponownie za parę minut”.

Spójrzmy na kolejny poprawny przykład kryteriów akceptacji.

Historia użytkownika: Jako administrator strony chciałbym mieć możliwość umieszczenia grafik na podstronie portfolio.

Kryteria akceptacji:

1. Panel administracyjny powinien mieć możliwość dodania pliku do portfolio, zarówno dla wersji mobilnej jak i desktopowej.

2. Na telefonie widzę plik dla wersji mobilnej, gdy przejdę na stronę portfolio.

3. Na komputerze widzę plik dla wersji desktopowej, gdy przejdę na stronę portfolio.

4. Grafiki powinny być widoczne zawsze przed całą treścią strony.

Przykłady nieprecyzyjnych kryteriów akceptacji

Historia użytkownika: Jako zalogowany użytkownik serwisu streamingowego chciałbym mieć możliwość sprawdzenia stanu mojej płatności, aby wiedzieć, kiedy mam zapłacić za usługę.

Kryteria akceptacji:

1. Użytkownik może zobaczyć statusy płatności.

2. W ustawieniach konta widzę informację o płatności.

3. Gdy wystąpi błąd, widzę o tym informację.

W tym przypadku kryteria nie określają szczegółów, jakie powinno spełniać rozwiązanie. Są zbyt ogólne oraz mogą wprowadzić różnicę w zrozumieniu problemu przez zespół deweloperów.

Zobaczmy teraz, jak będą wyglądały niepoprawne kryteria akceptacji w przypadku zgłoszenia od administratora strony.

Historia użytkownika: Jako administrator strony, chciałbym mieć możliwość umieszczenia grafik na mojej stronie.

Kryteria akceptacji:

1. Panel administracyjny powinien mieć możliwość dodania pliku.

2. Widzę grafiki na stronie.

3. Grafiki powinny być widoczne w niektórych przypadkach przed całą treścią strony.

Podobnie jak w przypadku serwisu streamingowego, kryteria zostały określone zbyt ogólnie. Nie przedstawiają wszystkich funkcjonalności, jakie ma spełnić gotowe rozwiązanie i których oczekuje klient.

Kryteria akceptacji - podsumowanie

Zaniedbanie kryteriów akceptacji może wprowadzić wiele problemów. Sam proces ich określania pozwala na udokumentowanie oczekiwań klienta. Dodatkowo kryteria przynoszą zalety każdej stronie, dzięki wprowadzeniu jasnej i przejrzystej komunikacji w zespole. Mimo że różne sytuację wymagają odmiennych rozwiązań, kryteria akceptacji pasują wszędzie, ze względu na ich różne typy i formaty. A testowanie nowych typów kryteriów, które będą dla Ciebie przydatne, jest dobrą praktyką.

Podczas naszej pracy, na przykład przy tworzeniu dedykowanego oprogramowania, regularnie tworzymy kryteria akceptacji. Dlatego chętnie podpowiemy Ci, jak przygotowywać tego typu założenia w Twoim projekcie. Możemy także przeanalizować Twoje inne procesy deweloperskie.

3. Najlepsze praktyki zespołów programistycznych