王秋芹等
摘要:軟件項目風險管理是一門新興的學科。近年來,出現(xiàn)了一系列軟件項目風險管理方法,取得了相應(yīng)的成果。介紹了軟件項目風險管理相關(guān)概念,闡述了軟件項目風險管理工具和方法,并進行了比較分校。
關(guān)鍵詞:風險;軟件項目;風險管理;
中圖分類號:F069·9 文獻標識碼:A
文章編號:1006-4311(2009)11-0094-03
0引言
隨著社會需求的增加和計算機技術(shù)的迅速發(fā)展,軟件產(chǎn)業(yè)在經(jīng)濟發(fā)展中的地位日趨重要。但是,由于軟件產(chǎn)品的純知識性,隨之而來的軟件項目高失敗率也成為一個焦點。20世紀80年代末,軟件項目風險管理作為一門學科應(yīng)運而生。經(jīng)過近30年的發(fā)展,出現(xiàn)了一系列的軟件項目風險管理工具和方法。
由于對風險管理技術(shù)和實踐缺少了解,風險管理技術(shù)卻沒有得到廣泛的應(yīng)用。鑒于此原因,本文對近年來出現(xiàn)的一些風險管理方法進行分析與比較,以期對軟件開發(fā)企業(yè)起到一定的幫助作用。
1軟件項目風險管理定義
SEI認為[1],“風險”就是承受損失的不確定性。風險管理是指在項目中含有過程、方法和工具的管理風險實踐,它建立了預(yù)先決策的規(guī)范環(huán)境,使得:①連續(xù)地評估風險;②明確了哪些風險因重要而需要處理;③③實施處理這些風險的戰(zhàn)略[1]。Hall[2]認為風險管理是評估和控制影響軟件項目、過程或產(chǎn)品的風險的實踐,該實踐圍繞目標設(shè)定、項目計劃、執(zhí)行、度量、改進和發(fā)現(xiàn)新信息 6 部分展開。
Boehm認為[3] ,軟件風險管理指的是“試圖以一種可行的原則和實踐,規(guī)范化地控制影響項目成功的風險,其目的是辨識、描述和消除風險因素,以免它們威脅軟件的成功運作”。
2軟件風險管理技術(shù)、工具和方法
經(jīng)過近30年的發(fā)展,軟件項目風險管理研究中出現(xiàn)了一系列的技術(shù)、工具和方法。其中,軟件工程研究所(SEI)為整個風險管理提出了一整套的標準步驟。這篇論文將對具有代表性的6個軟件項目風險管理工具和方法進行介紹和分析。
2.1 軟件風險評估(SRE)技術(shù)
SRE 模式是由SEI開發(fā)的,旨在對與系統(tǒng)相關(guān)的風險進行識別、分析、溝通、緩解。SRE系統(tǒng)包括風險管理流程、軟件開發(fā)風險分類圖(SDRT)以及基于問卷的分類法(TBQ)。該模型有五個過程,分別為風險識別、風險分析、計劃、風險跟蹤和風險控制,即對軟件項目中存在的風險行識別并加以分析評估,對風險進行優(yōu)進化排序, 并對TOP風險加以管理,制定相應(yīng)的應(yīng)對計劃,最后進行跟蹤控制。
SRE不但是一種診斷工具而且還是一種決策工具。該技術(shù)從產(chǎn)品,過程和約束條件上進行風險處理,識別和分類。另外,項目成員參與風險識別與分析過程,并設(shè)法規(guī)避風險領(lǐng)域以面對自己的開發(fā)計劃。因此,項目經(jīng)理可以在早期階段了解項目風險。
2.2 團隊風險管理(TRM)技術(shù)
Ronald P·Higuera, David P·Gluch, Richard L· Murphy 指出,團隊風險管理是指“在軟件開發(fā)項目生命周期的各個階段中,所有項目直接涉及到包括組織,團隊,部門和代理等都作為團隊的參與者參與其中,協(xié)同進行對組織結(jié)構(gòu)和操作活動的風險管理。團隊風險管理,為政府和承包商提供了過程、方法和工具,從而使這兩個組織都能夠單獨的或者共同的參與決策過程,從而防患于未然[4]。”團隊風險管理活動使所有人包括從開發(fā)者到客戶都參與到一個組織當中。這種技術(shù)確保通過項目可以反復(fù)地和協(xié)作地進行持續(xù)風險管理[5]。TRM工作程序是風險識別,定期評估和分析新風險,計劃資源的合理利用以降低風險,風險跟蹤和風險規(guī)范行動,開始風險控制并將之變成問題,最終,項目中的伙伴關(guān)于風險開始溝通。
2.3 Softrisk 模型
Softrisk[6]風險管理技術(shù)是由于一些傳統(tǒng)的風險管理技術(shù)存在缺陷的情況下出現(xiàn)的。Softrisk模型結(jié)合其它項目管理來探討風險管理,確保了風險管理自動化并且適用于任何類型和規(guī)模的項目[7]。Ayad Ali Keshlaf,Khairuddin Hashim指出, Softrisk模型“是建立在一種思想基礎(chǔ)上設(shè)計出來的,這種思想就是風險文檔化和集中注意力在最大風險上是節(jié)省開發(fā)者時間和精力并且在降低軟件風險上能達到好的結(jié)果的最好的方法”[6]。
模型步驟概括如下[6]:
Softrisk模型第一步就是風險識別。Softrisk模型識別不僅針對可能發(fā)生在任何類型項目的一般風險也針對僅發(fā)生在特定項目的特定風險。第二步就是對第一步中識別出的每一種風險都要確定它發(fā)生的概率及其影響。風險的概率和影響都由特殊的風險清單進行評估。利用風險清單,將風險分為很低,低,中等,高,很高五類。第三步,風險文檔化階段。在這一階段,Softrisk將所有一般的和特別的風險數(shù)據(jù)文檔化。這個文檔用來跟蹤項目情況、統(tǒng)計業(yè)務(wù)和預(yù)測未來風險。第四步,風險評估。Ayad Ali Keshlaf, Khairuddin Hashim定義了風險暴露(RE)公式:
RE=風險發(fā)生的概率*風險造成的影響
第五步,排序。RE值是用來對所有風險進行分類并列出十大風險。第六步,把一圖形分成紅、黃、藍三個區(qū)域來表示RE值。第七步,控制階段。根據(jù)風險嚴重程度來選擇一個合適的風險減少技術(shù)。這項技術(shù)可以是緩解偶然性或危機計劃。在應(yīng)用了這種技術(shù)后,再估計,再評估,再排序是必須的。最后一步,確定沒有任何風險存在。如果有新的風險,就要再轉(zhuǎn)到第一步。
2.4 ARMOR
M·R·Lu, J·S·Yu, S·R·Dalal認為, ARMOR(Analyzer for Reducing Module Operational Risk)“是一種自動識別軟件項目模塊操作風險的軟件風險分析工具”[8]。ARMOR的工作程序是訪問數(shù)據(jù)倉庫,項目數(shù)據(jù)庫,失敗數(shù)據(jù)庫和項目開發(fā)數(shù)據(jù)庫。該工具創(chuàng)建風險模型,并顯示項目管理的各種統(tǒng)計數(shù)據(jù)。通過提高用戶界面,簡化了風險建模程序。ARMOR建立了可行的項目評估風險模型,能夠衡量軟件項目風險。并且可以識別出風險源,指出如何提高軟件項目以減少它們的風險水平,并決定數(shù)據(jù)資料得來的風險模型的有效性。
在這個工具中,用戶可以將軟件風險分布的各種統(tǒng)計數(shù)據(jù)顯示出來。最后,用戶應(yīng)用回歸分析驗證風險模型的有效性。經(jīng)驗證的風險模型通常保存在一個模型庫。該模型將進一步應(yīng)用于其它項目或完全不相關(guān)的項目當中。
2.5 Riskit模型
Riskit方法是由Maryland大學提出的,目的是為了支持系統(tǒng)風險分析,避免危險區(qū)域的出現(xiàn),并使用合理的步驟評估風險。Riskit方法使用了圖形形式化工具,支持在定量分析之前對風險情景的定性分析。該方法根據(jù)歷史數(shù)據(jù)的有效性,準確的評估效用理論以其對風險進行量級,其特征就是支持多目標和利益相關(guān)者的多項需要。Riskit分析圖是Riskit模型的一種圖形形式,用來描述風險。使用Riskit分析圖不同的是使風險得到了明確的定義,因此,它比口頭交流更加形式化。Riskit分析圖在Riskit程序中將風險分解成風險元素。
2.6 基于CMM的軟件風險控制優(yōu)化模型
在基于CMM的模型中,軟件風險評估和風險控制遵循CMM(能力成熟度模型)框架。在這個模型中,過程數(shù)據(jù)庫用來識別風險和制定相應(yīng)的風險緩解計劃[9]。此模型在相似項目歷史數(shù)據(jù)基礎(chǔ)上實行軟件風險控制策略[10]。在這個模型中,軟件風險管理過程分成兩個活動:軟件風險評估和軟件風險控制。軟件風險評估主要是識別風險源,找出它們的潛在影響因素,最終確定風險的優(yōu)先級。軟件風險控制主要是制定風險緩解計劃,監(jiān)控風險情況,啟動風險緩解計劃,并調(diào)整計劃。對風險進行識別和優(yōu)化后,制定結(jié)構(gòu)化的計劃以使列表中高風險的影響程度最小化。其中,過程數(shù)據(jù)庫或風險庫對于識別和制定風險控制決策起著重要作用。
3比較與分析
軟件風險管理是一種新興學科,目標就是在風險因素對軟件的成功運作構(gòu)成威脅之前,對風險因素進行識別,描述和消除。
軟件風險評估(SRE)方法是風險管理方法中比較好的例子。這個方法根據(jù)分析對風險進行識別,分析和制定計劃,并且具有很強的可操作性。但是,在識別和分析階段僅有項目開發(fā)人員而沒有其他利益相關(guān)人員如客戶的參與。這可能是一個比較嚴重的問題。由于項目的主要風險都是由利益相關(guān)者提出的需求因素引起的。因此,如果缺少利益相關(guān)者的參與,項目開發(fā)團隊可能沒有得到明確的需求,從而導致項目的失敗。
相反地,TRM確保了所有人員參與到風險管理過程中,使得項目經(jīng)理很容易得到項目的明確需求。在團隊風險管理中,個人同組織一起參與到風險管理活動中,它包括了組織內(nèi)部活動和組織間的進程。
Softrisk方法的重點是文檔化。這個模型可以應(yīng)用于任何類型項目的任何階段。該模型的一個重要特點就是能對風險進行量化并計算風險發(fā)生的概率。模型將風險進行優(yōu)先排序,并對TOP風險重點采取減緩措施。Softrisk方法利用圖形進行風險監(jiān)控,并根據(jù)風險緩解計劃提出風險減緩建議。跟ARMOR方法一樣,Softrisk方法也利用了風險數(shù)據(jù)庫。
ARMOR方法是一種系統(tǒng)化的方法,不僅識別風險,還可以確定風險源并通過降低風險水平積極地對項目進行完善。
Riskit管理模型廣泛應(yīng)用于許多行業(yè)。該模型使用圖形對不同方面的風險進行定義。一方面,模型擁有在TRM模型中相關(guān)參與者的主要特征;另一方面,模型還突出了在Softrisk模型中有主要特征的重要風險。
在基于CMM的軟件風險控制優(yōu)化模型方法中,我們不難發(fā)現(xiàn)其與ARMOR方法在運行程序上的相似之處。兩種方法都從之前應(yīng)用的啟發(fā)式知識失敗數(shù)據(jù)庫中收集數(shù)據(jù)。CMM方法以通過研究所遵循的SEI標準為基礎(chǔ)。
4結(jié)束語
本文對軟件開發(fā)中流行的風險管理工具和方法進行了研究,旨在通過比較分析找到較好的風險管理工具和方法。通過比較分析發(fā)現(xiàn),在軟件開發(fā)風險管理中,由于每種方法都有不同的特點及運行程序,因而沒有一種單一的工具或方法是完美的。因此,軟件開發(fā)組織應(yīng)當結(jié)合本組織的特點,選擇不同的風險管理模型,以提高軟件項目管理水平。