Określenie wymagań funkcjonalnych i niefunkcjonalnych aplikacji internetowej jest jednym z pierwszych kroków w projektach programistycznych. Wymagania funkcjonalne aplikacji dotyczą konkretnych funkcji aplikacji webowej, są więc bardzo istotne. Jednak koncentracja jedynie na nich może okazać się niewystarczająca do poprawnego działania aplikacji.
Osoby niezwiązane z branżą informatyczną mogą nie wiedzieć, jaka jest różnica między tymi wymaganiami. Znajomość zagadnienia wymagań funkcjonalnych i niefunkcjonalnych jest ważna, ponieważ firma programistyczna będzie oczekiwała od nas pewnych decyzji w tym zakresie. Współpraca pozwoli na precyzyjne opisanie elementów aplikacji w dokumentacji technicznej, a także oszacowanie budżetu projektu i późniejszy koszt utrzymania aplikacji.
Teoretycznie użytkownicy nie zwracają uwagi na wymagania niefunkcjonalne istniejących aplikacji firmowych. Tak naprawdę działa to do czasu póki wszystko działa bez zarzutu. Gdy są problemy z szybkością ładowania się treści witryny czy wyskakują błędy aplikacji, wówczas użytkownicy zauważają problem. Źródłem wymagań niefunkcjonalnych aplikacji są właśnie użytkownicy, którzy wymagają, aby aplikacje działały prawidłowo według oczekiwań klienta. Podobnie jest z zapewnieniem bezpieczeństwa – aplikacja wywołująca alarmy oprogramowania antywirusowego sprawi, że klienci jak najszybciej opuszczą naszą aplikację. Wymagania niefunkcjonalne aplikacji to wszelkiego rodzaju ograniczenia, które nie dotyczą jej funkcjonalności.
Planując wdrożenie projektu aplikacji webowej należy określić, jakie parametry dotyczą wymagań niefunkcjonalnych aplikacji. Ale czy jakość można precyzyjnie określić za pomocą adekwatnych parametrów? Wymagania niefunkcjonalne aplikacji posiadają parametry możliwe do zmierzenia, a w dalszej kolejności do testowania i poprawiania. Właściwe określenie parametrów wymagań niefunkcjonalnych oraz pozostała zawartość dokumentacji technicznej wpływa na powodzenie wdrożonego projektu.
Wymagania niefunkcjonalne powinny być dokładnie sprecyzowane w specyfikacji technicznej. Poniżej kilka przykładowych wymagań niefunkcjonalnych, o które może zapytać firma programistyczna przed rozpoczęciem prac nad aplikacją webową. Warto pamiętać, że wymagania niefunkcjonalne dotyczą całej aplikacji, a nie poszczególnych jej fragmentów.
Szybkość aplikacji jest bardzo istotnym czynnikiem dla użytkowników korzystających z aplikacji webowej. To, w jakim czasie aplikacja odpowiada w ramach określonych funkcji czy operacji wpływa na poziom zadowolenia klientów. Dla użytkowników szybkość działania aplikacji jest ważny, choć zdają sobie z tego sprawę dopiero, gdy czas wczytywania strony się wydłuża. Przykładem parametru zawartego z specyfikacji technicznej będzie określenie, że konkretna czynność zostanie wykonana w ciągu 1-2 sekund.
Wdrażając aplikację mobilną należy określić ilu użytkowników będzie musiała obsłużyć aplikacja w tym samym czasie. Oszacowanie takiej liczby może okazać się wyzwaniem, nie mniej warto przeanalizować dane oraz zaplanowane działania marketingowe, mające na celu generowanie ruchu użytkowników. Nagle przestająca działać strona w wyniku zbyt dużego obciążenia nie jest dobrym znakiem dla klientów, którzy mogą więcej nie wrócić do korzystania z aplikacji. Parametrem technicznym opisującym wydajność może być ilość osób, które mogą korzystać równocześnie z aplikacji.
Oczywiście błędy lub nieprawidłowości w działaniu aplikacji mogą się zdarzyć, dlatego tak ważne jest aby na początku procesu wdrażania ustalić sposób, w jaki użytkownicy będą mogli zgłaszać ewentualne błędy. To również wchodzi w zakres wymagań niefunkcjonalnych aplikacji internetowych. Określenie rodzaju wsparcia na wypadek błędów, ale też czas reakcji i ich usunięcia. Na rzetelność wykonania aplikacji również wpływa wsparcie w razie problemów i można je określić w specyfikacji na przykład poprzez czas skutecznego naprawienia wad systemu (np. w ciągu 48 godzin).
Określenie zabezpieczenia danych użytkowników jest kluczowe w kontekście poczucia bezpieczeństwa w aplikacji. Klienci często logując się do oprogramowania muszą podać swoje dane osobowe. Dając możliwość tworzenia kopii zapasowych również aplikacja zyskuje na poczuciu bezpieczeństwa. Poufność można zapewnić poprzez blokowanie adresów IP charakteryzujących się podejrzanym zachowaniem lub poprzez umożliwienie korzystania z aplikacji jedynie uprawnionym użytkownikom.
Ten aspekt wymagań niefunkcjonalnych odnosi się do wyglądu aplikacji. Wdrożenie aplikacji wymaga zlecenia wykonania projektu graficznego, w tym kolorystyki oraz sposobu działania aplikacji. Na jakich urządzeniach ma działać, oraz na jakich rozmiarach ekranów, na jakich przeglądarkach, a nawet kwestie kolorystyki i wyboru czcionki. Użyteczność dotyczy również zagadnień związanych z kwestiami user friendly, czy aplikacja jest intuicyjna i prosta w obsłudze. łatwość korzystania z aplikacji, estetyka, szybkość uczenia się obsługi aplikacji.
Niezawodność aplikacji do liczba godzin działania aplikacji bez awarii, czas naprawy aplikacji. Niezawodność to również bezpieczeństwo, odporność na ataki z zewnątrz i odporność na nieprawidłowe użycie aplikacji przez użytkowników. Niezawodność aplikacji dotyczy również częstotliwością występowania błędów. Szybkością ich naprawy. brak wad, czas naprawy wad i błędów
Czas zaprojektowania oraz zaprogramowania aplikacji, a także czas na testy i oddanie aplikacji do dyspozycji użytkownikom. Opisują w sposób spójny i kompletny. Obejmują wszystkie zagadnienia. Nie zawierają sprzecznych informacji.