Widziałem w moim miejscu pracy (na uniwersytecie), że większość studentów dokonuje oszacowania oprogramowania kosztu pracy dyplomowej przy użyciu COCOMO . Domyślam się, że ten sposób szacowania kosztów jest nieco stary (daty COCOMO z 1981 r.), Stąd moje pytanie:
How do you estimate costs in your software?
Widziałem takie rzeczy jak:
Koszt = (HoursOfWork + EstimatedIddle) * HourlyRate
Nie tego chcę, szukam właściwie (naukowo) zdefiniowanego modelu kosztów
EDYCJA Znalazłem kilka powiązanych pytań na temat SO:
pricing
estimation
cocomo
David Conde
źródło
źródło
Odpowiedzi:
Jeśli utkniesz w trybie wodospadu, jedyną dość dokładną metodą, którą zastosowałem, jest:
Skończysz z bardzo dokładną liczbą. Nie twierdzę, że to jest dokładne, ale będzie dokładne.
Dokładność zależy wyłącznie od tego, czy uda się wymyślić numer dla każdego zadania na podstawie przeszłych doświadczeń lub znaleźć kogoś, kto to zrobił wcześniej. Im więcej masz doświadczenia, tym lepsze prognozy.
Kiedy wykonasz projekt, śledź swój czas na każde zadanie i zapisz te, które przegapiłeś, abyś mógł je porównać. Z czasem sprawi to, że poczujesz się lepiej.
źródło
Ocena oprogramowania jest niezwykle trudna. Jednym z zastosowanych przeze mnie podejść jest jak najdokładniejsze rozbicie wymagań i oszacowanie każdego elementu osobno. Następnie dodaj „współczynnik krówki”, który może być albo mnożnikiem (podwoić go), albo stałą kwotą (x godzin nieprzewidzianej pracy). Jeśli nie masz dobrego oszacowania wymagań, jest to niemożliwe ze względów praktycznych.
źródło
Przemysł wiele się nauczył w ciągu 30 lat od '81. Takie oszacowanie nigdy nie zadziałało. Ponieważ szaleństwo Agile w zasadzie przepisało krajobraz, używamy „punktów fabularnych” reprezentujących mgliste „trudności porównawcze”. Następnie uzyskujemy „prędkość”, dzięki czemu zarozumiałe gnójki mogą dokonywać oszacowań $$ z pewną ilością danych empirycznych.
źródło
Nauczyłem się kilku „rygorystycznych” podejść, takich jak szacunki punktów funkcyjnych i niektóre ich odmiany, które zostały zaprojektowane do nowoczesnych zastosowań. Myślę, że część tych podejść, która jest cenna, polega na tym, że wymusza bardziej szczegółową analizę znanych wymagań, niż mogłabym je podać.
Uzyskanie dobrego zestawu danych do pracy jest bardzo trudne, nawet jeśli masz dobry model. Pomiar wydajności jest trudny. Ludzie grają prawie każdą metryką.
Przestałem go używać, ponieważ moja organizacja jest zbyt dysfunkcjonalna, aby korzystać z oszacowań oprogramowania, ale mam pewien szacunek dla grupy Cost Xpert i jej narzędzia; ale jest to bardzo drogie i prawdopodobnie nie warte kosztów i krzywej uczenia się w zdecydowanej większości organizacji.
źródło
Bardzo trudno jest oszacować wysiłki i koszty, ale jeśli chcesz czegoś bardziej precyzyjnego, to:
podzielić HoursOfWork na 3 części:
usuń EstimatedIddle.
Zwróć uwagę, że wszystko, co trwa dłużej niż 8 godzin, spowoduje ogromny błąd.
źródło
Zwykle dzielimy pełny zakres pracy na główne moduły / elementy, które można by uznać za podprojekt. Innymi słowy, są to części robocze, które klient uważa za oddzielne części projektu i które klient chce uzyskać osobno.
Po zakończeniu dzielimy każdy moduł na zadania, podzadania, a nawet mniejsze podzadania, aby każdy z nich można było dość łatwo oszacować, a oszacowanie zajmie od jednej do dziesięciu roboczogodzin. W ten sposób otrzymujemy szczegółowy podział zakresu prac dla projektu.
Ostatnim krokiem jest rozdzielenie zadań między kamienie milowe. Robimy to w taki sposób, aby po każdym kamienia milowym klient uzyskał widoczne wyniki. Pomaga to przejść jeden kamień milowy i przejść do następnego. W końcu otrzymujemy coś takiego:
Moduł 1
Początkowo zrobiliśmy to za pomocą arkusza programu Excel. Ale ponad dwa lata temu zaczęliśmy do tego używać oprogramowania. Istnieje kilka podobnych produktów, które pomagają w tym www.evenflow.com , www.swproposal.com i kilka innych. Nie pamiętam wszystkich list. Przeprowadziliśmy badania dawno temu. Mam nadzieję, że to może pomóc.
Dobre pytanie brzmi: jak dokładnie oszacować. Według nas nie ma 100% poprawnych szacunków. Jedynym sposobem jest podzielenie pełnego zakresu pracy na możliwie najmniejsze zadania. Im mniejsze zadania, tym bardziej szczegółowy przegląd i analiza wykonywanego projektu. Tak więc i tak zwiększa dokładność.
źródło