Wymagania niefunkcjonalne aplikacji – czym są i jak je poprawnie opisać w specyfikacji projektu?

wymagania niefunkcjonalne

Właściwe określenie wymagań funkcjonalnych i niefunkcjonalnych aplikacji to niezwykle istotny krok, jeśli planujesz stworzenie nowego produktu IT we współpracy z software housem. Sprecyzowanie oczekiwań wpływa na efektywność procesu tworzenia oprogramowania, a także pozwala developerom lepiej zrozumieć Twoje cele i wizję produktu, a tym samym dobrze przygotować się do działania.

Badania wskazują, że 30% projektów IT ponosi porażkę ze względu na błędnie sformułowane wymagania, dlatego warto już teraz zwiększyć swoje szanse na sukces. Aby cały ten proces przebiegł pomyślnie, konieczne jest dokładne zrozumienie czym są wymagania niefunkcjonalne aplikacji, jakich obszarów dotyczą, a także jak je opisać w specyfikacji technicznej.

Wymagania niefunkcjonalne aplikacji – definicja i rola w procesie tworzenia produktu

Wymagania niefunkcjonalne określają przede wszystkim oczekiwania co do samej jakości działania aplikacji oraz pożądane cechy tworzonego systemu. Innymi słowy, za ich pomocą należy opisać warunki w jakich ma działać Twój produkt. Najczęściej są one determinowane przez typ aplikacji, jaką zamierzasz stworzyć, Twoje cele biznesowe, wielkość budżetu i rodzaj grupy docelowej. Z kolei wymagania funkcjonalne, jak sama nazwa wskazuje, odnoszą się do opisu konkretnych funkcjonalności danej aplikacji. 

Na jakich obszarach najlepiej się skupić opisując wymagania niefunkcjonalne? Weź pod uwagę kwestie związane z szybkością aplikacji, bezpieczeństwem, wydajnością, rodzajem przeglądarki, do jakiej ma być dostosowana, użytecznością, dostępnością, a także sposobem jej wdrożenia. Wybrane obszary omówimy osobno w kolejnej części artykułu.

Tak jak wspomnieliśmy na początku, jasno zaprezentowane wymagania funkcjonalne i niefunkcjonalne odgrywają niezwykle ważną rolę w całym procesie tworzenia aplikacji. Ich określenie jest istotne nie tylko z punktu widzenia biznesowego, ale również z perspektywy software house’u, z którym rozpoczniesz współpracę. Wpływają one na szereg działań, w tym m.in. wybór właściwej architektury systemu.

Ponadto określenie już na samym początku kwestii związanych z bezpieczeństwem aplikacji, bez wątpienia pozwoli na oszczędność kosztów i czasu. Podjęcie takiej decyzji w trakcie prac może przynieść więcej szkody niż pożytku – w niektórych sytuacjach zapewnienie bezpieczeństwa aplikacji w późniejszym etapie może być bardzo kosztowne. Wiedząc od samego początku na jakie rozwiązania będziesz się decydować, zminimalizujesz ryzyko niespodzianek finansowych w przyszłości.


Jak najlepiej zgromadzić wymagania aplikacji?

Zastanawiasz się, skąd czerpać wiedzę o wymaganiach niefunkcjonalnych i jak je najlepiej określić? Dobrym rozwiązaniem może być udział w warsztatach Event Storming. Choć w dużej mierze ich celem jest przeanalizowanie wymagań funkcjonalnych; często są źródłem dyskusji również o obszarach niefunkcjonalnych. Szerokie spojrzenie na produkt i przeanalizowanie procesów w nim zachodzących zdecydowanie ułatwia zgromadzenie kluczowych informacji dotyczących obu typów wymagań.

Przykład warsztatów Event Storming w Studio Software

Realne przykłady wymagań niefunkcjonalnych

Poniżej wymieniamy obszary wraz z konkretnymi przykładami wymagań niefunkcjonalnych, które warto opisać w specyfikacji projektu IT.

Dostępność/Niezawodność

Kiedy użytkownicy będą mogli korzystać z aplikacji? Opisując wymagania niefunkcjonalne z zakresu dostępności należy wskazać, czy: 

  • aplikacja ma być dostępna w systemie 24/7/365,
  • aplikacja będzie dostępna przez określoną ilość lat. 

Wydajność

Opis wydajności jest kluczowy w celu zbudowania sprawnie działającej aplikacji, która odpowiednio obsłuży przewidywany ruch użytkowników. W związku z tym konieczne będzie określenie:

  • maksymalnej ilości użytkowników korzystających jednocześnie z aplikacji,
  • lokalizacji, z jakich mogą pochodzić potencjalni użytkownicy,
  • maksymalnego czasu odpowiedzi aplikacji na zapytanie użytkownika,
  • sposobu, w jaki aplikacja korzysta z zasobów sprzętowych.

Wsparcie

