[摘 要] 為保證軟件項目管理方法體系的有效性,提高項目成功率,研究了一種定量的、系統的軟件項目管理方法有效性的驗證方法。該方法結合大量的實際項目數據,通過對進度結果的數據修正,保證了數據的可用性;通過對短期、小數據量情況下的數據驗證,保證組織能夠及時獲得項目管理方法的實施效果;通過對長期大數據量情況下的數據驗證,保證組織能夠對項目管理方法的實施效果進行長期的跟蹤。通過對實際應用案例的統計分析發現,這些驗證方法能夠反映出組織所采用項目管理方法的有效性,并據此實現持續改進。
[關鍵詞] 軟件項目管理; 方法; 有效性; 驗證
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2011 . 24. 052
[中圖分類號] TP311.5 [文獻標識碼] A [文章編號] 1673 - 0194(2011)24- 0091- 03
1 引 言
根據對各種軟件項目估算模型的統計分析,各種軟件估算模型估算出來的結果誤差相當大,如果估算的軟件開發成本與實際成本相差不到20%,時間估算相差不到70%,就是相當不錯的結果,就足夠對軟件工程經濟分析及決策提供很大的幫助[1]。可以說軟件項目的管理是關系到軟件項目成敗的一項關鍵活動,因此軟件組織都在不斷地建立軟件項目開發流程,提高軟件項目進度的控制力度和按時完工率,從而提高自己的軟件過程管理能力。隨著組織歷史數據的不斷累積及過程改進分析工作的不斷深入,軟件組織的過程管理能力及項目管理水平也在不斷提高。
但是如何才能知道組織的軟件項目管理水平及過程管理能力是得到了提高,還是沒有變化甚至下降了?如果某一個項目的進度或工期有了明顯的提前,是否說明整個組織的管理能力有了進步?或者說組織有很多項目的工期都比計劃有了明顯的提前,是否就說明組織的過程管理能力有了提高呢?答案是必須根據項目的執行結果對項目管理的有效性進行驗證。只有通過對軟件項目管理結果有效性的不斷驗證,才能判斷組織現在使用的方法是否有效。如有效則繼續使用,并根據經驗進行改進,以期做得更好;若無效,則必須總結教訓查找問題所在,實現對軟件項目管理方法的持續改進完善,增強其有效性。
近年來國內外專家學者針對軟件項目過程管理能力改進的度量指標做了很多探討,有很多對于單個項目實施效果的研究[2-3],但對組織長期的整體項目管理水平提高效果的研究和驗證則很少。針對這些問題,本文提出了一種長期的、多項目數據的效果驗證模型體系。
下面以軟件項目進度估計及實施結果的檢驗為例,來說明軟件項目管理結果驗證的方法模型。為了進行軟件項目實施效果的分析,首先必須對所收集的組織所有項目進度實施結果的偏差數據進行分析和修正,然后建立驗證模型對其總體結果進行驗證,并根據驗證情況確定下一步的改進方向。
2 軟件項目進度實施結果的偏差分析及處理
所謂偏差就是實際進度與計劃進度的差異,通常情況偏差分為兩種:一種是進度提前的情況,稱之為有利偏差;另一種是進度滯后的情況,稱之為不利偏差。收集了組織項目實施結果的數據后,首先必須對偏差數據的正當性進行分析。例如:組織通常需要思考這樣一個問題,提前完工(進度提前)的項目就是好項目嗎?答案是不一定,項目進度晚了固然不好,但提前完工,也有可能會有問題,可能有幾個原因[4]:
(1) 制訂計劃時估計不準確。本來應該5月份完工的項目,估計成10月份完工,結果項目是7月份完工,雖然比計劃有所提前,但仍然不是一個好項目。
(2) 質量沒達到要求或費用超支。
(3) 即使質量達到了要求,費用也沒超支,如果一個項目的一部分提前完工了,也有可能提前過早地占用了資源,而導致項目的總體成本提高。比如說一筆資金,本來準備6月份投入,結果2月份用了,就有可能會提前占用資金。
(4) 因技術改進,導致生產率提高而提前完工,這時就應總結經驗,對組織的過程進行改進。
同樣,對于項目進度滯后的情況也應該從上述這些角度出發,進行多方面的分析。
除了進行上述分析外,還需要進行“帕金森”分析,帕金森有一條定律:“工作會延展到填滿所有的時間” [5]。人們具有以一定速度工作以便在給定時間內完成工作的能力(人力的伸縮性)。例如:假定一個項目的工作量估計是200人月,項目按時完成,花費200人月,這個估計是好的,但不一定是最好的。因為沒有理由相信他們不能在180人月內完成,因為工作被“擴展”了。人們有“擴展工作以填充充裕的時間”的心理。如果估計為200人月,有可能得220人月才能完成,但100人月是肯定完成不了的。所以說一個項目即使正好按計劃完成,也得進行進一步的分析,看人員利用率如何。有時候往往容易出現這樣的情況,時間估計過多,比如說2個月能完成的項目,估計了3個月,結果正好按時完成了;也有可能是3個半月的項目,估計了3個月,也正好3個月完成了。這幾種不同的情況,人員的疲勞程度是不一樣的,所以在進行項目監督與控制的時候,必須考慮到項目人員的這種疲勞程度及“利用率”[6]。
因此,對于收集到的進度偏差數據,要根據具體情況區別對待和分析。只有根據上述分析和修正,剔除了非正常項目后,所得到的“正常的”偏差數據,才能用來進行進一步的項目管理效果的檢驗和驗證。例如:如果一個項目是因為估計不準確而導致的進度提前,那么這個項目的進度提前就不屬于項目管理本身所發揮的作用,在進行實施效果數據分析時,這個項目或者不納入統計范圍,或者經修正后,確定其實質上到底是真的提前了還是滯后了,再將其納入統計分析。
3 組織項目進度實施效果的總體分析
一個組織的項目管理方法體系,必須經過很多年的實踐和理論研究才能逐步建立起來,也必然會經歷一個從不完善到逐步完善的過程。因此,組織在方法體系的完善過程中,應不斷地將所研究的成果應用于實際項目中,進行過程改進,并不斷根據所收集到的經修正后的項目實際實施數據,對組織項目管理的效果進行分析驗證和跟蹤。
3.1 短期小數據量情況下的效果驗證
對于項目管理方法體系的使用,因增加了很多項目管理的環節,一般認為項目的總工作量應該是增加的,進度是滯后的,但因項目實施效率的提高及一些交互環節的減少,實際上經統計項目的總工作量是減少的,進度是提前的。那么應該如何確定一個組織所采取的項目管理手段是否有效,是否真的促進了項目的按時完工率呢?一般情況下可以用數理統計的驗證方法進行驗證[7-8]。對于時間短且數據量較少的情況,可以采用如下方法進行驗證。
(1) 為檢驗某軟件組織所采取的項目進度管理方法是否有效,在這種方法在一個組織實施兩年后,我們隨機地選取了20個在新方法實施前的項目數據,及10個在新方法實施后且經修正后的項目數據進行比較(時間短且數據也少)。數據如下:
使用新方法前,20個項目的平均延期率為:x1 = 30(百分點),S1 = 1.1。
使用新方法后,平均延期率為:x2 = 28.5(百分點),S2 = 1.2。
組織想確定新的方法是否有明顯的效果,如果效果明顯,就會繼續實施;如果效果不明顯,則必須進行改進。根據數理統計的原理,現在可把問題歸結為求U1 - U2的置信度為0.95的置信區間。
由項目開發過程可知,兩總體都近似地服從正態分布,且假設方差相等,兩總體相互獨立。故U1 - U2的一個置信度為(1 - α)的置信區間為:
所以U1 - U2的置信度為0.95的置信區間為:(0.6, 2.4)。
因置信區間的下限大于0,所以認為U1比U2大,可理解為實施新的方法兩年后,項目工期延誤明顯縮短了,即新方法明顯有效。
因在上述證明過程中,做了如下假設:σ12 = σ22,所以必須證明這個假設是成立的。因此,需檢驗假設,取α = 0.1。
H0 ∶ σ12 = σ22
H1 ∶ σ12 > σ22
所以拒絕H0,認為U1遠遠大于U2,
即實施新方法后,項目延期率明顯縮短。
3.2 長期大數據量情況下的效果驗證
除了對項目管理方法實施效果進行短期跟蹤外,還有必要長期跟蹤項目管理方法體系在一個企業集團的實施效果,跟蹤這些方法在這個集團實施多年后的結果有效性。那么應如何跟蹤和統計呢?假如在項目實施5年后,抽取100個該集團軟件開發項目的數據,通過對經修正后“正常”數據的分析,發現已經有60個項目能夠按期完成。為確定其效果是否顯著,現在來求解該集團項目按時完成率p的置信度為0.95的置信區間。
因為樣本容量大于50,且樣本來自(0,1)分布的總體X(要么按時完成,要么按時完不成),因此X的分布律為: f(x;p) = px(1 - p)1 - x,x = 0.1
根據數理統計的相關原理,可知p的近似的置信度為(1 - α)的置信區間為(p1,p2)。
所以p的置信度為0.95的置信區間為(0.50,0.69)。
這就可以說明新的方法實施后,項目的按時完成率得到了非常顯著的提高,項目管理方法體系的效果比較明顯;而在新的方法實施前,雖然也有項目能夠按期或提前完成,但是這種情況是一種偶然現象。
4 結束語
通過對上述實際項目的跟蹤結果的分析,可以證明組織的項目管理方法體系是否有效。如果有效,組織會對現行實施的項目管理方法體系,進行進一步的推廣和使用,以發揮更大的作用;若無效,則必須分析原因,采取措施加以改進。
需要注意的是,隨著組織過程改進工作的進展及控制手段的日益完善,項目的按時完工率和項目管理水平會不斷提高,效果也會越來越明顯。但當其項目管理水平提高到一定程度后,項目基本上都已經能夠按時完工了,且項目過程管理能力提高的幅度也越來越小了。在這種情況下,很難應用本文中的方法進行效果驗證,這也是本文所提出的方法的一個局限性;本文所提出的方法另外一個局限性是監控的周期比較長,一般要等到新方法采用很長一段時間,且已經有了一些項目的實施數據后,才能進行統計,因此不利于對項目管理方法的適時改進。
主要參考文獻
[1] Dolado J J. On the Problem of the Software Cost Function [J]. Information and Software Technology,2001,43(1):61-72.
[2] Sun-Jen Huang,et al. A Comparative Evaluation on the Accuracies of Software Effort Estimates from Clustered Data[J]. Information and Software Technology,2008,50(9/10):879-888.
[3] J Drew Procaccino and June M Verner. Software Project Managers and Project Success: An Exploratory Study [J]. Journal of Systems and Software,2006,79(11):1541-1551.
[4] 張俊光. 軟件項目管理的若干關鍵問題研究[D]. 北京:北京郵電大學,2007:103-104.
[5] 李平. 電子政府與公共服務的改善[J]. 科學學研究,2003,21(5): 496-501.
[6] [印]Pankaj Jalote. 軟件項目管理實踐[M]. 施平安,譯. 北京:清華大學出版社,2003:41.
[7] Norman F Schneidewind. Methodology for Validating Software Metrics [J]. IEEE Transactions on Software Engineering,1992,18(5):410- 422.
[8] Nikolaos Mittas,et al. Improving Analogy-Based Software Cost Estimation by a Resampling Method[J]. Information and Software Technology,2008,50(3):221-230.