Nasz proces
Specyfikacja Wymagań
Aplikacja webowa, mobilna, strona internetowa, oprogramowanie typu SaaS, właściwie każdy produkt cyfrowy, bez względu na poziom jego złożoności, nie może powstać w założonym:
- terminie
- budżecie
- w oczekiwanej formie, użyteczności
bez rzetelnie i wyczerpująco przygotowanej Specyfikacji Wymagań.
Czym jest Specyfikacja Wymagań Systemu Informatycznego (Specyfikacja Oprogramowania)?
Specyfikacja to dokument, w którym zebrano wszystkie oczekiwania funkcjonalne i niefunkcjonalne stawiane przyszłemu systemowi (np. wymagania funkcjonalne i niefunkcjonalne aplikacji).
Standardowy dokument tego rodzaju zawiera:
- nazwę produktu
- imiona i nazwiska jego autorów
- wersję dokumentu
- historię zmian – prezentowaną najczęściej w postaci tabelarycznej
- spis treści
- część poświęconą charakterystyce firmy (jej potrzeb, problemów biznesowych)
- opis przyszłego / aktualnego systemu, z jakiego firma chce lub z jakiego już korzysta
- słownik pojęć używanych w dokumencie
- opis modelu biznesowego (w szczególności uwzględniający aktorów, reguły, procesy biznesowe)
- opis wymagań funkcjonalnych
- opis wymagań niefunkcjonalnych
- listę wymagań (wraz z priorytetyzacją i opisem przypadków użycia)
- model systemu.
Specyfikacja Wymagań obejmuje z jednej strony biznesową użyteczność systemu, z drugiej zaś porządkuje informacje dotyczące zakresu prac, czasu ich wykonania, metod oraz wyróżnionych etapów (Statement of Work).
Specyfikacja wymagań oprogramowania opisuje wszystkie możliwe interakcje, jakie będą zachodzić między użytkownikami (zewnętrznymi i wewnętrznymi - administratorami) a systemem.
Dostarcza wiedzy na temat celów, jakie aplikacja webowa pozwala osiągać, sposobów ich osiągania, warunków koniecznych do ich osiągania, wyjątków, jakich nie dotyczy.
Uściśla także oczekiwania względem bezpieczeństwa, ochrony danych, warunków korzystania (specyfikacja wymagań systemowych).
Specyfikacja Wymagań pełni rolę nie tylko dokumentacji technicznej (specyfikacja wymagań funkcjonalnych), w pełnym tego słowa znaczeniu, ale także jest dokumentem pozwalającym:
- wycenić projekt (jest szczególnie użyteczna w modelu rozliczeń Fixed Price)
- określić czas wykonania
- podzielić projekt na etapy (Sprinty)
- dookreślić zespół koniecznych do jego wykonania specjalistów
- dobrać adekwatne technologie
- zaplanować ewentualne integracje
- dostosować produkt do aktualnych standardów
- zrozumieć developerom, do czego ma służyć i w jaki sposób ma działać system (np. przypadki użycia).
Przygotowanie do tworzenia Specyfikacji Wymagań
Uwzględnienie wszystkich wymagań, jakie stawiane są systemowi, jest czasochłonne i pracochłonne.
Zdecydowanie jednak przekłada się na szybkość i jakość powstania produktu cyfrowego. Pozwala uniknąć niepotrzebnych błędów, zmniejsza ilość poprawek i zmian.
Warto zatem poświęcić czas na przygotowanie wyczerpujących odpowiedzi na najbardziej typowe pytania:
- czy rozwiązanie ma być tworzone od podstaw, czy ma być rozwinięciem istniejącego systemu?
- czy strona internetowa, aplikacja musi być stworzona z uwzględnieniem Design Systemu?
- jaki jest główny cel biznesowy?
- jaki jest zakres prac produkcyjnych oraz jaki będzie zakres obsługi związanej z utrzymaniem i rozwojem systemu?
- jakie będą główne korzyści firmy oraz przyszłych użytkowników systemu?
- jakie funkcje, moduły musi posiadać, powinna posiadać, może posiadać?
- jakie prace i w jakim zakresie będą wykonywane przez zleceniodawcę lub innych wykonawców?
- na jakich urządzeniach, na jakich systemach operacyjnych, w jakim środowisku system ma docelowo działać?
- w jakim stopniu ma być systemem typowym (podobnym do istniejących), a w jakim stopniu ma oferować dodatkowe funkcjonalności?
- z jakich narzędzi analitycznych będzie korzystać firma do śledzenia zachowań użytkowników?
- z jakimi systemami zewnętrznymi będzie zintegrowany?
Wyczerpujące określenie:
- zadań, jakie będzie wykonywać produkt cyfrowy
- korzyści, jakie pozwoli osiągać
- sposobów ich wykonywania i osiągania
przekłada się bezpośrednio na satysfakcję właścicieli systemu i jego użytkowników.
Specjaliści tworzący Specyfikację Wymagań
Za Tworzenie Specyfikacji Wymagań zazwyczaj odpowiedzialnych jest kilku specjalistów, przy czym w czasie jego powstawania treść dokumentu powinna być konsultowana z pracownikami wszystkich działów.
Analityk Biznesowy odpowiada za przełożenie celów biznesowych na język wymagań programistycznych. Efektem jego prac ma być odpowiedź na pytanie „co ma być wykonane”.
Za odpowiedź na pytanie „jak ma być to wykonane” odpowiada Architekt Systemu, który określa jego strukturę oraz sposób jej wdrożenia.
Zespół programistów, mając tak przygotowane ramy, jest w stanie uzupełnić je o konkretne propozycje rozwiązań technicznych.
Równie istotną rolę pełni UX Designer, który wskazuje wymagania dotyczące użyteczności, ergonomii systemu. Bardzo przydatnymi narzędziami w tworzeniu Specyfikacji Funkcjonalnej są Business Model Canvas, User Stories.
Metodą pozwalająca na ukonkretnienie wymagań jest ich zapis w formie zdań określających możliwość (np. mam możliwość utworzenia konta, mogę oglądać filmy).
Zdania można sformalizować do formuły: ja / rola – mogę / określenie funkcji – nacisnąć, wybrać / określenie działania – w celu / określenie rezultatu.
Specyfikacja Wymagań w formule SMART
Każde wymaganie (funkcjonalne i niefunkcjonalne) powinno być określone, wyrażone w sposób:
- prosty i jednoznaczny (Simple / Specific)
- mierzalny za pomocą standardowych miar (Measureable)
- możliwy do uzyskania w danym czasie, przy zaangażowaniu dostępnych środków (Achievable)
- adekwatny do funkcji, celu (Relevant)
- możliwy do kontroli (Traceable).
Dodatkowo każde wymaganie powinno być możliwe do łatwej identyfikacji za pomocą atrybutów:
- alfanumerycznego identyfikatora
- kategorii wymagań, do jakiej przynależy
- definicji
- priorytetu ważności (najczęściej trzystopniowego: bardzo ważny, ważny, nieistotny).
Wymagania biznesowe i funkcjonalne
Stworzona strona internetowa, aplikacja webowa, mobilna stanowić musi równoważną wartość dla jej użytkowników oraz posiadaczy. Powinna ona pozwalać na osiąganie wspólnych celów.
Przy czym warto zauważyć, że wymagania funkcjonalne w przeciwieństwie do biznesowych, zostają osiągnięte wraz z ukończeniem prac.
Cele biznesowe mogą być mierzone za pomocą różnych wskaźników i osiągane w różnych perspektywach czasowych.
Reguły Biznesowe - Wymagania Pozafunkcjonalne
Niezwykle istotną kwestią, która musi być także uwzględniona w Specyfikacji Wymagań, są Reguły Biznesowe.
Stanowią je normy (formalne i nieformalne, zwyczajowe), które w każdej branży są odmienne, a które regulują wewnętrzne i zewnętrzne działanie firmy.
Normy mają swe źródło w:
- prawie stanowionym (regulacje prawne dotyczące prowadzenia danej działalności np. produkcja żywności, prowadzenie gabinetu lekarskiego)
- regulaminach wewnętrznych firmy (np. dotyczących warunków udzielania kredytu przez bank)
- regulaminach, rekomendacjach organizacji branżowych, do których firma należy (np. IAB Polska)
- branżowych Kodeksach Etyki (np. kodeks etyczny psychoterapeuty Polskiego Towarzystwa Psychiatrycznego)
- branżowych Kodeksach Dobrych Praktyk, regulujących, jakie działania są godne naśladowania, a jakie należy uznać za szkodliwe (choć nie są sprzeczne z prawem).
Reguły Biznesowe stanowią ograniczenia, ramy, w jakich firma działa i są ważnym źródłem określającym wymagania stawiane oprogramowaniu (np. wymagania niefunkcjonalne aplikacji webowej).
Zebranie ich służy sprawdzeniu wszelkich niezgodności między nimi a Wymaganiami zawartymi w Specyfikacji Wymagań.