Określ rodzaj wsparcia (przykładowo, czy będzie zapewniane wewnętrznie, czy zewnętrznie), które będzie niezbędne w razie awarii aplikacji. Wskaż:

  • sposób, w jaki użytkownicy mogą zgłaszać błędy,
  • sposób, w jaki aplikacja będzie monitorowana
  • maksymalny czas potrzebny do naprawienia błędów (z podziałem na odpowiednie rodzaje błędów),
  • sposób testowania aplikacji.

Bezpieczeństwo

Zapewnienie bezpieczeństwa aplikacji to jeden z istotnych elementów związanych z tworzeniem takiego produktu. Określ stopień zabezpieczenia danych aplikacji przez ewentualnych atakami z zewnątrz, wskazując przykładowo:

  • najważniejsze zagrożenia, na które może być narażona aplikacja,
  • pożądane sposoby zabezpieczenia aplikacji,
  • czy są wymagane inne, dodatkowe kwestie bezpieczeństwa (przykładowo związane z przechowywaniem danych – np. RODO).

Wdrożenie

Dotyczy wszelkich kwestii dotyczących sposobu wdrożenia aplikacji i wytycznych w tym zakresie. Należy wskazać przykładowo:

  • w jakim czasie nastąpi wdrożenie aplikacji,
  • do jakich grup osób skierowany jest produkt i ilu użytkowników będzie z niego korzystać w poszczególnych etapach rozwoju,
  • rodzaje integracji niezbędnych we wdrożeniu,
  • wskazówki odn. pożądanej architektury aplikacji lub konkretnych wymaganych języków programowania / frameworków.

Użyteczność

Te wymagania dotyczą wyglądu interfejsu aplikacji i koncentrują się na sposobie interakcji z produktem. W sytuacji, gdy nie masz gotowego projektu graficznego aplikacji lub przykładowo aplikacja dotyczy wyłącznie backoffice’wego systemu, warto zaprezentować: 

  • informacje dotyczące kolorystyki i designu,
  • rozmiar ekranu (czy wymagana jest responsywność),
  • sposób oznaczeń poszczególnych elementów aplikacji,
  • rozmiar i wygląd przycisków CTA, itp. 
  • rozmiar i rodzaj czcionki.

Jak właściwie opisać wymagania niefunkcjonalne w specyfikacji technicznej?

Wiedząc, czym dokładnie są wymagania niefunkcjonalne aplikacji i mając już odpowiedni zasób wiedzy na temat właściwości produktu, bardzo istotne jest spisanie wszystkiego w dokumentacji technicznej. Tak jak wspomnieliśmy na początku artykułu, właściwe opisanie wymagań w dużej mierze wpływa na późniejsze powodzenie projektu. Jeśli zastanawiasz się, jak powinna wyglądać cała specyfikacja techniczna, zajrzyj do artykułu, gdzie kompleksowo opisujemy zawartość tego dokumentu.

Jedną z kluczowych zasad jest przygotowanie dokładnego, rzeczowego i logicznego opisu wspomnianych wymagań. Możliwie jak najbardziej dokładne informacje pozwolą stworzyć produkt zgodny z Twoimi potrzebami. Z kolei niedokładny opis może dać przestrzeń na dowolną interpretację informacji ze strony zespołu technicznego, a to może skutkować błędnymi decyzjami i niewłaściwym wdrożeniem. Dlatego lepiej już na samym początku należy zadbać o dostarczenie materiałów, które naprowadzą zespół na dobrą drogę.

Na co jeszcze warto zwrócić uwagę przy opisie wymagań niefunkcjonalnych? Sama forma nie musi mieć konkretnego schematu – dokładny opis w punktach będzie wystarczający i czytelny. Poniżej zamieszczamy przykłady wybranych opisów:

  • aplikacja musi obsłużyć jednocześnie 2000 użytkowników,
  • aplikacja działa na przeglądarkach internetowych takich jak Internet Explorer,
  • aplikacja odpowie na żądanie użytkownika w ciągu 3 s. 

Przygotowanie wymagań niefunkcjonalnych wcale nie musi być trudne. Posiadając skonkretyzowane oczekiwania dotyczące właściwości produktu, zdecydowanie łatwiej będzie przelać ideę na papier. Jeśli jednak nie masz pewności co do funkcjonalności aplikacji i chcesz przeanalizować jej działanie, weź udział w warsztatach Event Storming, które pomogą Ci zrozumieć najważniejsze procesy w niej zachodzące. 

Skontaktuj się z nami i otrzymaj darmową konsultację – doradzimy Ci i zaproponujemy najlepsze rozwiązania dla Twojego biznesu.

Pobierz ebooka za darmo! 👇 👇

Chcesz rozpocząć owocną współpracę z software house'm? Poznaj 5 kluczowych kroków, dzięki którym efektywnie rozpoczniesz projekt i podejmiesz właściwe decyzje biznesowe.

Pobierz teraz! 100% bezpłatny materiał
Chcesz otrzymać darmową wycenę projektu?
Napisz do nas