Techniki szacowania - przegląd
Estimation to proces znajdowania oszacowania lub przybliżenia, czyli wartości, której można użyć do jakiegoś celu, nawet jeśli dane wejściowe mogą być niekompletne, niepewne lub niestabilne.
Oszacowanie określa, ile pieniędzy, wysiłku, zasobów i czasu zajmie zbudowanie określonego systemu lub produktu. Szacunek opiera się na -
- Wcześniejsze dane / wcześniejsze doświadczenia
- Dostępne dokumenty / wiedza
- Assumptions
- Zidentyfikowane ryzyka
Cztery podstawowe kroki szacowania projektu oprogramowania to:
- Oszacuj rozmiar produktu deweloperskiego.
- Oszacuj wysiłek w osobo-miesiącach lub osobogodzinach.
- Oszacuj harmonogram w miesiącach kalendarzowych.
- Oszacuj koszt projektu w uzgodnionej walucie.
Uwagi dotyczące szacowania
Szacowanie nie musi być jednorazowym zadaniem w projekcie. Może to mieć miejsce podczas -
- Zdobycie projektu.
- Planowanie projektu.
- Realizacja Projektu w miarę potrzeb.
Zakres projektu należy zrozumieć przed rozpoczęciem procesu szacowania. Pomocne będzie posiadanie historycznych danych projektu.
Metryki projektu mogą zapewnić perspektywę historyczną i cenny wkład do generowania szacunków ilościowych.
Planowanie wymaga od kierowników technicznych i zespołu ds. Oprogramowania podjęcia początkowego zobowiązania, ponieważ prowadzi to do odpowiedzialności i rozliczalności.
Przeszłe doświadczenia mogą bardzo pomóc.
Użyj co najmniej dwóch technik szacowania, aby uzyskać szacunki i uzgodnić otrzymane wartości. Zapoznaj się z Technikami dekompozycji w następnej sekcji, aby dowiedzieć się więcej o uzgadnianiu szacunków.
Plany powinny być iteracyjne i umożliwiać dostosowywanie w miarę upływu czasu i poznawania większej liczby szczegółów.
Ogólne podejście do szacowania projektu
Powszechnie stosowaną metodą szacowania projektu jest Decomposition Technique. Techniki dekompozycji przyjmują podejście dziel i zwyciężaj. Szacowanie rozmiaru, nakładu pracy i kosztów jest wykonywane w sposób stopniowy, poprzez rozbicie projektu na główne funkcje lub powiązane działania inżynierii oprogramowania.
Step 1 - Zrozum zakres oprogramowania, które ma zostać zbudowane.
Step 2 - Wygeneruj oszacowanie rozmiaru oprogramowania.
Zacznij od określenia zakresu.
Podziel oprogramowanie na funkcje, które można oszacować indywidualnie.
Oblicz rozmiar każdej funkcji.
Uzyskaj oszacowanie nakładu pracy i kosztów, stosując wartości rozmiaru do podstawowych wskaźników wydajności.
Połącz oszacowania funkcji, aby uzyskać ogólne oszacowanie dla całego projektu.
Step 3- Wygeneruj oszacowanie nakładu pracy i kosztów. Możesz oszacować nakłady pracy i koszty, dzieląc projekt na powiązane działania związane z inżynierią oprogramowania.
Zidentyfikuj sekwencję czynności, które należy wykonać, aby projekt został ukończony.
Podziel czynności na zadania, które można zmierzyć.
Oszacuj wysiłek (w osobogodzinach / dniach) wymagany do wykonania każdego zadania.
Połącz oszacowania nakładu pracy związane z zadaniami czynności, aby uzyskać oszacowanie czynności.
Uzyskaj jednostki kosztów (tj. Koszt / nakład pracy) dla każdego działania z bazy danych.
Oblicz całkowity wysiłek i koszt dla każdego działania.
Połącz nakłady pracy i szacunki kosztów dla każdego działania, aby uzyskać ogólny nakład pracy i oszacowanie kosztów dla całego projektu.
Step 4- Uzgodnij oszacowania: porównaj wartości otrzymane z kroku 3 z wartościami uzyskanymi w kroku 2. Jeśli oba zestawy oszacowań są zgodne, twoje liczby są wysoce wiarygodne. W przeciwnym razie, jeśli wystąpią bardzo rozbieżne szacunki, należy przeprowadzić dalsze badanie, czy -
Zakres projektu nie został odpowiednio zrozumiany lub został źle zinterpretowany.
Podział funkcji i / lub działalności nie jest dokładny.
Dane historyczne użyte w technikach szacowania są nieodpowiednie dla aplikacji, przestarzałe lub zostały nieprawidłowo zastosowane.
Step 5 - Określić przyczynę rozbieżności, a następnie uzgodnić szacunki.
Dokładność szacowania
Dokładność wskazuje, jak blisko jest coś do rzeczywistości. Za każdym razem, gdy generujesz szacunki, każdy chce wiedzieć, jak bliskie są rzeczywistości. Będziesz chciał, aby każde oszacowanie było jak najbardziej dokładne, biorąc pod uwagę dane, które posiadasz w momencie ich generowania. I oczywiście nie chcesz przedstawiać szacunków w sposób, który wzbudza fałszywe poczucie zaufania do liczb.
Ważnymi czynnikami wpływającymi na dokładność szacunków są:
Dokładność wszystkich danych wejściowych oszacowania.
Dokładność wszelkich obliczeń szacunkowych.
Jak bardzo dane historyczne lub dane branżowe użyte do kalibracji modelu są zgodne z szacowanym projektem.
Przewidywalność procesu tworzenia oprogramowania w Twojej organizacji.
Stabilność zarówno wymagań produktu, jak i środowiska wspierającego wysiłki inżynieryjne oprogramowania.
Czy rzeczywisty projekt był dokładnie zaplanowany, monitorowany i kontrolowany oraz czy nie wystąpiły żadne większe niespodzianki, które spowodowały nieoczekiwane opóźnienia.
Oto kilka wskazówek, jak uzyskać wiarygodne szacunki -
- Szacunki bazowe na podobnych projektach, które zostały już zakończone.
- Użyj stosunkowo prostych technik dekompozycji, aby wygenerować szacunkowe koszty projektu i nakład pracy.
- Użyj jednego lub więcej empirycznych modeli szacowania do oszacowania kosztów oprogramowania i nakładu pracy.
Zapoznaj się z częścią dotyczącą Wytycznych szacowania w tym rozdziale.
Aby zapewnić dokładność, zawsze zaleca się oszacowanie przy użyciu co najmniej dwóch technik i porównanie wyników.
Problemy z szacowaniem
Często kierownicy projektów uciekają się do szacowania harmonogramów, pomijając szacowanie wielkości. Może to być spowodowane harmonogramami określonymi przez najwyższe kierownictwo lub zespół marketingowy. Jednak bez względu na przyczynę, jeśli zostanie to zrobione, na późniejszym etapie trudno byłoby oszacować harmonogramy, aby uwzględnić zmiany zakresu.
Przy szacowaniu można przyjąć pewne założenia. Ważne jest, aby zanotować wszystkie te założenia w arkuszu kosztorysów, ponieważ niektóre nadal nie dokumentują założeń w arkuszach szacunków.
Nawet dobre szacunki mają nieodłączne założenia, ryzyko i niepewność, a mimo to często są traktowane tak, jakby były dokładne.
Najlepszym sposobem wyrażenia szacunków jest szereg możliwych wyników, mówiąc na przykład, że projekt zajmie od 5 do 7 miesięcy, zamiast stwierdzać, że zostanie ukończony w określonym terminie lub zakończy się w ustalonym nr. miesięcy. Uważaj na zobowiązanie się do zakresu, który jest zbyt wąski, ponieważ jest to równoważne zobowiązaniu się do określonej daty.
Możesz również uwzględnić niepewność jako towarzyszącą wartość prawdopodobieństwa. Na przykład istnieje 90% prawdopodobieństwo, że projekt zakończy się w określonym terminie lub wcześniej.
Organizacje nie gromadzą dokładnych danych dotyczących projektów. Ponieważ dokładność szacunków zależy od danych historycznych, byłoby to problemem.
Dla każdego projektu istnieje najkrótszy możliwy harmonogram, który pozwoli Ci uwzględnić wymaganą funkcjonalność i uzyskać wysokiej jakości wydruki. Jeśli kierownictwo i / lub klient mają ograniczenia dotyczące harmonogramu, można negocjować zakres i funkcjonalność, która ma być dostarczona.
Uzgodnij z klientem sposób postępowania ze zmianami zakresu, aby uniknąć przekroczenia harmonogramu.
Brak uwzględnienia nieprzewidzianych okoliczności w ostatecznym oszacowaniu powoduje problemy. Na przykład spotkania, imprezy organizacyjne.
Wykorzystanie zasobów należy uznać za mniej niż 80%. Dzieje się tak, ponieważ zasoby byłyby produktywne tylko przez 80% ich czasu. Jeśli przydzielisz zasoby z wykorzystaniem ponad 80%, z pewnością wystąpią odchylenia.
Wytyczne dotyczące szacowania
Przy wycenie projektu należy mieć na uwadze następujące wskazówki -
Podczas szacowania zapytaj o doświadczenia innych ludzi. Wykorzystaj też swoje własne doświadczenia.
Załóżmy, że zasoby będą produktywne tylko przez 80 procent swojego czasu. Dlatego podczas szacowania należy przyjąć wykorzystanie zasobów na mniej niż 80%.
Zasoby pracujące nad wieloma projektami zajmują więcej czasu na wykonanie zadań ze względu na stracony czas na przełączanie się między nimi.
Uwzględnij czas zarządzania w każdym oszacowaniu.
Zawsze buduj zdolności do rozwiązywania problemów, spotkań i innych nieoczekiwanych wydarzeń.
Daj wystarczająco dużo czasu na oszacowanie projektu. Przyspieszone szacunki są niedokładne i wiążą się z wysokim ryzykiem. W przypadku dużych projektów deweloperskich etap szacowania należy naprawdę traktować jako mini projekt.
Tam, gdzie to możliwe, korzystaj z udokumentowanych danych z podobnych poprzednich projektów organizacji. Daje to najdokładniejsze oszacowanie. Jeśli Twoja organizacja nie przechowuje danych historycznych, teraz jest dobry moment, aby zacząć je gromadzić.
Skorzystaj z szacunków deweloperskich, ponieważ szacunki przygotowane przez osoby inne niż te, które wykonają pracę, będą mniej dokładne.
Skorzystaj z pomocy kilku różnych osób, aby oszacować i zastosować kilka różnych technik szacowania.
Uzgodnij szacunki. Obserwuj zbieżność lub rozrzut między szacunkami. Konwergencja oznacza, że masz dobre oszacowanie. Technikę Wideband Delphi można wykorzystać do zbierania i omawiania szacunków z wykorzystaniem grupy osób, mając na celu uzyskanie dokładnych, obiektywnych szacunków.
Ponownie oszacuj projekt kilka razy w trakcie jego cyklu życia.