W projektach hardware’owych, czyli takich, w których przedmiotem jest stworzenie fizycznie istniejącego urządzenia pojawia się problematyka ograniczeń. W angielskiej literaturze używa się terminu dimensioning, który przetłumaczyłem wprost na wymiarowanie projektu. Takim projektem często zarządza się przez ograniczenia, ale od początku.
Zarządzanie wymaganiami bywa szalenie istotne, ale i pomijane. Istotne, gdy nie wiemy, jak wymagania osiągnąć, bo nie znamy odpowiedniej technologii bądź istnieją konflikty wymagań, których nie potrafimy rozwiązać z marszu. Bywa też krytyczne, gdy istnieje ryzyko, że zamawiający nie dogada się z wykonawcą i dzieło, które powstanie na końcu nie spełni właśnie wymagań. Taka sytuacja występuje w tak odległych branżach, jak budownictwo i programowanie.
Artykuł jest fragmentem książki Bardziej niż Agile będącej w trakcie druku: https://onepress.pl/ksiazki/bardziej-niz-agile-marcin-zmigrodzki,baragi.htm#format/d
Wymagania mają naturę hierarchiczną. To znaczy, gdy klient je podaje mogą na początku wyglądać niczym lista życzeń i zażaleń, ale w miarę ich analizy wyłania się zwykle struktura.
Rolą zespołu projektowego jest zebranie wymagań i skonstruowanie na ich podstawie struktury, która będzie wykonalna, uzasadniona biznesowo, optymalna kosztowo, wartościowa dla klienta.
Jednak na ogół, gdy zespół buduje rozwiązanie ze znanych klocków technologicznych, to wiele rzeczy staje się oczywistych w momencie zdefiniowania wymagań - albo coś się da zrobić, albo nie, albo zadziała tak, jak chce tego klient, albo nie.
Sytuacja wygląda inaczej w projekcie eksploracyjnym. W tym wypadku zespół odkrywa często, co się da, a co nie. Więc moment między udokumentowaniem wymagań, a stwierdzeniem, że tak może dostarczyć rozwiązanie, które je uwzględnia jest często bardzo odwleczony w czasie. Przez długi okres życia projektu wiadomo, jakie są wymagania i nie wiadomo, czy uda się je dowieźć. Aby zapadło w pamięć, określę to zjawisko przepaścią wykonalności (feasibility chasm).
Z tych powodów formalne dokumentowanie wymagań i śledzenie, na ile zespołowi udaje się zasypać przepaść wykonalności staje się krytyczne akurat w trakcie odkrywania.
Wymagania dzielimy w gigantycznym uproszczeniu na:
- Biznesowe - jakie rezultaty biznesowe mają być osiągnięte dzięki rozwiązaniu, np. produkt powinien sprzedawać się w ilości 100 stuk miesięcznie, firma dzięki nowym kompetencjom powinna wygrać przetarg.
- Funkcjonalne - co rozwiązanie ma oferować dla użytkownika, w jaki sposób ma wchodzić z nim w interakcję, np. system musi wyświetlać określone dane, detektor ma wykrywać zdefiniowane zachowanie, użytkownik powinien móc wykonać z urządzeniem określoną pracę,
- Niefunkcjonalne - wszystkie pozostałe, np. rozwiązanie ma mieć pobór prąd mniejszy niż założony pułap, rozwiązanie musi stosować określone zabezpieczenia.





