一個(gè)成功的軟件項(xiàng)目首先要有一個(gè)好的起點(diǎn),也是一個(gè)合理的項(xiàng)目計(jì)劃;一個(gè)好的項(xiàng)目計(jì)劃,離不開(kāi)一個(gè)準(zhǔn)確的、可信的、客觀(guān)的項(xiàng)目估算數(shù)據(jù)作為基礎(chǔ)。如何提高估算的準(zhǔn)確性,如何利用項(xiàng)目估算的數(shù)據(jù)來(lái)制定項(xiàng)目計(jì)劃,本文將帶領(lǐng)大家學(xué)習(xí)、理解軟件項(xiàng)目估算的一些佳實(shí)踐。
為什么要對(duì)項(xiàng)目進(jìn)行估算
對(duì)于龐大的、多變的軟件項(xiàng)目來(lái)說(shuō)有著太多的不確定性。之所以要先制定項(xiàng)目計(jì)劃,目的是為了讓項(xiàng)目更加可控。如果項(xiàng)目的計(jì)劃缺乏數(shù)據(jù)進(jìn)行支持,或者根本不進(jìn)行估算,只憑項(xiàng)目管理人員的經(jīng)驗(yàn)進(jìn)行管理,那么項(xiàng)目終會(huì)變成軟件項(xiàng)目常見(jiàn)的“三拍”現(xiàn)象:“首先公司領(lǐng)導(dǎo)拍拍某個(gè)項(xiàng)目經(jīng)理的腦袋,說(shuō)你來(lái)負(fù)責(zé)這個(gè)項(xiàng)目;項(xiàng)目經(jīng)理拍拍胸脯說(shuō)沒(méi)問(wèn)題;后項(xiàng)目失敗的時(shí)候項(xiàng)目經(jīng)理只能拍拍屁股走人”。
當(dāng)然,這只是個(gè)玩笑。不過(guò)由此可見(jiàn)項(xiàng)目估算是項(xiàng)目管理人員深入了解項(xiàng)目的第一步,做到“知己知彼,才能百戰(zhàn)不殆”。
常用的軟件估算方法
軟件可以通過(guò)主觀(guān)和客觀(guān)兩種方法對(duì)其進(jìn)行估算。
主觀(guān)的估算方法可以通過(guò)召集項(xiàng)目團(tuán)隊(duì)成員,或者邀請(qǐng)各方面的專(zhuān)家,共同對(duì)某個(gè)項(xiàng)目的屬性進(jìn)行評(píng)估。參與評(píng)估的每個(gè)人都要單獨(dú)進(jìn)行估算,如果發(fā)現(xiàn)大家對(duì)某個(gè)項(xiàng)目屬性估算的結(jié)果存在較大偏差,那么需要做進(jìn)一步的討論,直到取得共識(shí)為止。對(duì)個(gè)別特殊屬性進(jìn)行主觀(guān)估算時(shí),一定要有直接干系人的參與,例如:對(duì)某個(gè)文檔工作量進(jìn)行估算時(shí),好該文檔的負(fù)責(zé)人參與估算,因?yàn)樗攀墙K的執(zhí)行人。
客觀(guān)的估算方法是利用公司提供的各種度量數(shù)據(jù)進(jìn)行估算,例如:組織級(jí)的生產(chǎn)率,或者其他項(xiàng)目的度量數(shù)據(jù)。本文主要講解項(xiàng)目管理人員如何通過(guò)客觀(guān)的方法對(duì)項(xiàng)目進(jìn)行估算。
項(xiàng)目的哪些屬性可以進(jìn)行估算
軟件項(xiàng)目的屬性有很多,建議至少以下屬性要在項(xiàng)目計(jì)劃時(shí)對(duì)其進(jìn)行估算:
1、 項(xiàng)目規(guī)模
2、 項(xiàng)目工作量
3、 項(xiàng)目所需資源
4、 項(xiàng)目各階段工作量
5、 項(xiàng)目成本
如何對(duì)項(xiàng)目規(guī)模進(jìn)行估算
對(duì)項(xiàng)目規(guī)模進(jìn)行估算是為了將項(xiàng)目的范圍進(jìn)行量化,項(xiàng)目規(guī)模的估算是整個(gè)軟件估算中核心、基礎(chǔ)的環(huán)節(jié),也是整個(gè)估算的第一步。
軟件項(xiàng)目的規(guī)?梢允褂霉δ茳c(diǎn)估算法和代碼行估算法兩種方式,但是作為項(xiàng)目初期階段,建議使用功能點(diǎn)法進(jìn)行估算會(huì)比較合理。具體的功能點(diǎn)估算方法可以參考我之前在ITPUB上發(fā)表的相關(guān)文章。
如何對(duì)項(xiàng)目工作量進(jìn)行估算
在項(xiàng)目規(guī)模的基礎(chǔ)上,可以利用組織級(jí)生產(chǎn)率得到項(xiàng)目總的工作量。例如:一個(gè)公司組織級(jí)生產(chǎn)率如下圖所示,在2008年中期時(shí),該組織每開(kāi)發(fā)一個(gè)功能點(diǎn)需要花費(fèi)1.5個(gè)人/天的工作量。假如該公司某項(xiàng)目有200個(gè)功能點(diǎn),那么該項(xiàng)目的工作量可以通過(guò)以下公式計(jì)算出來(lái):
項(xiàng)目工作量= 200 * 1.5 = 300 人/天
如何對(duì)項(xiàng)目所需資源、各階段工作量進(jìn)行估算
對(duì)這些項(xiàng)目屬性進(jìn)行估算的主要方法是通過(guò)與組織級(jí)度量庫(kù)中的歷史數(shù)據(jù)進(jìn)行對(duì)比,找到相同規(guī)模的歷史項(xiàng)目,參考其數(shù)據(jù),根據(jù)本項(xiàng)目的特點(diǎn)對(duì)相關(guān)屬性進(jìn)行估算。假如本項(xiàng)目與公司之前的某項(xiàng)目A規(guī)模大體相當(dāng),項(xiàng)目A歷史數(shù)據(jù)如表1和表2所示:
表1-項(xiàng)目A使用資源數(shù)