一個成功的軟件項目首先要有一個好的起點,,也就是一個合理的項目計劃,;一個好的項目計劃,離不開一個準(zhǔn)確的,、可信的,、客觀的項目估算數(shù)據(jù)作為基礎(chǔ)。如何提高估算的準(zhǔn)確性,,如何利用項目估算的數(shù)據(jù)來制定項目計劃,,本文就將帶領(lǐng)大家學(xué)習(xí)、理解軟件項目估算的一些最佳實踐,。
為什么要對項目進(jìn)行估算
對于龐大的,、多變的軟件項目來說有著太多的不確定性,。之所以要先制定項目計劃,目的就是為了讓項目更加可控,。如果項目的計劃缺乏數(shù)據(jù)進(jìn)行支持,,或者根本不進(jìn)行估算,只憑項目管理人員的經(jīng)驗進(jìn)行管理,,那么項目最終就會變成軟件項目常見的“三拍”現(xiàn)象:“首先公司領(lǐng)導(dǎo)拍拍某個項目經(jīng)理的腦袋,,說你來負(fù)責(zé)這個項目;項目經(jīng)理拍拍胸脯說沒問題,;最后項目失敗的時候項目經(jīng)理就只能拍拍屁股走人”,。
當(dāng)然,這只是個玩笑,。不過由此可見項目估算是項目管理人員深入了解項目的第一步,,做到“知己知彼,才能百戰(zhàn)不殆”,。
常用的軟件估算方法
軟件可以通過主觀和客觀兩種方法對其進(jìn)行估算,。
主觀的估算方法可以通過召集項目團(tuán)隊成員,或者邀請各方面的專家,,共同對某個項目的屬性進(jìn)行評估,。參與評估的每個人都要單獨進(jìn)行估算,如果發(fā)現(xiàn)大家對某個項目屬性估算的結(jié)果存在較大偏差,,那么就需要做進(jìn)一步的討論,,直到取得共識為止。對個別特殊屬性進(jìn)行主觀估算時,,一定要有直接干系人的參與,,例如:對某個文檔工作量進(jìn)行估算時,最好該文檔的負(fù)責(zé)人參與估算,,因為他才是最終的執(zhí)行人,。
客觀的估算方法是利用公司提供的各種度量數(shù)據(jù)進(jìn)行估算,例如:組織級的生產(chǎn)率,,或者其他項目的度量數(shù)據(jù),。本文主要講解項目管理人員如何通過客觀的方法對項目進(jìn)行估算。
項目的哪些屬性可以進(jìn)行估算
軟件項目的屬性有很多,,建議至少以下屬性要在項目計劃時對其進(jìn)行估算:
1,、 項目規(guī)模 2、 項目工作量 3,、 項目所需資源 4,、 項目各階段工作量 5、 項目成本
如何對項目規(guī)模進(jìn)行估算
對項目規(guī)模進(jìn)行估算是為了將項目的范圍進(jìn)行量化,,項目規(guī)模的估算是整個軟件估算中最核心,、最基礎(chǔ)的環(huán)節(jié),,也是整個估算的第一步。
軟件項目的規(guī)??梢允褂霉δ茳c估算法和代碼行估算法兩種方式,,但是作為項目初期階段,建議使用功能點法進(jìn)行估算會比較合理,。[信息系統(tǒng)項目管理師網(wǎng)] 具體的功能點估算方法可以參考我之前在ITPUB上發(fā)表的相關(guān)文章,。
如何對項目工作量進(jìn)行估算
在項目規(guī)模的基礎(chǔ)上,可以利用組織級生產(chǎn)率得到項目總的工作量,。例如:一個公司組織級生產(chǎn)率如下圖所示,在2008年中期時,,該組織每開發(fā)一個功能點需要花費1.5個人/天的工作量,。假如該公司某項目有200個功能點,那么該項目的工作量就可以通過以下公式計算出來:
項目工作量= 200 * 1.5 = 300 人/天
如何對項目所需資源,、各階段工作量進(jìn)行估算
對這些項目屬性進(jìn)行估算的主要方法是通過與組織級度量庫中的歷史數(shù)據(jù)進(jìn)行對比,,找到相同規(guī)模的歷史項目,參考其數(shù)據(jù),,根據(jù)本項目的特點對相關(guān)屬性進(jìn)行估算,。假如本項目與公司之前的某項目A規(guī)模大體相當(dāng),項目A歷史數(shù)據(jù)如表1和表2所示:
表1-項目A使用資源數(shù)
人力資源估算
|
設(shè)計人員
|
2人
|
需求人員
|
1人
|
開發(fā)人員
|
4人
|
測試人員
|
3人
|
表2-項目A生命周期各階段工作量分布
瀑布模型生命周期各階段
|
立項階段
|
2.00%
|
需求階段
|
5.00%
|
計劃階段
|
6.00%
|
設(shè)計階段
|
22.00%
|
開發(fā)階段
|
22.00%
|
系統(tǒng)測試階段
|
25.00%
|
用戶驗收階段
|
11.00%
|
結(jié)項階段
|
7.00%
|
兩個項目的規(guī)模相當(dāng),,這是我們進(jìn)行估算的依據(jù),,根據(jù)之前對項目總工作量的估算(300人/天),那么就可以得到本項目各個階段的工作量分布,,如表3所示:
表3-本項目各生命周期工作量分布
瀑布模型生命周期各階段
|
人/天
|
立項階段
|
2.00%
|
6
|
需求階段
|
5.00%
|
15
|
計劃階段
|
6.00%
|
18
|
設(shè)計階段
|
22.00%
|
66
|
開發(fā)階段
|
22.00%
|
66
|
系統(tǒng)測試階段
|
25.00%
|
75
|
用戶驗收階段
|
11.00%
|
33
|
結(jié)項階段
|
7.00%
|
21
|
如何對項目工期進(jìn)行估算
假設(shè)本項目采用瀑布式的開發(fā)模型,,并且所需資源與組織級度量庫中的歷史項目A相同,根據(jù)表3對各個生命周期階段工作量的估算,,以及表1對各種資源的估算,,那么通過表4的計算就可以得到完成本項目所需要的時間。
假如每月按照21個工作日進(jìn)行計算,,那么本項目估計5.82個月后可以結(jié)束,。
表4-對項目周期的估算
生命周期各階段
|
工時數(shù)
人/天
|
參與角色
|
參與人數(shù)
|
天數(shù)
|
立項階段
|
6
|
PM
|
1
|
6
|
需求階段
|
15
|
需求人員
|
1
|
15
|
計劃階段
|
18
|
PM
|
1
|
18
|
設(shè)計階段
|
66
|
設(shè)計人員
|
2
|
33
|
開發(fā)階段
|
66
|
開發(fā)人員
|
4
|
16.5
|
系統(tǒng)測試階段
|
75
|
測試人員
|
3
|
25
|
用戶驗收階段
|
33
|
測試人員 需求人員 PM
|
5
|
6.6
|
結(jié)項階段
|
21
|
全體成員
|
10
|
2.1
|
項目周期(天)
|
122.2
|
如何估算項目的成本
假如本項目所使用的資源與項目A相同,那么就可以參考組織度量庫中2008年各種資源的平均成本,,如下圖所示:
經(jīng)過對項目周期的估算,,可以得知本項目大概需要5.82個月的時間?;谝陨蠑?shù)據(jù)就可以通過表5來對項目的成本進(jìn)行估算,,其結(jié)果如下所示:
表5-本項目成本估算
工種
|
人數(shù)
|
參考數(shù)據(jù)
|
估算成本
|
(元/月)
|
設(shè)計人員
|
2
|
8000
|
16000
|
需求人員
|
1
|
5000
|
5000
|
開發(fā)人員
|
4
|
6000
|
24000
|
測試人員
|
3
|
4500
|
13500
|
項目經(jīng)理
|
1
|
9000
|
9000
|
每月成本(元)
|
67500
|
項目為期5.82個月,總成本(元)
|
39,,2850
|
至此,,對項目的規(guī)模,、成本、工作量,、資源和工期的估算方法和順序就介紹完了,,通過本文的介紹,希望廣大項目管理人員可以掌握項目估算的技巧,。對于使用客觀方法進(jìn)行估算時,,組織級的度量數(shù)據(jù)是關(guān)鍵核心點。另外,,軟件項目始終伴隨著各種各樣的變更,,這正所謂“變化是永恒的,不變是短暫的”,。 作為一個成熟的項目管理者應(yīng)該勇于面對變化,,在每次重大變化后對項目進(jìn)行重新估算是十分必要的。
|