與軟件的實(shí)現(xiàn)技術(shù)相關(guān)度太大,大家會(huì)更加偏愛(ài)功能點(diǎn)法。
功能點(diǎn)法和代碼行法有比較長(zhǎng)的歷史,也有很多詳細(xì)資料,大家可以去查閱一下。這方法理論上很理想,但實(shí)踐效果很差,我還沒(méi)有見(jiàn)到一家能成熟應(yīng)用并且取得比較好效果的公司。功能點(diǎn)法和代碼行法有這樣的一些難以解決的問(wèn)題:
1.只適用于數(shù)據(jù)庫(kù)四輪馬車(chē)的操作的項(xiàng)目,高技術(shù)含量、創(chuàng)造性高的軟件不適用,如游戲軟件、計(jì)算機(jī)負(fù)責(zé)計(jì)算與決策軟件等。
2.我們絕大部分項(xiàng)目是需求不明確、設(shè)計(jì)不明確,并且工期很趕的,這兩個(gè)方法都無(wú)法適應(yīng)這樣的現(xiàn)實(shí)條件。需求不明確基本上無(wú)法得到軟件規(guī)模,建筑工程為什么能做到,是因?yàn)樾枨蠛驮O(shè)計(jì)都十分明確了。
3.兩個(gè)方法的規(guī)則都很詳細(xì),要花大量時(shí)間學(xué)習(xí)和實(shí)戰(zhàn)才能掌握。
4.由工作規(guī)模導(dǎo)出工作量這樣的思考方式,難以適用于軟件項(xiàng)目。項(xiàng)目組還是習(xí)慣列出具體的任務(wù),逐條任務(wù)估計(jì)時(shí)間,而且只有這樣的工作方式才能讓項(xiàng)目組感覺(jué)更加踏實(shí)。
Dephi估算法是比較符合大家實(shí)際工作習(xí)慣,也是比較容易掌握的估算辦法。
Delphi法的大致方法如下:
1.找?guī)酌Y深專(zhuān)家,一起對(duì)項(xiàng)目進(jìn)行WBS,把項(xiàng)目的工作分解為十幾條最多二三十條的工作項(xiàng)。
2.全部專(zhuān)家各自估計(jì)每條工作項(xiàng)的工作量,并向其他專(zhuān)家闡述自己的理由。
3.第一次各專(zhuān)家估出來(lái)的結(jié)果可能差異比較大,每位專(zhuān)家聽(tīng)取別人的意見(jiàn)后,重新估算。
4.按照上述辦法,各專(zhuān)家反復(fù)估算幾次,一般次數(shù)就是2-4次,各專(zhuān)家估計(jì)的工作量會(huì)越來(lái)越趨近,這個(gè)時(shí)候取全部專(zhuān)家的平均值。
普遍認(rèn)為各專(zhuān)家的經(jīng)驗(yàn)與知識(shí)水平會(huì)嚴(yán)重影響結(jié)果的準(zhǔn)確性,而我的實(shí)踐經(jīng)驗(yàn)是:應(yīng)該讓項(xiàng)目組每個(gè)人自己來(lái)估算,也就是讓大家來(lái)當(dāng)專(zhuān)家,在這個(gè)基礎(chǔ)上可以再增加一兩名來(lái)自項(xiàng)目組外部的專(zhuān)家。
有時(shí)候覺(jué)得估算這個(gè)問(wèn)題搞得太復(fù)雜了,各式各樣的方法是不是太夸張了?其實(shí)最簡(jiǎn)單的方法就是讓負(fù)責(zé)該項(xiàng)工作的人自己來(lái)估計(jì)工作量,微軟的由底而上的估算方法就是這樣做的,可謂返璞歸真?。?/P>
微軟由底而上的估算方法大致是這樣的:對(duì)項(xiàng)目各項(xiàng)工作進(jìn)行分解后(即俗稱(chēng)的wbs:work breakdown structure,工作分解結(jié)構(gòu)),每個(gè)任務(wù)落實(shí)負(fù)責(zé)人,由負(fù)責(zé)人對(duì)自己的任務(wù)進(jìn)行估計(jì)。這個(gè)辦法有以下好處: