Jak delate kalkulace, casove odhady? rubrika: Návrh
Jak u vas delate kalkulace? Jedete podle nejake metodik, cocomo, funkcni body, nebo kalkulace pali senior programatori podle sveho nejlepsiho vedomi a svedomi?
Delate po realizaci projektu vyhodnoceni kalkulace, tj. co se presvyhlo a proc?
Nasobite kalkulace nakonci nejakym koeficientem, magickou konstantou, ktera ma prave navysit kalkulaci o jistou neznamou v podobe nejasnosti plynoucich ze zadani, podceneni problemu programatorem?
Management firem si obvykle plete slovo "odhad" se slovem "závazek". A to jak ve vztahu ke svým zaměstnancům, tak hlavně ve vztahu ke klientovi. Nikdo pak nevysvětlí klientovi to, že v úvodní fázi projektu je nejistota tohoto odhadu někde mezi 0.25 násobkem až 4 násobkem odhadu. Z této mýlky pak vzniká drtivá většina problémů...
Když jsem dělal odhady, tak jsem se snažil problém dekomponovat alespoň na základní celky (na ty nejmenší, které byly v té které fázi projektu možné) a odhadul jsem 3 možnosti. Dobu potřebnou k dokončení s 10% pravděpodobností (de facto ideální případ), dobu dokončení s 50% pravděpodobností (očekávaný případ) a dobu dokončení s 90% pravděpodobností. Není lehké trefit se s těmi pravděpodobnostmí, ale dá se to naučit :-) Odhadovaný čas se pak přepočítal podle jednoduchého vzorce: odhad = (10%odhad + (4 * 50%odhad) + 90% odhad)/6 Tohle je jedna ze standardních metodik při vytváření odhadů. Já jsem nakonec ještě celý odhad upravil "osobním multiplikátorem" protože o sobě vím, že ač se snažím, stále jsem spíše optimistou. Nutno podotknout, že skoro vždycky jsem se trefil v rozmezí do 20% okolo výsledného času, což je podle mnoha zdrojů skvělý výsledek :-)
Takže například: vytvoření modelu databáze
10% pravděpodobnost - 2 dny
50% pravděpodobnost - 5 dní
90% pravděpodobnost - 15 dní (musím si být jistný, že se to fakt na 90% stihne v tomhle čase)
odhad = (2+(4*5)+15)/6 = 6.1 dne zaokrouhluji na 7 dní (protože se snažím být v úvodní fázi projektu pesimistou :-))
Nejpřesnější odhady se ale dělají na základě zkušeností s týmem, s konkrétními projekty a konkrétními úkoly. Proto je dobré každý projekt sledovat a mít z něho i různá data o původních odhadech, problémech a finálních časech realizace. Z těchto dat je možné se následně poučit a každý další odhad projektu o podobném rozsahu je přesnější, než ten předchozí.
Jinak doporučuji knihu od nakladatelství Computer Press od Steve McConnella Odhadovaní softwarových projektů :-)
Pro zobrazení všech 5 odpovědí se prosím přihlaste:
Nebo se přihlaste jménem a heslem:
Komentáře