0 引言
目前軟件開發(fā)無論是技術方法還是開發(fā)工具都取得了很大的進步,但是軟件項目開發(fā)超時、超支,甚至開發(fā)結果不能滿足用戶需求而根本沒有得到實際使用的情況仍然比比皆是。著名的CHAOS報告(2003)指出:82%的軟件項目交付延期,66%的軟件項目失敗。
KPMG報告(1995)中對項目失控企業(yè)的調(diào)查顯示,55%的失控項目沒有實行過任何風險管理,而在38%實行了風險管理(有些調(diào)查者不知道是否實行了風險管理)的項目中,有50%的項目在啟動之后就再也沒有管理過風險。
軟件項目失敗或失控的重要原因是對軟件項目開發(fā)過程中自始至終存在著的種種風險認識不夠,管理不到位。在很多的情況下,軟件開發(fā)人員往往會忽略掉軟件項目的風險管理,有的不知道風險管理到底應該做些什么。
風險管理作為項目管理中最容易被忽略而且是最難以管理的環(huán)節(jié)已經(jīng)日益引起人們的重視。目前國內(nèi)外的項目管理研究大部分還是針對工程項目的,專門針對軟件項目的還很少。因此,對于軟件項目中的風險管理仍需要進一步的研究。
1 軟件項目的常見風險
美國電氣和電子工程師協(xié)會(IEEE)給出了風險的定義:一種事件、狀態(tài)發(fā)生的可能性,這種可能性會帶來嚴重的后果或者潛在的問題。風險是一種客觀存在,風險與效益同存,只有正視風險才能有效地規(guī)避風險。
軟件項目開發(fā)是帶有可能導致?lián)p失的風險的生產(chǎn)活動,軟件開發(fā)過程有可能超出預算或時間延遲,原計劃項目開發(fā)的方式不一定能保證開發(fā)工作一定成功。軟件作為一種抽象的邏輯實體,軟件產(chǎn)品是智力產(chǎn)品,軟件開發(fā)受多方面因素的影響。
這些特點使得軟件項目具有別于其他項目的復雜性。軟件項目有以下五類常見風險:
(1)產(chǎn)品規(guī)模風險。項目的風險是直接與產(chǎn)品的規(guī)模成正比的。與軟件規(guī)模相關的常見風險因素有:①估算產(chǎn)品的規(guī)模的方法(代碼行、功能點、文件的數(shù)目);②產(chǎn)品規(guī)模估算的可信度;③產(chǎn)品規(guī)模與以前產(chǎn)品規(guī)模平均值的偏差;④產(chǎn)品的用戶數(shù);⑤復用的軟件數(shù)。
(2)需求風險。很多項目在確定需求時都面臨著一些不確定性和混亂。當在項目早期容忍了這些不確定性,并且在項目進展過程當中得不到解決,這些問題就會對項目的成功造成很大威脅。如果不控制與需求相關的風險因素,那么就很有可能產(chǎn)生錯誤的產(chǎn)品。
與需求相關的風險因素有:①對產(chǎn)品需求缺少認同;②在需求分析過程中客戶參與不夠;③由于不確定的需要導致新的市場;④缺少有效的需求變化管理過程;⑤對需求的變化缺少相關分析。
(3)相關性風險。許多風險都是因為項目的外部環(huán)境或因素的相關性產(chǎn)生的。經(jīng)常不能很好地控制外部的相關性,當外部環(huán)境或因素改變時,必然造成項目成本預算的偏差,造成項目成本風險的增加。
因此緩解策略應該包括可能性計劃,以便從第二資源或協(xié)同工作資源中取得必要的組成部分,并且預先覺察潛在的問題,規(guī)避風險或?qū)L險成本控制在可接受范圍內(nèi)。
與外部環(huán)境相關的因素有:①客戶供應條目或信息;②內(nèi)部或外部轉(zhuǎn)包商的關系;③交互成員或交互團體依賴性;④經(jīng)驗豐富人員的可得性;⑤項目的復用性。
(4)管理風險。在大部分項目里,項目經(jīng)理經(jīng)常是寫項目風險管理計劃的人,并且大部分人都不希望在公共場合暴露自己的弱點。然而,這些問題可能會使項目的成功變得更加困難。如果不正視這些棘手的問題,它們就很有可能在項目的某個階段影響項目。
當定義了項目追蹤過程并且明晰項目角色和責任,就能處理這些風險因素:①計劃和任務定義不夠充分;②實際項目狀態(tài)與計劃的差異;③不切實際的承