5、軟件方程式估算法
軟件方程式是一個(gè)多變量模型,它假設(shè)在軟件開發(fā)項(xiàng)目的整個(gè)生命周期中的一個(gè)特定的工作量分布。該模型是從4000 多個(gè)當(dāng)代的軟件項(xiàng)目中收集的生產(chǎn)率數(shù)據(jù)中導(dǎo)出的公式。初期的方程式較為復(fù)雜,通過,Putnam 和Myers的努力又提出一組簡(jiǎn)化的方程式。當(dāng)然這種方法也是基于長(zhǎng)期的參考數(shù)據(jù)的積累而得到的。
4.6、WBS估算法
這是一種基于WBS(工作任務(wù)分解)的方法,即先把項(xiàng)目任務(wù)進(jìn)行合理的細(xì)分,分到可以確認(rèn)的程度,如某種材料,某種設(shè)備,某一活動(dòng)單元等。然后估算每個(gè)WBS要素的費(fèi)用。采用這一方法的前提條件或先決步驟是:
對(duì)項(xiàng)目需求作出一個(gè)完整的限定。
制定完成任務(wù)所必需的邏輯步驟。
編制WBS表。
項(xiàng)目需求的完整限定應(yīng)包括工作報(bào)告書、規(guī)格書以及總進(jìn)度表。工作報(bào)告書是指實(shí)施項(xiàng)目所需的各項(xiàng)工作的敘述性說明,它應(yīng)確認(rèn)必須達(dá)到的目標(biāo)。如果有資金等限制,該信息也應(yīng)包括在內(nèi)。規(guī)格書是對(duì)工時(shí)、設(shè)備以及材料標(biāo)價(jià)的根據(jù)。它應(yīng)該能使項(xiàng)目人員和用戶了解工時(shí)、設(shè)備以及材料估價(jià)的依據(jù)??傔M(jìn)度表應(yīng)明確項(xiàng)目實(shí)施的主要階段和分界點(diǎn),其中應(yīng)包括長(zhǎng)期定貨、原型試驗(yàn)、設(shè)計(jì)評(píng)審會(huì)議以及其他任何關(guān)鍵的決策點(diǎn)。如果可能,用來指導(dǎo)成本估算的總進(jìn)度表應(yīng)含有項(xiàng)目開始和結(jié)束的日歷時(shí)間。
除了以上介紹的幾種方法外,還有一些其他的方法:類比估算、推測(cè)估算、Standard-component估算法、普特南估算法等。當(dāng)然不同的方法適用于不同的具體環(huán)境,有些方法雖然很好但并不一定適合當(dāng)前的任務(wù)。只有量體裁衣,具體問題具體分析,才能得到盡量合理的估算。
5、估算的戒律
記?。簯?yīng)該滿足于事物的本性所能容許的精確度,當(dāng)只能近似于真理時(shí),不要去尋求絕對(duì)的準(zhǔn)確?? ——亞里斯多德
對(duì)于任何一個(gè)項(xiàng)目經(jīng)理,都知道要慎重估算,但是我們?nèi)匀粫?huì)看到人力資源的浪費(fèi)和財(cái)力資源的匱乏,在許多項(xiàng)目中存在。對(duì)于寶貴的資源,我們不是用得太多,就是根本不夠用。因此,有以下前人總結(jié)出來的一些經(jīng)驗(yàn)以供借鑒。
不要追求完美:就像沒有人能預(yù)測(cè)出未來,如果還沒有完成,就不要企圖完美的結(jié)果。更何況估算的太精確,反而會(huì)失去靈活機(jī)動(dòng)的空間。
不要為滿足預(yù)算而估算:如果這個(gè)項(xiàng)目的預(yù)算根本不能完成100%的任務(wù),那么就不要讓你的團(tuán)隊(duì)委曲求全。正確地反映客觀現(xiàn)狀,不僅可以爭(zhēng)取應(yīng)得的權(quán)利,而且是完成任務(wù)的前提。
不要隨意削減估算結(jié)果:有很多老板喜歡把項(xiàng)目經(jīng)理遞交的估算,不假思索地砍掉一部分。這是一種不負(fù)責(zé)任的做法,如果要削減一定要有理由。
客觀地估算,不貪多不偷減:就像老板不能隨便削減你的估算一樣,你也同樣不能在估算的時(shí)候,貪多或是偷減。貪多必然導(dǎo)致會(huì)浪費(fèi),偷減必然導(dǎo)致不足。這兩個(gè)結(jié)果恐怕都不是一個(gè)合格的項(xiàng)目經(jīng)理的作為。
客觀利用過去的經(jīng)驗(yàn):對(duì)于以往估算的經(jīng)驗(yàn),當(dāng)然是寶貴的財(cái)富,但是如果財(cái)富用錯(cuò)了地方就會(huì)變成垃圾。在使用經(jīng)驗(yàn)時(shí),要注意現(xiàn)在和參考經(jīng)驗(yàn)之間的差異。不要忘記,隨著時(shí)間的推移,計(jì)算機(jī)領(lǐng)域技術(shù)的更新,許多觀念都在發(fā)生著改變。
不要以客戶目標(biāo)作為估算的結(jié)果:客戶是上帝,軟件公司一定要盡力實(shí)現(xiàn)客戶的需求。但我們要實(shí)現(xiàn)的是合理的目標(biāo),況且不能為了完成目標(biāo)而去堆積數(shù)字,這樣豈不是因果倒置了。
不要隱匿不確定的成本:軟件開發(fā)中存在潛在風(fēng)險(xiǎn),是很正常的事情?,F(xiàn)在風(fēng)險(xiǎn)就會(huì)帶來潛在的成本,如:突然一位程序員離職,導(dǎo)致工作進(jìn)度路落后。我們不可能估算到任何一種可能發(fā)生的情況,但有責(zé)任把可能出現(xiàn)的一些關(guān)鍵環(huán)節(jié)列出來。