另外,我們可以依據風險條目檢查表,制作風險控制概圖(見圖1),讓項目管理和實施人員能很直觀的看到在項目開發個階段的風險存在狀況和各風險的大小,并采取相應措施。從風險發生的概率來看,需求風險和管理風險對項目成敗影響大,當一個軟件項目開發團隊接手項目后,都是按照習慣性的方式來開發軟件。需求風險意識比較淡薄,軟件需求分析階段的完成的不夠細致,忽略和很多軟件開發必要的內容。在整個軟件開發過程中需求分析階段的風險控制尤為重要,如果控制不好,對軟件開發項目影響巨大,甚至是失敗。管理風險實際上是項目開發管理層,對項目開發的風險的意識反映。國內的軟件企業大多規模較小,企業年輕,開發經驗不足,軟件工程師較年輕,缺少開大型軟件項目的經驗,在管理方面缺少經驗,特別是風險管理,更是缺乏。
2、風險管理
風險管理應是貫穿軟件項目開發始末的一項重要任務,其中包括風險識別、風險評估、風險計劃、風險解決和風險監控。它能讓風險管理者主動“規避”風險,進行有效的風險管理。風險管理模型有:SEI風險管理模型、Riskit風險管理模型、SoftRisk風險管理模型、IEEE風險管理過程模型、CMMI風險管理模型、MSF風險管理模型等。在項目管理中,建立風險管理策略,在項目的生命周期中不斷控制風險是非常重要的,風險管理主要包括五個階段:
(1)風險識別:識別風險的方法常用的有現場觀察法、座談法、流程圖法、財務報表法、相關部門配合法和環境分析法等。
(2) 風險評估:對已識別的風險要進行估計和評價,風險估計的主要任務是確定風險發生的概率與后果,風險評價則是確定該風險的經濟意義及處理的費/效分析,常用的方法有:概率分布、外推法、多目標分析法等。
(3) 計劃進度:按照評估后的風險結果,制定相應的風險管理進度表,為后續的風險管理提供參考。
(4) 風險處理:一般而言,風險處理有三種方法,① 風險控制法,即主動采取措施避免風險,消滅風險,中和風險或采用緊急方案降低風險。② 風險自留,當風險量不大時可以余留風險。③ 風險轉移。
(5) 風險監控:包括對風險發生的監督和對風險管理的監督,前者是對已識別的風險源進行監視和控制,后者是在項目實施過程中監督人們認真執行風險管理的組織和技術措施。
3、風險控制
(1)建立有效的風險控制的組織機構
①設置風險管理崗位:在軟件開發項目管理過程中設置風險管理崗位,該崗位的主要職責是在制訂與評估規劃時,從風險管理的角度對項目規劃或計劃進行審核并發表意見,不斷尋找可能出現的任何意外情況,試著指出各個風險的管理策略及常用的管理方法,以隨時處理出現的風險,風險管理者好是由項目主管以外的人擔任。風險管理崗位的人數依據項目大小來決定,一般2—3人較為適合。
②雙項目經理:為項目開發項目設定兩個項目經理崗位,一個負責技術崗位,另一個負責管理崗位。目前,國內的軟件開發企業的項目經理一般都是一名,而且是技術出生的占多數,他們主要擅長的是技術研發,在管理方面先天不足,這不利于項目風險管理和控制。通過增加專門的管理經理崗位,可以彌補技術出生的項目經理的不足,提升軟件開發項目的管理水平。而且這樣的經驗也已得到了國外業界大多企業的認可。
(2) 建立有效的風險控制管理過程
風險管理過程包括培訓,風險識別、風險分析、風險計劃、執行計劃、跟蹤計劃等活動,有效的風險管理過程應是學習型的、持續的和不斷改進的。軟件企業應建立自己的風險管理數據庫作為風險管理的基礎,并在實施中不斷地更新和完善。
根據企業和項目的實際情況,進行科學的項目風險和控制,對項目的成功研發有著舉足輕重的意義。在項目開發的過程中,進行必要的項目風險分析,制定符合項目特點的風險評估和監督機制,特別是要定期對項目的風險狀況進行評估和監管,發現意外風險或者是風險超出預期的一定要重點關照。發現問題要立即上報,盡快解決。并建立風險監管日志,實行“崗位負責制”,將軟件開發項目的風險降到低。