1軟件項目風險管理概述
1.1軟件項目風險定義
軟件開發(fā)項目的風險為軟件項目在整個生命周期內,由于受各種環(huán)境的不確定性因素的影響,實際發(fā)生的成本、進度、質量等與預期結果的不利偏差。軟件項目的風險具有以下的幾個特點:
第一,對于項目各組成部分之間的復雜關系,任何個人都不可能徹底地了解。
第二,項目各個組成部分之間不是簡單的線性關系。
第三,項目時刻處于動態(tài)變化之中,平衡狀態(tài)即使出現也只能是短暫的。
第四,項目管理者不僅要面對技術和經濟問題,還要面臨一些非常復雜、非線性和不確定性極高的問題。
1.2軟件項目風險管理
軟件項目風險管理是對有關軟件項目、軟件開發(fā)過程和軟件產品損失的可能性,它涉及操作過程、組織過程和合同等相關參數,主要包括資源制約、外界因素、供應商關系或合同制約的管理。Boehom認為軟件風險管理指的是“試圖以一種可行的原則和實踐,規(guī)范化地控制影響項目成功的風險,其目的是辨識、描述和消除風險因素,以免它們威脅軟件的成功運作?!盚all認為軟件風險管理是對影響軟件項目、過程或產品的風險進行估計和控制的實踐過程,該實踐圍繞目標設定、項目計劃、執(zhí)行、度量、改進和發(fā)現新信息六大科目展開。SEI在軟件工程體系中提出軟件風險管理是有關管理威脅開發(fā)軟件產品計劃風險的概念、方法和技術,包括風險辨識、分析、監(jiān)控、減輕和計劃。具體分成三個知識單元:風險分析、風險管理計劃和風險監(jiān)控。通過以上軟件風險項目管理的不同觀點,可以歸納出軟件風險管理是一個為了避免和減小軟件項目失敗的風險,對軟件風險進行識別、分析、計劃、監(jiān)控的管理過程。
2經典軟件項目風險管理模型
2.1 Boehm體系
Boehm于1991年詳細描述了他的思想體系,其中把風險管理活動分成兩大階段,每一階段含有三個步驟:第一階段,風險估計階段。此階段可分為:風險辨識、風險分析,風險排序三個步驟。第二,風險控制階段。此階段可分為:編制風險管理計劃,風險解決,風險監(jiān)督三個步驟。每一步驟都備有不少的相關實現技術,例如,風險辨識中給出了10大軟件風險因素清單。同時還推薦了各個因素的相關處理意見及方法。從該清單出發(fā),經理和工程師們能夠進一步細化風險因素,并加以評估和化解。
2.2 Charette體系
1989年Charette設計了稱為風險分析和管理的體系,兩大階段分別為分析階段和管理階段,每個階段都內含三個過程,風險分析階段分為:辨識、估計、評價;風險管理階段分為:計劃、控制、監(jiān)督。每個階段內的過程活動并不能完全分離,有相互重疊甚至交錯反復的現象。Charette同時為各個過程提供了相應的戰(zhàn)略思路、方法模型和技術手段,特別在風險的辨識和估計過程中,其中大多數
是運籌學、系統(tǒng)科學中的模型應用。
2.3 SEI體系
SEI在軟件風險管理方面作了大量的工作,1999年前后分別以技術報告和手冊等形式公布了基于分類的風險辨識(TBQ)、連續(xù)風險管理(CRM)、軟件風險評估(SRE)、軟件采購風險管理成熟度模型(RM-CMM)和團隊風險管理(TRM)。完整思想是想以TRM為框架,貫穿CRM思想,依托SRE過程,以TBQ等為基本手段,配合軟件能力成熟度模型(SW-CMM)和(SA-CMM)完成軟件的風險管理。其中CRM思想如上圖1所示,SRE過程分為合同簽訂、風險辨識和分析(RI&A)、中間報告、緩和戰(zhàn)略計劃(MSP)和最終報告5個階段。SA-CMM與SW-CMM類似,前者是對獲取軟件產品或服務一方組織管理能力的描述,后者是對開發(fā)組織過程能力的描述。RM-KPA的結構包括目標、為達成目標