Jak mogę oszacować projekty, kiedy muszę podać krzywą uczenia się dla nowych technologii?

11

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?

pradnya
źródło
5
Weź wszystko, co szacujesz w znanej technologii i przenieś miejsce po przecinku: P
Rig
5
Przeczytaj książkę szacunkową oprogramowania Steve'a McConnoll i dowiedz się, co jest dobrym oszacowaniem. Szacunek jest niepewny - gdyby nie, nie byłby to szacunek. Powiedzenie „Może to potrwać od trzech miesięcy do sześciu miesięcy, po spędzeniu na nim miesiąca będę w stanie zawęzić” powinno być dopuszczalne.
1
@MichaelT - świetny komentarz. Jedyną rzeczą, która sprawia, że ​​nieprecyzyjne szacunki stają się bardziej smaczne, jest ich udoskonalanie w czasie, aby kierownictwo otrzymywało coraz dokładniejsze szacunki pozostałej pracy. Jedyną gwarancją ich wkurzenia jest projekt, który jest trwale dwa tygodnie od zakończenia.
Carson63000,
Po to są prototypy.
@ Carson63000 Miałem uproszczoną wersję stożka niepewności w tym frazowaniu. Kluczową rzeczą, którą należy odrzucić od tej ilustracji, jest to, że szacunek 2-12 miesięcy nie oznacza, że ​​kończy się na 7 miesiącach pod koniec, ale raczej szacunek może zbiegać się od 2-12 do 4-12 do 8-12 do 10-12 do 12. Należy również pamiętać, że oryginalny stożek ma zasięg 16x, gdy wstępna koncepcja jest zakończona.

Odpowiedzi:

13

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.

Marten Sytema
źródło
3
+1: To jedyna poprawna odpowiedź. Naucz swojego menedżera przyjmowania nieznanych rzeczy - jest to o wiele łatwiejsze niż ich szacowanie. - Sprawdź także prace Steve'a McConnolla na stronie construx.com.
mattnz
2
To jedna z najbardziej błędnych odpowiedzi tutaj. Zawsze możesz oszacować wszystko. Istnieją narzędzia i techniki wspierające to. Jedyną różnicą jest niepewność. Możliwe, że masz 4–5-krotną wariancję między oszacowaniem a rzeczywistą wartością (szczególnie na początku projektu), ale to nie znaczy, że nie powinieneś próbować oszacować, aby służył jako punkt wyjścia do przyszłych oszacowań.
Thomas Owens
2
@ThomasOwens Masz rację, nie powinieneś po prostu odejść. Ale moje śmiałe stwierdzenie miało być interpretowane: nie oszukuj siebie ani oszukuj swojego szefa, ale bądź otwarty na fakt, że ocena będzie trudna! Ponieważ szczerze mówiąc, nie każdy menedżer pytający o szacunki zdaje sobie sprawę z tego, jak trudno jest je wykonać.
Marten Sytema
Z mojego osobistego doświadczenia zawodowego, kiedy wykonuję pracę na własny rachunek na podstawie stałej ceny, moja średnia stawka godzinowa jest znacznie wyższa w przypadku małych projektów (takich jak małe dodatki do istniejących projektów) niż w przypadku dużych projektów (często od zera). To nie jest nawet liniowe. Z perspektywy czasu nie powinienem brać tych większych za ustaloną cenę, a przynajmniej dyskutować z góry, że oszacowanie jest bardzo trudne i starać się przekonać klienta do pracy na innej podstawie, aby nieco rozłożyć ryzyko .
Marten Sytema
3

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ę.

Thomas Owens
źródło
3

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.

Bez szans
źródło
1

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:

  1. 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?”

  2. 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% ...

Aadaam
źródło
-2

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.

mikato
źródło
-4

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.

CWallach
źródło
4
Dlaczego 4? Dlaczego nie 5? 10? 33,3? ... Czy kryje się za tym nauka, czy po prostu wybierasz losową liczbę? Uwzględnienie tego w odpowiedzi może sprawić, że będzie bardziej przydatne.
Bryan Oakley,
w powiązanej notatce, nie wstydź się dużych liczb. Mój kolega oszacował kiedyś poprawkę modułu w 935 (dziewięć-trzy-pięć) dniach. Szef powiedział, że nie mamy tak dużo i zamówił 60 dni. Kolega zrobił to, co było możliwe w 60. Wynik był dość kłopotliwy, ale nigdy nie obwiniano go za to. Muszę przyznać, że 60-dniowa wersja, choć kłopotliwa, pozwoliła nam zdobyć dość ważnego klienta - tj. Nacisk szefa miał całkiem dobry sens biznesowy. BTW w końcu udało nam się ten moduł w kształcie, ale to się stało kilka lat później i wysiłki zajęło były bardziej w pole do gry z 935 szacunków
gnat