Wprowadzenie
Temat wycen usług z zakresu analizy, projektowania i wykonania często budzi wiele emocji, wydaje się, że powodem jest brak wiedzy o specyfice tych prac. Nie ma zapewne złotego środka ale warto mieć świadomość tego, że płynne przechodzenie od prac analityczno-koncepcyjnych do ich realizacji podlega pewnej prawidłowości.
Modele używane w toku wyceny
Popatrzmy po raz kolejny na poniższy diagram:
Spróbujmy się wyobrazić:
- ile stron zajmuje plan marketingowy i opis strategii (pewna relatywnie mała cześć np. prospektu emisyjnego spółki giełdowej), to wierzchołek powyższej piramidy,
- ile stron zajmuje kompletna, obejmująca całą spółkę dokumentacja ISO, zakresy obowiązków wszystkich pracowników i opisy ich kompetencji, to podstawa powyższej piramidy,
- Modele procesów biznesowych leżą (cenowo i ilościowo) gdzieś pomiędzy powyższymi, ale bliżej strategii, to środkowa część piramidy.
Teraz idąc dalej: jakim nakładem pracy, czyjej i jakim kosztem, powstała jedna strona planu marketingowego a jakim kosztem powstała strona np. procedury czy instrukcji stanowiskowej.
Powyższy diagram, piramida, mniej więcej odwzorowuje ilość dokumentacji na każdym z tych trzech poziomów (powierzania każdej warstwy) jednak waga (ryzyko jakie stwarza powstanie złej dokumentacji) i trudność opracowania sprawiają, że koszt ich wytworzenia jest porównywalny, proporcje ilości stron opisu strategii vs. dokumenty HR i ISO to nawet 1:100.
To był etap analizy biznesowej i projektowania w obszarze zarządzania i procesów biznesowych. A jak to wygląda w przypadku projektowania oprogramowania? Bardzo podobnie:
Jak widać mamy znowu (prawie) piramidkę. Od góry patrząc mamy kolejne etapy analizy i projektowania (metodą od ogółu do szczegółu). W tym przypadku mamy analogiczną relację ilości treści na etapie analizy i modelowania vs. ilość linii powstałego na ich podstawie kodu. Tu relacja kosztów „jednej strony A4” także dochodzi do poziomu 1:100 a nie raz znacznie więcej.
Wyjaśnienie jest dość proste: po pierwsze opracowanie jednej strony modelu to wiele iteracji i rozwiązywanie problemów związanych z logiką całości, spójności, kompletności itp. Na etapie implementacji problemy te są już rozwiązane, wiec „treść„ « powstaje po pierwsze szybciej po drugie „pod dyktando” więc „taniej”.
To prawie jak na rynku budowlanym: największym problem i ryzykiem jest analiza potrzeb i zaprojektowanie bryły budynku i wewnętrznego rozkładu jego pomieszczeń z uwzględnieniem przyszłych zmian. Nikt chyba nie wątpliwości, ze praca projektanta architekta jest znacznie bardziej „kosztowna” per osoba niż firmy developerskiej.
Swego czasu, na szkoleniu organizownym przez IIBA zapytałem prowadzącego o sprawdzone w praktyce dobrze przeprowadzonych projektów IT, proporcje pomiędzy czasem oraz kosztem etapu analizy i planowania (projektowania) a czasu i kosztu realizacji projektu (na bazie powstałe dokumentacji). Są to odpowiednio dla czasu trwania etapu 50%-50% dla kosztów 20%-80%. Co ciekawe projekty mające silnie ograniczony pierwszy etap, w zasadzie nie mieściły w kategoriach poprawnych projektów (przekroczone terminy i budżety).
Koszt analizy i projektowania powinien być dostosowany do ryzyka projektu:
A tak wygląda to jako całość z perspektywy analizy zrealizowanych projektów programistycznych (badanych było ponad 500 projektów):
Tak więc warto zawsze rozważać udział fazy analizy i planowania w całości projektu, mieć świadomość konsekwencji tej decyzji oraz w szczególności, planując budżet oraz czas na analizę i projektowanie, przyjąć, że dokumentacja analityczno- projektowa jest objętościowo najszczuplejszym „artefaktem” w całym projekcie (największym artefaktem jest kod) mimo, że nie najtańszym.
Zakończenie
Na koniec przytoczę słowa jednego z moich klientów, dobrze doświadczonego kierownika projektów: każda oszczędzona godzina analityka projektanta, to dodatkowy tydzień pracy zespołu programistów.