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