Czasami istnieją projekty badawczo-rozwojowe, w których nic nie wiadomo z góry na temat technologii, koncepcji i klienta. Jednak menedżer nadal potrzebuje oszacowań czasu. Co mogę zrobić, aby uzyskać przydatne prognozy?
Czasami istnieją projekty badawczo-rozwojowe, w których nic nie wiadomo z góry na temat technologii, koncepcji i klienta. Jednak menedżer nadal potrzebuje oszacowań czasu. Co mogę zrobić, aby uzyskać przydatne prognozy?
Odpowiedzi:
Szczerze mówiąc, jak pisze Nassim Nicholas Taleb w swojej książce Czarny łabędź: „nie możemy przewidzieć”. Głównie z powodu nieznanych niewiadomych. Zasadniczo najlepiej jest przekazać ten sam fakt, którego nie można przewidzieć, zamiast podawać oszacowanie.
Jak pisze Taleb: lepiej mieć całkowitą rację, niż rację. Pamiętaj więc, aby przedstawić fakt, że masz trudności z oszacowaniem, i wykorzystaj takie rzeczy jak „nauka krzywych w nowych technologiach” jako jeden z argumentów. Oznacza to, że zakres szacunków będzie duży: „ten projekt będzie kosztował od 100 000 do 500 000”.
Mówiąc coś takiego, ten, który prosi cię o oszacowanie czegoś, zdaje sobie sprawę, że nie jest to takie proste.
Absolutną pierwszą rzeczą, jakiej potrzebujesz, jest pewne pojęcie o zakresie. Im bardziej konkretny, tym lepiej, ale do uzyskania wstępnych szacunków można zastosować dowolną formę wymagań. Wymagania klienta, wizja i zakres oraz dokumenty koncepcyjne mogą być wykorzystane wcześnie. Ponieważ wymagania i środowisko operacyjne stają się coraz bardziej jasne, szacunki ulegną poprawie. Lepsze zrozumienie klienta (zwłaszcza interfejsów między klientem a organizacją rozwijającą się), zespół wykonujący pracę, technologie, które zostaną zastosowane, architektura systemu i szczegółowy projekt przyczynią się do dokładniejszej oceny. Widać to w Stożku Niepewności.
Jeśli używasz narzędzia do modelowania parametrycznego, takiego jak SLIM lub COCOMO (tylko średniozaawansowany lub zaawansowany, ponieważ Basic nie uwzględnia czynników kosztowych), powinny istnieć współczynniki korekty związane z nieznajomością technologii. Jako przykład, COCOMO ma dużą liczbę sterowników kosztów , w tym takich, które są specjalnie nastawione na znajomość platformy docelowej, a także język i narzędzia używane do rozwoju systemu. SLIM uwzględnia także ogólne doświadczenie zespołu programistów, który powinien uwzględniać rozważane narzędzia i technologie.
Dzięki tej technice dane wyjściowe narzędzi do modelowania są zwykle sprawdzane, ponieważ z powodzeniem były wykorzystywane do szacowania poprzednich projektów oprogramowania przez wiele lat w wielu organizacjach. Jednak dane wyjściowe są tak dobre, jak dane wejściowe do narzędzia.
Jeśli nie używasz modeli parametrycznych do szacowania, musisz po prostu wziąć pod uwagę te czynniki przy sporządzaniu szacunków. Staje się bardziej wezwaniem do oceny, ale możesz rozważyć takie działania, jak czytanie dokumentacji, konfigurowanie nowego środowiska programistycznego i tworzenie przykładowych aplikacji na platformie docelowej lub w językach docelowych.
W takich przypadkach konieczne będzie dokonanie podziału szacunków według zadania i możliwość skorzystania z profesjonalnego osądu, aby je poprzeć. Mamy nadzieję, że masz dane historyczne i inne konkretne dowody, na których możesz opierać swoje szacunki. W przeciwnym razie jest to bardziej bitwa pod górę.
Oddziel czas szkolenia i badań od czasu opracowywania. Podziel projekt na wiele podprojektów, które mają szczęśliwe zakończenia. Upewnij się, że po szkoleniu stworzysz dowód koncepcji.
Jeśli jesteś nowy w tej technologii, nigdy nie zbliżysz się do faktycznego czasu programowania. Podnieś to jako ryzyko na początku projektu i bądź hojny w swoich szacunkach. Dotyczy to podstawowych technologii, których Ty i Twój zespół nie znacie.
Zależy, przez większość czasu korzystałem z FPA ( Function Point Analysis ), ale zajmowaliśmy się tym „rozwojem przedsiębiorczości”, to znaczy, wiesz, firmy internetowe Forbes 500.
Tam zadanie można zawsze podzielić na dwie części: jedną, która bardzo dobrze pasuje do FPA: masz interfejsy wejściowe, interfejsy wyjściowe, wewnętrzne pliki logiczne (czyli tabele / typy baz danych do eksportu) i masz te złożone, nieznane systemy .
W wersji prostej złożone zadanie jest już napisanym komponentem, po prostu ciężko i nie wiadomo, jak się z nim połączyć.
Wersja trudna jest wtedy, gdy trzeba ją napisać, a następnie oceny pilotażowe, COCOMO, cokolwiek.
Ważne są jednak dwie rzeczy:
Każdy rodzaj systemu szacowania musi mieć czas kalibracji dla Twojej organizacji. Nigdy nie rozwijasz się sam, przynajmniej klient czeka na Twój kod (inaczej nie byłbyś tak zdesperowany, pisząc kod dla siebie). Pytanie nie brzmi „jak szybko można go opracować?”, Ale „jak szybko można go rozwinąć u was wszystkich?”
Kiedyś miałem menedżera, który przeczytał tę powieść o Czarnym Łabędzi i był szalony. Mówił nam, że nie da się oszacować, a ja bezustannie robiłem swoje precyzyjne szacunki + -10% ...
Często wykonuję projekty, które pasują do tego opisu i jeszcze tego nie rozgryzłem! Na szczęście w miejscu pracy mam swobodę robienia tego, czego potrzebuję i nie mam daremnych ograniczeń czasowych. Projekty nie zawsze kończą się sukcesem, a to tylko część pracy z tak wieloma niewiadomymi. Firma za każdym razem zdobywa wiedzę.
Przepraszam, że to wcale nie pomaga.
Oszacuj, ile czasu zajmie wykonanie podobnego projektu przy użyciu znanych technologii. Pomnóż przez 4. Dodaj trochę czasu na naukę.
Jeśli oszacowanie jest zbyt krótkie, będziesz wyglądać naiwnie i arogancko. jeśli oszacowanie jest zbyt duże, będziesz wyglądać na ignoranckiego i niekompetentnego. Wybierz mądrze.