【第169期 October 5, 2011】
 

CMMI與軟體工程

蒙地卡羅於專案管理上的應用-決選最佳流程組合

作者/童敬宇

[發表日期:2011/10/3]


前言

SEI於CMMI(Capability Maturity Model Integration)的高成熟度等級流程領域中,定義專案需利用流程績效基準與模型,組合出最佳的專案流程,並預期到專案目標。流程績效基準的組成為中心線(Central Line, CL)、上管制界限(Upper Control Limit)與下管制界限(Lower Control Chart),做為管制圖監控基準,並定期做基準的更新;流程績效模式是由迴歸式與蒙地卡羅等技術組成,蒙地卡羅方法可依據迴歸公式中的因子分配(Distribution)以及分配參數數值產生因子的預測值以及依變數的結果,由分配與分配參數產生的預測數值為一區間,產生的預測結果亦為區間。該結果可提供專案經理在決選時,利用數據觀點做為選擇的參考。

組織將專案各階段可使用的專案管理方法或專案開發方法分類,並建立各方法的流程績效基準,例如軟體設計文件的審查方式可分為逐步審查(Walkthrough)與檢查/檢驗(Inspection),在執行過程中,不同的審查方法耗費的人力以及審查效能皆會不同,專案經理可依據專案成本或時程需求選擇適合的方法,經由歷史數據的收集,可清楚檢視施行不同方法產生的結果。

蒙地卡羅於專案管理上的應用-決選最佳流程組合

專案會依據專案目標做為方法選擇的基礎,SEI組織推薦Oracle - Crystal Ball軟體作為建立模型的工具。本文章提供一範例(如圖一),給定一公式:Y=1.3X1+3X2+4.5,變數X1 與變數X2會被方法1與方法2影響,進而影響依變數Y。圖中藍色處為專案執行結果Y,將會與專案目標做比較。綠色處為設定變數X1 與變數X2分配與參數,依據方法的選擇而自動調整參考數值。黃色處設定為方法決選功能,為工具模擬並調整的欄位。


《圖一》Oracle - Crystal Ball設定範例


利用Opt-Quest設定依變數Y的目標值並執行模擬(圖二),可得到最佳方法選擇為方法1(圖三),得結果為10.31,以及98.99%的達成率(圖四)。


《圖二》設定依變數目標


《圖三》Oracle模擬結果


《圖四》目標達成比率


以上範例為單一階段(Y)的決選,專案經理可透過多重的階段的組合,例如:Y1、Y2、Y3等,將決選的層次提升至整個專案開發流程,讓工具協助專案經理選定各階段最佳的執行方法。

CMMI 1.2版本中,高成熟度流程領域包含OPP、QPM、CAR與OID。流程績效模式經由組織建立(OPP)並於專案中施行(QPM),期間若有新的解決方案(CAR)或創新項目(OID),可利用流程績效模式預測解決方案或創新項目施行的影響,決定是否施行組織於成本限制下,可利用流程績效模式決定項目實施的優先權,因項目擁有各自歸屬的子流程(如分析、設計或編碼等)與影響的屬性(如審查效能、人力變異、缺失密度等),可利用流程績效模式結合敏感度分析,得到各屬性的影響程度,進而決定項目的施行順序,,如圖五,圖中標明各屬性對於目標影響的百分比,供組織做參考。


《圖五》敏感度分析


結語

流程績效模式為一預測工具,是利用歷史數據所組成,因此歷史數據的品質與完整性,將決定流程績效模式的準確度,從資料的收集到建立的過程,皆需要利用完整的數據品質驗證,以確保可用性,達到流程績效模式的最大效益。