Przyjrzyjmy się trochę bliżej wymaganiom dotyczącym rozwiązania (solution requirements), a konkretnie wymaganiom pozafunkcjonalnym. Te funkcjonalne są z reguły łatwe do określenia, wiemy czego oczekujemy od rozwiązania/aplikacji, czego wymaga od nas biznes. Natomiast wymagania uzupełniające są często trudne do zdefiniowania, niezbędne jest zgłębienie kwestii technicznych, a same wymagania są niemniej istotne. Mogą dotyczyć takich kategorii:
- Dostępność - określenie stopnia dostępności funkcjonalnej rozwiązania, często wyrażone pod względem procentu czasu,
- Kompatybilność - poziom dostosowania do innych elementów środowiska,
- Łatwość utrzymania - podatność na rozwój, naprawę błędów,
- Wydajność - stopień wykonywania swoich funkcji przy jak najmniejszym zużyciu zasobów,
- Przenośność - łatwość, z jaką rozwiązanie lub komponent można przenosić z jednego środowiska do drugiego,
- Niezawodność - zdolność komponentu do wykonywania wymaganych funkcji w określonych warunkach przez określony czas,
- Skalowalność - możliwość ewoluowania w celu obsługi większej ilości pracy,
- Bezpieczeństwo - aspekty rozwiązania, które chronią zawartość lub składniki rozwiązania przed przypadkowym lub złośliwym dostępem, użyciem, modyfikacją, zniszczeniem lub ujawnieniem,
- Użyteczność - łatwość z jaką użytkownik może nauczyć się obsługi rozwiązania,
- Certyfikacja - ograniczenia dotyczące np. kwestii spełniania określonych norm,
- Zgodność - z prawem, przepisami,
- Lokalizacja - wymogi dotyczące języka, waluty, pisowni w zależności od regionu funkcjonowania,
- Rozszerzalność - zdolność do włączenia nowej funkcjonalności,
- SLA - ograniczenia organizacji obsługiwane przez rozwiązanie, które są formalnie uzgodnione zarówno przez dostawcę, jak i użytkownika rozwiązania.
Jak widać kategorii jest dosyć sporo. Podam praktyczny przykład konkretnych wymagań pozafunkcjonalnych dotyczących aplikacji webowej z wersją mobilną, Tutaj akurat dostawca został poproszony o wyspecyfikowanie niektórych elementów, zamawiający pozostawił sporą dowolność:
- dostawca przedstawi opis proponowanej architektury fizycznej i logicznej rozwiązania oraz wyspecyfikuje ilość potrzebnych serwerów,
- dostawca określi ilość i wersje systemów operacyjnych niezbędnych do działania systemu,
- rozwiązanie ma umożliwiać prace w oparciu o bazę danych w standardzie Oracle lub MS SQL,
- wskazane by serwery bazodanowe i aplikacyjne mogły pracować w środowisku maszyn wirtualnych VMWare,
- rozwiązanie powinno działać w architekturze wielowarstwowej, zorientowanej na usługi,
- rozwiązanie integruje się z usługami katalogowymi w celu uwierzytelniania użytkowników,
- rozwiązanie umożliwia wykorzystanie platformy integracyjnej (middleware) do integracji z istniejącymi i planowanymi systemami,
- system umożliwia dwukierunkową integrację z hurtownią danych posiadaną przez zamawiającego,
- system jest w stanie obsłużyć X użytkowników,
- rozwiązanie powinno być przygotowane na rozwój w zakresie ilości danych oraz nowy rodzaj danych,
- dostawca określi dodatkowe oprogramowanie niezbędne do funkcjonowania rozwiązania (Java, Adobe),
- dla każdego elementu systemu można wykonywać kopie bezpieczeństwa,
- dostawca zapewni migracje danych z obecnych systemów,
- dostawca zapewni wsparcie użytkowników w godzinach 8:00-17:00 w dni robocze,
- zostanie dostarczona procedura disaster recovery,
- system umożliwi archiwizowanie danych historycznych,
- system będzie dostępny w językach: polski, angielski, hiszpański,
- system oferuje graficzny interfejs użytkownika w rozdzielczości min. 1024x768 i jest możliwy do zainstalowania na komputerach stacjonarnych i przenośnych oraz tabletach i smartfonach z systemem iOS oraz Android,
- system kontroluje integralność danych,
- system wymusza złożoność hasła użytkownika,
- rozwiązanie odnotowuje wszystkie operacje w logach,
- rozwiązanie zapewni zabezpieczenie danych przed nieautoryzowanym dostępem,
- system powinien posiadać zabezpieczenia przed zagrożeniami pochodzącymi z sieci publicznej poprzez wdrożenie zabezpieczeń kontrolujących przepływ informacji pomiędzy systemem informatycznym a siecią publiczną,
- razem z rozwiązaniem dostawca dostarczy kompletną dokumentację wszystkich elementów konfiguracji.
Ta lista może być znacznie dłuższa w zależności od aplikacji i środowiska w jakim ma funkcjonować. Warto przygotować sobie taki szablon i posługiwać się nim przy analizie i wyborze nowych rozwiązań, aby uniknąć przykrych niespodzianek po starcie produkcyjnym :)