Wymagania niefunkcjonalne aplikacji webowej — czym są i jak je zdefiniować?
Przyjmowanie konkretnych oczekiwań i celów do realizacji to podstawa zarządzania projektami IT. Jeśli chodzi konkretnie o założenia dla aplikacji internetowych, definiowanych na wczesnym etapie prac, można wyróżniać funkcjonalne i niefunkcjonalne wymagania aplikacji webowej. O ile określenie tych pierwszych z reguły nie jest problemem, tak te drugie mogą sprawiać pewne trudności. Czym są i jak je zdefiniować? Wyjaśniamy!
Wymagania niefunkcjonalne aplikacji webowej — czym są?
Wymagania niefunkcjonalne aplikacji webowej to wszystkie te wymagania stawiane aplikacji internetowej, które nie dotyczą bezpośrednio oferowanych przez nią funkcji, a skupiają się na jej jakości. Jest to więc pojęcie bardzo szerokie, które może obejmować między innymi aspekty związane z wydajnością oprogramowania, jego skalowalnością, bezpieczeństwem, dostępnością czy też stabilnością.
Nie można powiedzieć, że wymagania niefunkcjonalne systemu zastępują te funkcjonalne. Przeciwnie, aby zestaw oczekiwań i założeń dla aplikacji był kompletny i pozwalał na podjęcie kolejnych kroków, trzeba ustalić oba z nich. Aspekty związane z funkcjonalnością i jakością wzajemnie się uzupełniają i oba z nich mogą wpłynąć na satysfakcję użytkowników z korzystania z aplikacji.
Znając wymagania niefunkcjonalne aplikacji, deweloperzy mogą odpowiednio zaplanować prace i dobrać właściwe narzędzia oraz parametry, tak aby np. ustalona architektura aplikacji webowej pozwalała na bezproblemową skalowalność oprogramowania. Będzie im także łatwiej na etapie testów ocenić, co jeszcze wymaga poprawy, mając przed sobą konkretne oczekiwania, których spełnienie można i trzeba zweryfikować.
Wymagania niefunkcjonalne aplikacji webowej — przykłady
Wymieniono już takie przykłady wymagań niefunkcjonalnych aplikacji webowych, jak wydajność (szybkość działania), skalowalność (możliwość łatwego zwiększenia skali działalności), bezpieczeństwo, dostępność (niska awaryjność) i stabilność. Są to jednak pojęcia dość abstrakcyjne. Jak wymagania niefunkcjonalne systemu mogą wyglądać w praktyce?
Wysoka wydajność aplikacji oznacza między innymi, że szybko się ona ładuje, nie zawiesza się, przechodzenie między kolejnymi ekranami i funkcjami jest błyskawiczne i bezproblemowe, a oprogramowanie nie przeciąża komputera (np. poprzez wykorzystywanie bardzo dużej ilości RAM-u). Wymaganie niefunkcjonalne systemu w tym zakresie może brzmieć na przykład „czas odpowiedzi serwera powinien wynosić poniżej 200 ms”.
Ważnym aspektem wydajności oprogramowania przeglądarkowego jest też kwestia tego, ilu użytkowników jednocześnie jest ono w stanie bezproblemowo obsłużyć. Wymagania niefunkcjonalne aplikacji webowej w tym zakresie mogą być bardzo różnorodne, w zależności m.in. od tego, czy firma ma ugruntowaną pozycję na rynku i jakie środki zabezpieczono na promocję. Jeśli od razu przewidujemy duży ruch, próg będzie zupełnie inny niż w przypadku oprogramowania, które startuje od zera i zakłada powolny przyrost użytkowników. Nigdy jednak nie wiadomo, jaka aplikacja stanie się nieoczekiwanym hitem, więc zadbanie o wspomnianą już skalowalność jest niezbędne, aby w razie czego szybko dostosować oprogramowanie do wzmożonego zainteresowania.
Jak precyzyjnie określić wymagania niefunkcjonalne aplikacji webowej?
Precyzyjne określenie wymagań niefunkcjonalnych aplikacji webowej oznacza postawienie takich wymagań, które są mierzalne, a co za tym idzie, mogą podlegać testom i nie ma problemu z określeniem, czy przekroczono postawiony próg, czy też nie.
Czy precyzja oznacza ustalanie z góry każdego, nawet mikroskopijnego detalu związanego z aplikacją? Niekoniecznie. Najważniejsze jest, aby szczegółowo zająć się opisanymi na początku tego artykułu najważniejszymi przykładami wymagań niefunkcjonalnych aplikacji, takimi jak wydajność, dostępność, użyteczność czy bezpieczeństwo.
Wiedząc, czym jest aplikacja webowa i jaka jest jej specyfika, należy uwzględnić w wymaganiach wyzwania i oczekiwania użytkowników typowe dla aplikacji w przeglądarkach. Należy wziąć także pod uwagę poziom zaawansowania aplikacji, swój budżet, a także szeroko pojęte cele biznesowe i główne wartości marki — wymagania aplikacji powinny być z nimi w pełni kompatybilne.
Wymagania niefunkcjonalne aplikacji webowej — skąd je czerpać?
Nie zawsze zlecający stworzenie aplikacji będzie w stanie ustalić optymalne wymagania niefunkcjonalne aplikacji webowej, opierając się tylko na swoich oczekiwaniach i wiedzy. Definiując założenia dla aplikacji, warto uwzględniać także inne czynniki, takie jak parametry konkurencyjnych aplikacji, które mogą być wartościowym źródłem inspiracji.
Jeśli np. wszystkie konkurencyjne rozwiązania są znane z wysokiego poziomu zabezpieczeń, zejście poniżej tych standardów może zostać negatywnie odebrane przez użytkowników. Jednocześnie warto szukać wśród rywali elementów, z którymi radzą sobie słabiej, aby móc uzyskać w tym zakresie przewagę konkurencyjną.
Wymagania niefunkcjonalne aplikacji webowych powinny zawsze uwzględniać przede wszystkim potrzeby tych, którzy będą z nich korzystać — w końcu to dla nich powstaje oprogramowanie i od ich oceny będzie zależeć jego sukces. W związku z tym do innych wartościowych źródeł informacji należą wszelkiego rodzaju ankiety i badania z udziałem potencjalnych użytkowników aplikacji.
Mogą to być pracownicy firmy, w przypadku budowy aplikacji na użytek wewnętrzny bądź osoby postronne. Niewykluczone, że jakiś czynnik, który mógłby potencjalnie zaważyć o odbiorze aplikacji i decyzji o korzystaniu z niej, nie został dostrzeżony przez zlecającego, a dla użytkowników będzie oczywisty.
Najczęstsze błędy w definiowaniu wymagań niefunkcjonalnych aplikacji webowej
Niewłaściwe sformułowanie wymagań niefunkcjonalnych aplikacji webowej (lub dowolnej innej) może doprowadzić do tego, że zespół deweloperski, mimo wysokich kompetencji i zaangażowania, nie stworzy optymalnego produktu.
Błędy w definiowaniu wymagań niefunkcjonalnych aplikacji webowej zwykle dotyczą zbyt dużej ogólności i abstrakcyjności. Jeśli oczekiwania nie będą określone wystarczająco precyzyjnie, pojawi się duża przestrzeń do interpretacji. W związku z tym albo dojdzie do realizacji w sposób, który ostatecznie nie spełni oczekiwań, albo będzie konieczne konsultowanie każdego założenia już na etapie dalszych prac.
Ponadto niekiedy ustalone wymagania niefunkcjonalne systemu mogą być nierealistyczne czy wręcz niemożliwe do spełnienia, szczególnie w ramach przyjętego dla danego projektu budżetu. Czy to z uwagi na brak dostatecznej wiedzy technicznej osób je definiujących, czy problemy w komunikacji między zlecającym a deweloperami.
Wbrew pozorom brak specjalistycznej wiedzy nie musi być dużym problemem, natomiast w takiej sytuacji dobrym pomysłem będzie poproszenie o pomoc specjalistów. Zespół Develos chętnie odpowie na wszelkie pytania i pomoże w rozstrzygnięciu jakichkolwiek wątpliwości, tak aby ostateczny obraz aplikacji był całkowicie tożsamy z wizją klienta, a także dopasowany do rynkowych standardów i możliwości współczesnej technologii.
Skorzystaj z kompleksowego wsparcia w tworzeniu, wdrażaniu i utrzymywaniu aplikacji webowych, mobilnych oraz desktopowych.
Doświadczeni eksperci Develos są na wyciągnięcie ręki!
Sposoby na unikanie błędów w definiowaniu wymagań niefunkcjonalnych aplikacji webowej
Jakz uniknąć błędów w definiowaniu wymagań niefunkcjonalnych aplikacji webowej? Przede wszystkim należy podejść do tego zadania poważnie. Wymagania nie mogą być ogólną listą nieprecyzyjnych życzeń, a dokumentem wypełnionym skonkretyzowanymi celami, które charakteryzują się małą dozą subiektywności. Chodzi o to, aby ocena, czy dane wymaganie udało się zrealizować, mogła zostać dokonana w sposób nieuznaniowy.
Jeśli więc leży nam na sercu bezpieczeństwo aplikacji webowych, nie umieszczamy w wymaganiach ogólnych stwierdzeń, że oprogramowanie ma być właściwie zabezpieczone. Dla każdego „właściwie” może bowiem oznaczać coś innego. Zamiast tego wskazujemy na przykład, że mają zostać zaimplementowane konkretne, nazwane mechanizmy autoryzacji (np. 2FA, czyli uwierzytelnianie dwuskładnikowe), a także konieczność przeprowadzania audytu bezpieczeństwa raz na kwartał.
Wymagania niefunkcjonalne aplikacji webowej — podsumowanie
To, czy wymagania niefunkcjonalne aplikacji webowej zostały wyznaczone precyzyjnie i właściwie, może rzutować na wyniki całego projektu. Jest to więc aspekt, na który warto zwrócić uwagę i podejść do niego rzetelnie. W przeciwnym wypadku może się okazać, że tworzenie oprogramowania trwało dłużej niż planowaliśmy, a do tego było bardziej kosztowne… i mimo tego ostateczny rezultat nie jest zadowalający.
Niekiedy pojawia się tendencja do skupiania się przede wszystkim na funkcjonalnościach aplikacji, a ignorowania innych jej elementów, w tym choćby bezpieczeństwa czy dostępności. To spory błąd, ponieważ wymagania niefunkcjonalne systemu, chociaż faktycznie trudniejsze do zdefiniowania, są równie istotne. Liczymy, że po lekturze tego artykułu macie już właściwy punkt wyjścia, który poskutkuje odpowiednio zdefiniowanymi wymaganiami niefunkcjonalnymi aplikacji webowej!
Chcesz dowiedzieć się więcej?
Zapoznaj się z naszymi najnowszymi wpisami blogowymi. Znajdziesz tam ciekawe informacje ze świata IT!