Wymagania funkcjonalne aplikacji — jak uniknąć błędów przy ich przygotowaniu?
Aby system IT odpowiadał na wszystkie potrzeby użytkowników, muszą być spełnione wymagania funkcjonalne aplikacji. Jeśli wymagania te zostaną pominięte lub niedokładnie zdefiniowane, prace nad projektem mogą znacznie się wydłużyć.
Zebranie wymagań jest kluczowe dla dalszych prac nad projektem, bowiem umożliwia zespołowi technicznemu zgromadzenie pakietu informacji i potrzeb klienta. To ważne, gdyż źle sformułowane wymagania mogą wydłużyć czas pracy nad projektem i zwiększyć budżet o 60%.
Spis treści
Czym są wymagania funkcjonalne aplikacji?
Wymagania funkcjonalne aplikacji opisują zachowanie systemu w określonych warunkach i definiują cechy i funkcje produktu. Wymagania te obejmują szczegóły techniczne, przetwarzanie danych, czy uwierzytelnienie — wszystko, co odzwierciedla zamierzone zachowanie systemu IT.
Czym więc wymagania funkcjonalne różnią się od wymagań niefunkcjonalnych? Mówiąc w skrócie, wymagania funkcjonalne opisują co dana aplikacja powinna zrobić, czyli odnoszą się do konkretnych funkcjonalności, a wymagania niefunkcjonalne odnoszą się do warunków, w jakich aplikacja ma działać. Warto podkreślić, że każde wymaganie funkcjonalne zazwyczaj ma zestaw powiązanych wymagań niefunkcjonalnych. Poniżej przedstawiamy przykład wymagania funkcjonalnego i niefunkcjonalnego:
Co jest pomocne przy tworzeniu wymagań funkcjonalnych?
1. User story
Opis funkcjonalności, które powinny być wdrożone w produkcie IT najlepiej przygotować w postaci tzw. user stories, czyli historyjek użytkownika. Pozwala to przedstawić cechy i właściwości systemu z punktu widzenia użytkownika, czyli pokazać jak użytkownik korzysta z aplikacji. Stworzenie user story ułatwia podstawowy szablon, opierający się na zdaniu „As a [user], I want [what?] so that [reason/value]”. Takie podejście ułatwi zrozumienie potrzeb potencjalnego użytkownika aplikacji.
Przykładem user story, bazującym na wspomnianym szablonie, jest poniższy opis: Jako administrator, chcę mieć możliwość generowania raportów z systemu, aby wiedzieć, ilu użytkowników odwiedza moją stronę.
Do historyjki można dodawać szczegóły, zazwyczaj wybierając jeden z dwóch sposobów:
- podzielenie user story na kilka krótszych historyjek,
- dodanie tzw. warunków satysfakcji, czyli kryteriów akceptacji — zasad opisujących warunki, które muszą być spełnione, aby osiągnąć zamierzony cel.
2. Kryteria akceptacji
Kryteria akceptacji są listą konkretnych warunków i wymagań, pozwalających stwierdzić, że dana funkcjonalność jest spełniona. Kryteria te stanowią punkt odniesienia do określenia user story jako kompletnej z biznesowego punktu widzenia.
Kryteria akceptacji powinny zawierać wyłącznie te elementy, które mają zostać wykonane oraz cechy i funkcje, jakie powinna zawierać aplikacja. Poniżej znajdziesz przykładowe kryteria akceptacji, w odniesieniu do powyższej historyjki użytkownika.
- Raporty może generować administrator.
- Raport powinien być generowany w formacie .xcs.
- Raport powinien składać się z ID użytkownika, daty, nazwy odwiedzanej strony, ilości czasu spędzonego na danej stronie.
- Raporty powinny generować się z poprzedniego miesiąca.
- Raporty powinny generować się po kliknięciu przycisku.
3. Warsztaty Event Storming
Aby ułatwić tworzenie wymagań funkcjonalnych, warto zacząć od ogólnego opisu funkcjonalności aplikacji, a następnie skupić się na szczegółach. Takie podejście do tworzenia specyfikacji w połączeniu z warsztatami Event Storming, organizowanymi przez software house, pomogą zrozumieć zakres działania produktu i jego funkcjonalności.
Warsztaty Event Storming są szczególnie przydatne, gdy specyfikacja projektu jest niekompletna, brakuje jej określonych scenariuszy użytkowania, zdefiniowanych problemów, czy logiki biznesowej.
Jak napisać wymagania funkcjonalne?
Podczas pisania wymagań funkcjonalnych, warto trzymać się dobrych praktyk, aby usprawnić proces tworzenia aplikacji. Nie ma jednego schematu, jednak zastosowanie poniższych zasad sprawdzi się przy każdym projekcie.
- Pisz zwięźle — używaj prostego i łatwego do zrozumienia języka, aby uniknąć błędnych interpretacji.
- Ustal priorytety — wymagania funkcjonalne mają różną wagę, zatem każde z nich musi odnosić się do określonego celu biznesowego lub wymagania użytkownika.
- Zadbaj o szczegóły — staraj się nie łączyć wielu wymagań w jednym. Im bardziej precyzyjne i szczegółowe wymagania, tym łatwiej nimi zarządzać.
- Zachowaj spójność — upewnij się, że wymagania nie są ze sobą sprzeczne.
- Uwzględnij różne kategorie wymagań — biznesowe, administracyjne, wymagania użytkownika czy wymagania systemowe.
Pamiętaj też, aby tworzyć funkcjonalności łatwe do przetestowania i zweryfikowania — po zakończeniu projektu pozwoli to ustalić, czy wymóg został spełniony.
Najczęstsze błędy w pisaniu wymagań funkcjonalnych aplikacji
Przygotowanie specyfikacji technicznej, zawierającej wymagania funkcjonalne i niefunkcjonalne aplikacji jest więc niezbędne, jednak konieczne jest też odpowiednie sformułowanie danych wymagań. Poniżej znajdziesz listę najczęściej popełnianych błędów przy tworzeniu listy wymagań funkcjonalnych.
- Pominięcie kryteriów akceptacji.
- Zawiłe, nieczytelne sformułowania.
- Tworzenie user story, nie trzymając się schematu, co utrudnia zrozumienie niezbędnych wymagań.
- Niedokładne uwzględnienie potrzeb użytkownika, jednostronność i skupienie się na opisie, bazując na wymaganiach głównego użytkownika, bez uwzględnienia pozostałych.
- Brak opisu konkretnych modułów, niedokładny opis aplikacji lub pominięcie ważnych informacji, które są konieczne do dokładnego określenia wymagań.
- Pisanie ogólnikami i brak istotnych szczegółów.
- Nieodpowiednia priorytetyzacja i nieumiejętne określenie co jest ważniejsze w aplikacji.
Pisząc wymagania funkcjonalne aplikacji, ważne, aby używać prostego języka, bez technicznego żargonu, dzięki czemu unikniemy nieporozumień. Każde z wymagań powinno odnosić się do jednego celu i powinno dać się przetestować.
Wymagania funkcjonalne aplikacji — podsumowanie
Napisanie wymagań funkcjonalnych aplikacji prostym i zrozumiałym dla wszystkich językiem, pozwala na zaoszczędzenie czasu i eliminuje konieczność organizowania wielu spotkań. Im mniej czasu poświęconego na spotkania, tym go więcej na pracę nad projektem. Odpowiednie przygotowanie specyfikacji pomaga też wcześnie identyfikować błędy i je korygować, oszczędzając czas i zasoby.
Upewnienie się, że wymagania są udokumentowane w sposób, który nie pozostawia miejsca na interpretację, może pomóc w uniknięciu opóźnień w realizacji projektu i nieprzewidzianych kosztów.