摘要:軟件項(xiàng)目的開發(fā)有很高的失敗率。從20世紀(jì)80年代后期開始,軟件理論界和產(chǎn)業(yè)界開始重視軟件的風(fēng)險(xiǎn)管理,并產(chǎn)生了一系列的風(fēng)險(xiǎn)管理過程模型,這些模型對(duì)風(fēng)險(xiǎn)管理的規(guī)范有積極的意義。文章回顧了風(fēng)險(xiǎn)管理模型的發(fā)展,發(fā)現(xiàn)目前的軟件項(xiàng)目開發(fā)風(fēng)險(xiǎn)管理模型只強(qiáng)調(diào)承包工程方過程,而較少關(guān)注建設(shè)方的參與。這將帶來二方面的不足:第一,建設(shè)方對(duì)項(xiàng)目的參與是成功的重要保證,沒有建設(shè)方的參與的管理過程是不完整的。第二,在信息不對(duì)稱的情況下,軟件項(xiàng)目的開發(fā)風(fēng)險(xiǎn)被轉(zhuǎn)移到建設(shè)方身上。為了有效解決目前模型的不足,文章在原有的風(fēng)險(xiǎn)管理模型基礎(chǔ)上建立軟件項(xiàng)目的建設(shè)方和承包商風(fēng)險(xiǎn)管理的協(xié)同過程模型,并設(shè)計(jì)了相關(guān)的數(shù)據(jù)結(jié)構(gòu)和項(xiàng)目干系人在項(xiàng)目周期的不同階段的參與情況。
關(guān)鍵詞:軟件項(xiàng)目;風(fēng)險(xiǎn)管理;協(xié)同;過程
一、 引言
世界銀行的統(tǒng)計(jì)表明:在發(fā)展中的政府信息系統(tǒng)項(xiàng)目中,只有15%是完全成功的。因此,加強(qiáng)軟件項(xiàng)目開發(fā)中的風(fēng)險(xiǎn)管理是軟件開發(fā)中的重要的工作之一,尤其對(duì)于大型的軟件項(xiàng)目,軟件風(fēng)險(xiǎn)管理的奠基人之一,Charatte認(rèn)為大型軟件項(xiàng)目的管理是風(fēng)險(xiǎn)管理。Microsoft的量化研究表明,在風(fēng)險(xiǎn)管理中投入5%的項(xiàng)目工作可以獲取50%~75%的如期完成的機(jī)會(huì)?梢婏L(fēng)險(xiǎn)管理在軟件開發(fā)中的重要性。風(fēng)險(xiǎn)管理的研究在起源于20世紀(jì)80年代末,經(jīng)過二十多年的發(fā)展,產(chǎn)生了大量的理論成果并對(duì)軟件項(xiàng)目的開發(fā)起到積極的作用。其中,風(fēng)險(xiǎn)管理的過程研究是風(fēng)險(xiǎn)管理的框架和基礎(chǔ),為風(fēng)險(xiǎn)管理提供規(guī)范的模式。本文在分析現(xiàn)有研究的基礎(chǔ)上建立軟件項(xiàng)目的建設(shè)方和承包商風(fēng)險(xiǎn)管理的協(xié)同過程模型,以實(shí)現(xiàn)更加完整的規(guī)范的風(fēng)險(xiǎn)管理。
二、 風(fēng)險(xiǎn)管理過程模型的比較
1. Boehm模型:Boehm于1991年詳細(xì)描述了他的思想體系。Boehm認(rèn)為:軟件風(fēng)險(xiǎn)管理這門學(xué)科的出現(xiàn)是試圖將影響項(xiàng)目成功的風(fēng)險(xiǎn)形式化為一組易用的原則和實(shí)踐的集合,是在風(fēng)險(xiǎn)成為軟件項(xiàng)目返工的主要因素并由此威脅到項(xiàng)目的成功運(yùn)作前,識(shí)別、描述并消除這些風(fēng)險(xiǎn)項(xiàng)。他將風(fēng)險(xiǎn)管理過程歸納成二個(gè)基本步驟:風(fēng)險(xiǎn)評(píng)估和風(fēng)險(xiǎn)控制。其中風(fēng)險(xiǎn)評(píng)估包括風(fēng)險(xiǎn)識(shí)別、風(fēng)險(xiǎn)分析、風(fēng)險(xiǎn)排序;風(fēng)險(xiǎn)控制包括制定風(fēng)險(xiǎn)管理計(jì)劃、解決風(fēng)險(xiǎn)、監(jiān)控風(fēng)險(xiǎn)。
Boehm風(fēng)險(xiǎn)管理理論的核心是維護(hù)和更新十大風(fēng)險(xiǎn)列表。他通過對(duì)一些大型項(xiàng)目進(jìn)行調(diào)查總結(jié)出了軟件項(xiàng)目十大風(fēng)險(xiǎn)列表,其中包括人員短缺、不切實(shí)際的工期和預(yù)算、不合時(shí)宜的需求、開發(fā)了錯(cuò)誤的軟件功能、開發(fā)了錯(cuò)誤的用戶界面、過高的非實(shí)質(zhì)性能要求、接連不斷的需求改變、可外購部件不足、外部已完成任務(wù)不及時(shí)、實(shí)時(shí)性能過低和計(jì)算機(jī)能力有限。在軟件項(xiàng)目開始時(shí)歸納出現(xiàn)在項(xiàng)目的十大風(fēng)險(xiǎn)列表,在項(xiàng)目的生命周期中定期召開會(huì)議去對(duì)列表進(jìn)行更新、評(píng)比。十大風(fēng)險(xiǎn)列表是讓高層經(jīng)理的注意力集中在項(xiàng)目關(guān)鍵成功因素上的有效途徑,可以有效地管理風(fēng)險(xiǎn)并由此減少高層的時(shí)間和精力。
2. Charette模型:1989年Charette設(shè)計(jì)的風(fēng)險(xiǎn)分析和管理的體系分為兩大階段,分別為分析階段和管理階段,每個(gè)階段內(nèi)含三個(gè)過程,這是一個(gè)相互重疊和循環(huán)的模型。Charette同時(shí)為各個(gè)過程提供了相應(yīng)的戰(zhàn)略思路、方法模型和技術(shù)手段。
3. CMU/SEI的CRM(Continuous Risk Management)持續(xù)風(fēng)險(xiǎn)管理模型:CMU/SEI的軟件風(fēng)險(xiǎn)管理原則包括:(1)全局觀點(diǎn);(2)積極的策略;(3)開放的溝通環(huán)境;(4)綜合管理;(5)持續(xù)的過程;(6)共同的目標(biāo);(7)協(xié)調(diào)工作。具體來說是要不斷地評(píng)估可能造成惡劣后果的因素;決定迫切需要處理的風(fēng)險(xiǎn);實(shí)現(xiàn)控制風(fēng)險(xiǎn)的策略;評(píng)測(cè)并確保風(fēng)險(xiǎn)策略實(shí)施的有效性。CRM模型要求在項(xiàng)目生命期的所有階段都關(guān)注風(fēng)險(xiǎn)識(shí)別和管理,它將風(fēng)險(xiǎn)管理劃分為五個(gè)步驟:風(fēng)險(xiǎn)識(shí)別、分析、計(jì)劃、跟蹤、控制。它強(qiáng)調(diào)的是對(duì)風(fēng)險(xiǎn)管理的各個(gè)組成部分的溝通。
4. IEEE風(fēng)險(xiǎn)管理標(biāo)準(zhǔn):IEEE風(fēng)險(xiǎn)管理標(biāo)準(zhǔn)定義了軟件開發(fā)生命周期中的風(fēng)險(xiǎn)管理過程。這個(gè)風(fēng)險(xiǎn)管理過程系統(tǒng)地描述和管理在產(chǎn)品或服務(wù)的生命周期中出現(xiàn)的風(fēng)險(xiǎn)。包括以下活動(dòng):計(jì)劃并實(shí)施風(fēng)險(xiǎn)管理、管理項(xiàng)目風(fēng)險(xiǎn)列表、分析風(fēng)險(xiǎn)、監(jiān)控風(fēng)險(xiǎn)、處理風(fēng)險(xiǎn)、評(píng)估風(fēng)險(xiǎn)管理過程。
5. CMU/SEI的CMMI(Capability Maturity Model Integration)風(fēng)險(xiǎn)管理過程:CMMI是由SEI在CMM基礎(chǔ)上發(fā)展而來。目前,CMMI是全球軟件業(yè)界的管理標(biāo)準(zhǔn)。風(fēng)險(xiǎn)管理過程域在CMMI的第三級(jí),即已定義級(jí)中建立一個(gè)關(guān)鍵過程域(KPA,Key Practice Area)。CMMI認(rèn)為風(fēng)險(xiǎn)管理是一種連續(xù)的前瞻性的過程。它要識(shí)別潛在的可能危及關(guān)鍵目標(biāo)的因素,以便策劃應(yīng)對(duì)風(fēng)險(xiǎn)的活動(dòng)和在必要時(shí)實(shí)施這些活動(dòng),緩解不利的影響終實(shí)現(xiàn)組織的目標(biāo)。CMMI的風(fēng)險(xiǎn)管理被清晰地描述為實(shí)現(xiàn)三個(gè)目標(biāo),每個(gè)目標(biāo)的實(shí)現(xiàn)又通過一系列的活動(dòng)來完成,如圖1示。
該模型的核心是風(fēng)險(xiǎn)庫,實(shí)現(xiàn)各個(gè)目標(biāo)的每個(gè)活動(dòng)都會(huì)更新這個(gè)風(fēng)險(xiǎn)庫。其中活動(dòng)“制訂并維護(hù)風(fēng)險(xiǎn)管理策略”與風(fēng)險(xiǎn)庫的聯(lián)系是一個(gè)雙向的交互過程,即通過采集風(fēng)險(xiǎn)庫中相應(yīng)的數(shù)據(jù)并結(jié)合前一活動(dòng)的輸入來制訂風(fēng)險(xiǎn)管理策略。
6. Microsoft的MSF風(fēng)險(xiǎn)管理模型:MSF(Microsoft Solutions Framework)的風(fēng)險(xiǎn)管理思想是,風(fēng)險(xiǎn)管理必須是主動(dòng)的,它是正式和系統(tǒng)的過程,風(fēng)險(xiǎn)應(yīng)被持續(xù)評(píng)估、監(jiān)控、管理,直到被解決或問題被處理。該模型大的特點(diǎn)是將學(xué)習(xí)活動(dòng)溶入風(fēng)險(xiǎn)管理,強(qiáng)調(diào)了學(xué)習(xí)以前項(xiàng)目經(jīng)驗(yàn)的重要性。
它的風(fēng)險(xiǎn)管理原則是:(1)持續(xù)的評(píng)估;(2)培養(yǎng)開放的溝通環(huán)境:所有組成員應(yīng)參與風(fēng)險(xiǎn)識(shí)別與分析;應(yīng)鼓勵(lì)建立沒有責(zé)備的文化;(3)從經(jīng)驗(yàn)中學(xué)習(xí):學(xué)習(xí)可以大大降低不確定性;強(qiáng)調(diào)組織級(jí)或企業(yè)級(jí)的從項(xiàng)目結(jié)果中學(xué)習(xí)的重要性;(4)責(zé)任分擔(dān):組中任何成員都有義務(wù)進(jìn)行風(fēng)險(xiǎn)管理。
7. Riskit模型:Maryland大學(xué)的Kontio提出Riskit方法,該方法對(duì)于風(fēng)險(xiǎn)管理中的每個(gè)活動(dòng)都提供了詳細(xì)的活動(dòng)執(zhí)行模板,包括活動(dòng)描述、進(jìn)入標(biāo)準(zhǔn)、輸入、輸出、采用的方法和工具、責(zé)任、資源、退出標(biāo)準(zhǔn)。Riskit方法包括以下內(nèi)容。(1)提供風(fēng)險(xiǎn)的明確定義:損失的定義建立在期望的基礎(chǔ)上,即項(xiàng)目的實(shí)際結(jié)果沒有達(dá)到項(xiàng)目相關(guān)者對(duì)項(xiàng)目的期望的程度;(2)明確定義目標(biāo)、限制和其它影響項(xiàng)目成功的因素;(3)采用圖形化的工具Riskit分析圖對(duì)風(fēng)險(xiǎn)建模,定性地記錄風(fēng)險(xiǎn);(4)使用應(yīng)用性損失的概念排列風(fēng)險(xiǎn)的損失;(5)不同相關(guān)者的觀點(diǎn)被明確建模。