Często słyszę pytanie „A jakie są rodzaje wymagań biznesowych?”. Odpowiedź na to pytanie jest taka jak na każde inne pytanie. Czyli „to zależy”. W mojej opinii to zależy od tego kto ten standard definiuje. Lecz trafiłem na ciekawe zestawienie które zawiera największa liczbę rodzajów wymagań i postanowiłem się nim podzielić. Mam nadzieję że taka duża lista będzie ostateczną odpowiedzią na to ile jest rodzajów wymagań. Na samym początku mały disclaimer
Nie uważam tych rodzajów wymagań za dobre. Wypisuje tylko jak mocno można rozbudować ludzką twórczość.
Zapraszam do lektury
Wymagania biznesowe – czyli oczekiwania jakie powinny być zrealizowane by osiągnąć cel biznesowy. Mogą one być z perspektywy organizacji, zespołu lub osoby. Mogą też być z poziomu rynku lub przepisów które wymagają zmiany w organizacji.
Wymagania sprzętowe – fajna jest definicja na wikipedii więc za wikipedią:
Minimalne możliwe właściwości systemu komputerowego lub sprzętu niezbędne do uruchomienia danego programu. Najczęściej dotyczą minimalnej prędkości procesora, minimalnej wielkości pamięci RAM, pojemności dysku twardego oraz wersji systemu operacyjnego. Często dotyczą także parametrów karty graficznej.
Wymagania wstępne – czyli wymagania podane przez klienta gdy zaczynamy projekt. Przykłady takich wymagań mamy w Kickoff projektu albo w przypadku gdy dana firma wysyła na rynek RFI(Request For Information)
Wymagania wysokopoziomowe – wymagania które mają na celu uchwycenie wizji klienta, umożliwienie oszacowania zakresu projektu oraz na wstępne oszacowanie kosztów i czasu potrzebnego na wykonanie prac.
Wymagania użytkownika – wymagania podawane przez użytkowników końcowych w momencie gdy większość interesariuszy nie korzysta z systemu.
Reguły biznesowe – reguła biznesowa sama w sobie nie jest wymaganiem ale postanowiłem ją tu umieścić bo często jej odkrycie tworzy szereg wymagań. Reguła biznesowa to dyrektywa która ogranicza funkcjonowanie danego aspektu biznesu.
Wymagania funkcjonalne – jest to wymaganie dotyczące wyniku zachowania systemu, który powinien zostać dostarczony przez funkcję systemu.
Wymagania niefunkcjonalne – jest to zbiór podtypów(bezpieczeństwo, wydajność, niezawodność, użyteczność, utrzymywalność, przenaszalność) wymagań które nie dotyczą zachowania systemu samego w sobie
Wymagania pochodne – są to wymagania które wynikają z uszczegóławiania wymagań które były na wyższym poziomie(Tak. Udało mi się poznać jedną osobę która rozdziela wymagania które interesariusz podał „na tacy” od tych które wynikają z analizy wymagań).
Wymagania dotyczące designu – myślę że nazwa sama definiuje siebie. Nie chodzi już tylko o UX. Każda większa organizacja ma w swoich procedurach zdefiniowane czcionki, możliwe kolory do wykorzystania itd. Nie zrobisz systemu dla partii politycznej PSL(kolor zielony) w kolorze czerwonym który kojarzy się z SLD.
Wymagania wydajnościowe – wymagania wydajnościowe opisują jak szybko mają działać określone funkcjonalności systemu.
Wymagania interfejsu – wymagania z którymi systemami dany system ma się integrować i w jaki sposób.
Wymagania produktowe – wymagania które dotyczą zachowania produktu. W mojej skromnej opinii to inna nazwa wymagania funkcjonalnego.
Wymagania procesowe – wymagania które istnieją z racji procesu(albo biznesowego albo wytwarzania oprogramowania)
Wymagania logistyczne – tą nazwę zasłyszałem w momencie gdy rozmawialiśmy o wymaganiach które dotyczą procedur funkcjonowania organizacji(np. samego utrzymania aplikacji produkcyjnej).
Wymagania środowiskowe – wymagania które dotyczą środowiska biznesowego które będzie z niego korzystać(np. widziałem wymaganie gdzie każde polecenie do użytkownika miało być rodzaju żeńskiego)
Wymagania nienegocjowalne i negocjowalne – wymagania których interesariusze nie chcą odpuszczać i wymagania które mogą ulegnąć zmianie w zależności od kosztu implementacji.
Wymagania kluczowe – wymagania które muszą być wdrożone aby osiągnąć sukces projektu(trochę jak czynniki podstawowe z modelu kano)
Podsumowując
Typów wymagań jest masa(a wymyślić można jeszcze więcej). W mojej skromnej opinii najlepsza definicja typów jest definicja IREBowska(czyli funkcjonalne, jakościowe i ograniczenia) jednak lepiej jest znać wszystkie rodzaje bo ktoś może uważać inaczej i dyktować nam kolejne ciekawe rodzaje wymagań.