一般來說,軟件工程師總是非常樂觀。當他們在計劃軟件項目時,經(jīng)常認為每件事情都會像計劃那樣運行,或者,又會走向另外一個極端。軟件開發(fā)的創(chuàng)造性本質(zhì)意味著我們不能完全預(yù)測會發(fā)生的事情,因此制定一個詳細計劃的關(guān)鍵點很難確定。當有預(yù)想不到的事情引起項目脫離正常軌道時,以上兩種觀點都會導致軟件項目的失敗。
目前,風險管理被認為是IT軟件項目中減少失敗的一種重要手段。當不能很確定地預(yù)測將來事情的時候,可以采用結(jié)構(gòu)化風險管理來發(fā)現(xiàn)計劃中的缺陷,并且采取行動來減少潛在問題發(fā)生的可能性和影響。風險管理意味著危機還沒有發(fā)生之前就對它進行處理。這就提高了項目成功的機會和減少了不可避免風險所產(chǎn)生的后果。
1 什么是風險
所謂“風險”,歸納起來主要有兩種意見,主觀說認為,風險是損失的不確定性;客觀學認為,風險是給定情況下一定時期可能發(fā)生的各種結(jié)果間的差異。它的兩個基本特征是不確定性和損失。IT行業(yè)中的軟件項目開發(fā)是一項可能損失的活動,不管開發(fā)過程如何進行都有可能超出預(yù)算或時間延遲。項目開發(fā)的方式很少能保證開發(fā)工作一定成功,都要冒一定的風險,也就需要進行項目風險分析。在進行項目風險分析時,重要的是要量化不確定的程度和每個風險相當?shù)膿p失程度,為實現(xiàn)這一點就必須要考慮以下問題:
要考慮未來,什么樣的風險會導致軟件項目失敗?
要考慮變化,在用戶需求、開發(fā)技術(shù)、目標、機制及其它與項目有關(guān)的因素的改變將會對按時交付和系統(tǒng)成功產(chǎn)生什么影響?
必須解決選擇問題,應(yīng)采用什么方法和工具,應(yīng)配備多少人力,在質(zhì)量上強調(diào)到什么程度才滿足要求?
要考慮風險類型,是屬于項目風險、技術(shù)風險、商業(yè)風險、管理風險還是預(yù)算風險等?
這些潛在的問題可能會對軟件項目的計劃、成本、技術(shù)、產(chǎn)品的質(zhì)量及團隊的士氣都有負面的影響。風險管理就是在這些潛在的問題對項目造成破壞之前識別、處理和排除。
2 風險管理
項目風險管理實際上就是貫穿在項目開發(fā)過程中的一系列管理步驟,其中包括風險識別、風險估計、風險管理策略、風險解決和風險監(jiān)控。它能讓風險管理者主動“攻擊”風險,進行有效的風險管理。
在項目管理中,建立風險管理策略和在項目的生命周期中不斷控制風險是非常重要的,風險管理包括四個相關(guān)階段:
風險識別 識別風險的方法常用的有風險識別問詢法(座談法、專家法)、財務(wù)報表法、流程圖法、現(xiàn)場觀察法、相關(guān)部門配合法和環(huán)境分析法等。
風險評估 對已識別的風險要進行估計和評價,風險估計的主要任務(wù)是確定風險發(fā)生的概率與后果,風險評價則是確定該風險的經(jīng)濟意義及處理的費/效分析,常用的方法有:概率分布、外推法、多目標分析法等。
風險處理 一般而言,風險處理有三種方法,
①風險控制法,即主動采取措施避免風險,消滅風險,中和風險或采用緊急方案降低風險。
②風險自留,當風險量不大時可以余留風險。
③風險轉(zhuǎn)移。
風險監(jiān)控 包括對風險發(fā)生的監(jiān)督和對風險管理的監(jiān)督,前者是對已識別的風險源進行監(jiān)視和控制,后者是在項目實施過程中監(jiān)督人們認真執(zhí)行風險管理的組織和技術(shù)措施。
在IT軟件項目管理中,應(yīng)該任命一名風險管理者,該管理者的主要職責是在制訂與評估規(guī)劃時,從風險管理的角度對項目規(guī)劃或計劃進行審核并發(fā)表意見,不斷尋找可能出現(xiàn)的任何意外情況,試著指出各個風險的管理策略及常用的管理方法,以隨時處理出現(xiàn)的風險,風險管理者最好是由項目主管以外的人擔任。
3 風險識別
風險識別就是企圖采用系統(tǒng)化的方法,識別某特定項目已知的和可預(yù)測的風險。常用方法是建立“風險條目檢查表”,利用一組提問來幫助項目風險管理者了解在項目和技術(shù)方面有些風險。在“