摘要:風險管理在軟件項目管理中十分重要,但常常被忽視,這與組織對風險管理的認識不足有很大關(guān)系。介紹了風險管理的經(jīng)典理論,比較了幾種主流的風險管理策略和模型。還根據(jù)MIS系統(tǒng)的特點,在分析兩個主流的風險管理方法的基礎上,提出系統(tǒng)風險管理的優(yōu)化MIS和集成思路。
關(guān)鍵詞:風險;風險管理;CRM模型;SERIM模型
近幾年來軟件開發(fā)技術(shù)、工具都有了很大的進步,但是軟件項目開發(fā)超時、超支、甚至不能滿足用戶需求而根本沒有得到實際使用的情況仍然比比皆是。軟件項目開發(fā)和管理中一直存在著種種不確定性,嚴重影響著項目的順利完成和提交。但這些軟件風險并未得到充分的重視和系統(tǒng)的研究。直到20世紀80年代,Boehm比較詳細地對軟件開發(fā)中的風險進行了論述,并提出軟件風險管理的方法。Boehm認為,軟件風險管理指的是“試圖以一種可行的原則和實踐,規(guī)范化地控制影響項目成功的風險”,其目的是“辨識、描述和消除風險因素,以免它們威脅軟件的成功運作”。
在此基礎上,業(yè)界對軟件風險管理的研究開始慢慢豐富起來,理論上對風險進行了一些分類,提出了風險管理的思路;實踐上也出現(xiàn)了一些定量管理風險的方法和風險管理的軟件工具。雖然業(yè)界對風險管理表現(xiàn)了極大的興趣,作出了不少努力,但似乎很少開發(fā)項目的組織真正積極地在軟件開發(fā)過程中使用風險管理的方法。1995年(IWSEDInte-rnationalWorkshoponSoftwareEngineeringData)會議作出的調(diào)查顯示:風險管理技術(shù)沒有得到廣泛應用的原因并不是大家不相信這種技術(shù)的實效性,而是對風險管理的技術(shù)和實踐缺乏了解。因此,我們認為很有必要對風險管理進行研究,并將其應用于現(xiàn)在廣泛使用但失敗率較高的MIS系統(tǒng)開發(fā)中。
1 經(jīng)典風險管理理論
(1)BarryBoehm的模型
Boehm用公式RE=P(UO)*L(UO)對風險進行定義,其中RE表示風險或者風險所造成的影響,P(UO)表示令人不滿意的結(jié)果所發(fā)生的概率,L(UO)表示糟糕的結(jié)果會產(chǎn)生的破壞性的程度。在風險管理步驟上,Boehm基本沿襲了傳統(tǒng)的項目風險管理理論,指出風險管理由風險評估和風險控制兩大部分組成,風險評估又可分為識別、分析、設置優(yōu)先級個子步驟,風險控制則包括制定管理計劃、解決和監(jiān)督風險3步。
Boehm思想的核心是10大風險因素列表,其中包括人員短缺、不合理的進度安排和預算、不斷的需求變動等。針對每個風險因素,Boehm都給出了一系列的風險管理策略。在實際操作時,以10大風險列表為依據(jù),總結(jié)當前項目具體的風險因素,評估后進行計劃和實施,在下一次定期召開的會議上再對這10大風險因素的解決情況進行總結(jié),產(chǎn)生新的10大風險因素表,依此類推。
10大風險列表的思想可以將管理層的注意力有效地集中在高風險、高權(quán)重、嚴重影響項目成功的關(guān)鍵因素上,而不需要考慮眾多的低優(yōu)先級的細節(jié)問題。而且,這個列表是通過對美國幾個大型航空或國防系統(tǒng)軟件項目的深入調(diào)查,編輯整理而成的,因此有一定的普遍性實際性。但是它只是基于對風險因素集合的歸納,尚未有文章論述其具體的理論基礎、原始數(shù)據(jù)及其歸納方法。另外,Boehm也沒有清晰明確地說明風險管理模型到底要捕獲哪些軟件風險的特殊方面,因為列舉的風險因素會隨著多個風險管理方法而變動,同時也互相影響。這就意味著風險列表需要改進和擴充,管理步驟也需要優(yōu)化。
雖然其理論存在一些不足,但Boehm畢竟可以說是軟件項目風險管理的開山鼻祖。在其之后,更多的組織和個人開始了對風險管理的研究,軟件項目風險管理的重要性日益得到認同。
SEI(SoftwareEngineeringInstitution)作為世界上的旨在改善軟件工程管理實踐的組織,也對風險管理投入了大量的熱情。SEI提出了持續(xù)風險管理管理模型CRM(Con-tinuousRiskManagement)。
(2)SEI的CRM模型
SEI的風險管理原則是:不斷地評估可能造成惡劣后果的因素;決定最迫切需要處理的風險;實現(xiàn)控制風險的策略;評測并確保風險策略實施的有效性。 模型要求在項目生命期的所有階段都關(guān)注風險識別和管理,它將風險管理劃分為5個步驟:風險識別、分析、計劃、跟蹤、控制。圖1所示的框架顯示了應用CRM的基礎活動及其之間的交互關(guān)系,強調(diào)了這是一個在項目開發(fā)過程中反復持續(xù)進行的活動序列。每個風險因素一般都需要按順序經(jīng)過這些活動,但是對不同風險因素開展的不同活動可以是并發(fā)的或者交替的。

圖1中的箭頭標識了信息的邏輯流,而溝通則是信息流的核心和手段。其中,風險識別依靠問卷完成,問卷覆蓋了大概200個問題,一共涉及13個主要領域。風險分析側(cè)重于理解每個風險在該項目中的發(fā)生幾率和后果嚴重性,從而產(chǎn)生最嚴重的10大風險問題。風險計劃是將如下內(nèi)容文檔化:風險管理步驟的描述、負責人及其職責、行為執(zhí)行和完結(jié)的時間,并且確定風險處理的優(yōu)先級,制定整體的管理計劃。風險跟蹤是獲取、整理并匯報10大風險問題當前的狀態(tài),其目的是收集精確的、及時的和相關(guān)的信息,并將它們表達成容易理解的方式提交給負責人。風險控制是為了根據(jù)風險及其緩解計劃進行及時而有效的決策,具體操作包括分析風險跟蹤階段產(chǎn)生的風險狀態(tài)信息,明確地決定采取什么行動,并實現(xiàn)它們。而處于核心地位的溝通則強調(diào)其有效性和針對性,要注意將合適的信息傳達給合適的組織層次以得到的分析和管理,這些層次包括開發(fā)方和用戶方雙方的組織結(jié)構(gòu)。
SEI和Boehm的模型都以風險管理的過程為主體,研究每個步驟所需的參考信息及其操作。而Aalborg大學提出的思路則是以Leavitt模型為基礎,著重從導致軟件開發(fā)風險的不同角度出發(fā)探討風險管理。
(3)基于Leavitt模型的風險管理
1964年提出的Leavitt模型將形成各種系統(tǒng)的組織劃分為4個有趣的組成部分:任務、結(jié)構(gòu)、角色和技術(shù)。這4個組成部分和軟件開發(fā)的各因素很好地對應起來:角色覆蓋了所有的項目參與者,例如軟件用戶、項目經(jīng)理和設計人員等;結(jié)構(gòu)表示項目組織和其他制度上的安排;技術(shù)則包括開發(fā)工具、方法、硬件軟件平臺;任務描述了項目的目標和預期結(jié)果。Leavitt 模型的關(guān)鍵思路是:模型的各個組成部分是密切相關(guān)的,一個組成部分的變化會影響其他的組成部分,如果一個組成部分的狀態(tài)和其他的狀態(tài)不一致,就會造成比較嚴重的后果,并可能降低整個系統(tǒng)的性能。
將這個模型和軟件風險的概念相對應,即一個系統(tǒng)開發(fā)過程中任何Leavit組成成分的修改都會產(chǎn)生一些問題,甚至導致軟件修改的失敗。根據(jù)Leavitt模型,任何導致風險發(fā)生的因素都可以歸結(jié)為模型中的組成部分,例如技術(shù)及其可行性;或者歸結(jié)為組成部分之間的聯(lián)系,例如程序開發(fā)人員使用某一技術(shù)的能力。因此,使用Leavitt4模型從個方面分別識別和分析軟件項目的風險是極有條理性和比較全面的。在進行軟件項目管理時,可以采用不同的方法對不同的方面進行風險管理。
Leavitt模型實際上是提出一個框架,可以更加廣泛和系統(tǒng)地將軟件風險的相關(guān)信息組織起來。Leavitt理論的設計方法和實現(xiàn)研究已經(jīng)廣泛應用于信息系統(tǒng)中,它所考慮的都是軟件風險管理中十分重要的環(huán)節(jié),而且簡單、定義良好、適用于分析風險管理步驟。
2 MIS項目風險管理采用的策略
以上介紹的3種經(jīng)典方法都從不同角度或者細化層次對風險管理進行了研究。由于研究組織的背景和思維差異,不同的模型都有各自的針對性、側(cè)重點和優(yōu)缺點,很難說孰優(yōu)孰劣。在進行MIS項目風險管理中,我們選擇了操作性比較強的Riskit方法和SERIM方法作為基礎模型,吸納兩者的核心思想和方法。
(1)Riskit方法
Riskit方法是由Maryland大學提出的,旨在對風險的起因、觸發(fā)事件及其影響等進行完整的體現(xiàn)和管理,并使用合理的步驟評估風險。該方法使用圖形形式化的方法支持在定量分析前進行風險情景的定性分析,其評估方法可以基于歷史數(shù)據(jù)或者對當前項目的預測。

Riskit方法的核心部分是用來描述風險的圖形形式化工具分析圖(RiskitRiskitanalysisgraph),該分析圖可以顯式地定義風險的不同特性,比常規(guī)的口頭論述要更為形式化。它是風險管理過程中主要的溝通工具。分析圖所描述的元素及其關(guān)系如圖2所示。其中,風險因素(riskfactor)是指影響風險事件發(fā)生的可能性的特征,它用來描述主要的項目環(huán)境特征。風險事件(riskevent)指的是對項目有負面影響的事情,它可能被多個風險因素觸發(fā),也可能影響其他的事件或者因素。項目關(guān)鍵性成員的退出、一個主要需求的大幅度修改等都屬于風險事件。而風險反應(riskreaction)描述了對風險事件及其后果所采取的相應措施,它也可能影響風險事件發(fā)生的可能性。風險后果(riskeffect)表示了風險事件對整個項目的最后影響,例如項目延遲2個月提交、被迫放棄實現(xiàn)一些功能。風險后果主要是反應了風險對項目目標的沖擊,而效益損失(utilityloss)則捕獲了這些后果所產(chǎn)生的全局沖擊力的嚴重性,例如項目開發(fā)人員所感知的挫折感、CEO等決策層所感到的失敗感等。

在Riskit分析圖中,使用不同的顏色或者形狀表示不同的元素,可以一目了然而又全面地表現(xiàn)與項目相關(guān)的風險信息及其制約關(guān)系。在此基礎上可以進行Riskit風險管理過程。Riskit風險管理過程如圖3所示,圖中不僅體現(xiàn)了風險管理的基本活動,也描述了這些活動之間的信息流。在項目生命期內(nèi),這些活動可以重復多次,也可以并發(fā)地開展。其中,風險管理定義指的是定義風險管理的作用域、重點、責任和頻率等,并辨識所有相關(guān)的風險承擔人員。目標查閱指的是查閱已經(jīng)確立的項目目標,重新定義它們或者顯式地補充定義一些原來隱含而未明確表達的目標,并且整理風險承擔人員和這些目標的關(guān)系。風險識別則是使用不同的方法識別對項目成功構(gòu)成潛在威脅的元素,產(chǎn)生一系列的原始風險列表。風險分析是對風險元素進行劃分和確認,構(gòu)造完整的Riskit分析圖,以對每個風險元素有清晰的認識。風險控制計劃對最嚴重的風險元素提出風險控制方案,并選擇最合適的計劃。風險控制則是對風險控制計劃的實現(xiàn)。風險監(jiān)控保證在項目開發(fā)的全過程中對風險情況進行監(jiān)督和控制。
對每個活動,Riskit都提供了更加詳細的定義模板,包括活動的描述、啟動規(guī)則、采用的方法和工具、活動負責人、退出規(guī)則及其具體活動所特有的屬性等。而每個活動又可能由更加具體的子活動組成,例如風險分析又可以細分為:將原始風險項篩選、處理、組織以成為可管理的風險項集合;根據(jù)Riskit分析圖將風險項的詳細信息文檔化;對風險項進行優(yōu)先級排序等??偠灾琑iskit提供了多方面多層次的風險管理過程體系?!?BR> (2)JIT模型
DaleKarolak提出的SERIM(SoftwareEngineeringRiskModel,軟件工程風險模型)方法是IEEE推薦的方法。這種方法的特點在于從多個角度對軟件開發(fā)中的風險因素進行了評估,并可在開發(fā)周期的任何時候根據(jù)評估結(jié)果監(jiān)控風險。
SERIM從技術(shù)和商業(yè)兩個角度對軟件風險管理進行剖析,考慮的問題涉及開銷、進度、技術(shù)性能等。它還提供了一些指標和模型來估量和預測風險,由于這些數(shù)據(jù)來源于大量的實際經(jīng)驗,因此具有很強的說服力。根據(jù)SERIM理論開發(fā)的SERIM軟件于1999年被提名為“Codie應用軟件開發(fā)程序”。
Karolak聲稱基于“及時(SERIMJITJustinTime)”策略,JIT軟件的概念是:應該將軟件開發(fā)過程中的風險及其影響最小化,而在開發(fā)過程早期的管理將會縮短開發(fā)周期;在開發(fā)過程中使用了風險管理的產(chǎn)品將更傾向于節(jié)省開銷和滿足進度要求。JIT3軟件的個標關(guān)鍵思想是:進行計劃、在早期識別風險以及并行開發(fā)。
SERIM的理論體系主要基于如下概念:風險元素(element)、因素(factor)、指標(metrics)和活動(activity),SERIM的分析模型反應了這幾個目標的修正,概念之間的相輔相成關(guān)系。Karolak認為軟件風險新的目標體現(xiàn)在3個方面,即技術(shù)、成本和進度。其中技術(shù)方面與性能、可用性等相關(guān),應該盡早識別這個方面的風險;成本則包括預算、盈利等;進度包括進度表的靈活度、現(xiàn)實性等,貫穿于整個開發(fā)周期。
對于風險管理,Karolak提出6個活動:識別、策略和計劃、評估、緩解或避免、報告及預報,他從操作性、策略性、技術(shù)性、商業(yè)性、工業(yè)性和實踐者6個角度對這些活動進行了描述。SERIM的數(shù)據(jù)來源是81個問題,這些問題覆蓋了軟件風險的10大因素:組織、預測、監(jiān)控、開發(fā)方法學、工具,風險文化、可用性、正確性、可靠性和人員。風險因素對風險在技術(shù)、成本和進度3方面的影響用高、中、低評估,不同的影響程度可以給予一個確定的權(quán)值,以便于定量的計算。
SERIM的使用可以概括為:在軟件開發(fā)的不同階段(Karolak將軟件開發(fā)分為需求分析前的準備活動、需求分析、涉及、編碼、測試和提交),對81個問題中與開發(fā)階段相匹配的問題進行回答,根據(jù)公式計算出一系列的值,從中可以看出項目在技術(shù)、開銷和進度3個不同方面的總的風險系數(shù),還可以分析數(shù)據(jù)得到對項目造成威脅的風險因素。根據(jù)這些數(shù)據(jù),可以判斷出當前項目的穩(wěn)定狀態(tài),獲知需要改善的方向,并可以根據(jù)將要采取的措施修改問卷的答案,從而對未來的風險進行預測。
3 我們的工作
幾乎每個模型都聲稱適用于所有的軟件項目開發(fā),但是不可否認具體類型的軟件項目應該有各自不同的側(cè)重點與問題域。
因此,對于MIS項目的風險管理,完全照搬現(xiàn)有的某種風險管理模式或者工具是不實際的。我們需要根據(jù)MIS的特點對癥下藥。經(jīng)過對多種理論和方法的分析比較,我們最后確定將Riskit方法與SERIM方法融合在一起,MIS并根據(jù)項目的特點進行一些修改和調(diào)整。
Riskit方法的風險分析圖用于描述項目中的風險因素及其關(guān)系,它作為風險管理的定性依據(jù)貫穿于整個開發(fā)周期。Riskit是具有一定靈活度的可操作的方法,它建議不同的組織和項目在使用它時根據(jù)實際情況進行調(diào)整。要考慮組織已有的風險管理實踐、可投入的資源、項目的具體情況等,確定項目風險管理的層次級別和細化程度。
我們的MIS項目風險管理模型基本采納Riskit方法的管理過程。在風險識別階段引入SERIM的框架,根據(jù)不同的開發(fā)階段使用不同的問卷,問卷內(nèi)容仍將保持SERIM從多角度各方面交織反映情況的特點,但是我們將根據(jù)MIS項目的特點對原SERIM數(shù)據(jù)來源的81個問題進行修改。在風險評估階段,首先利用SERIM的評估模型對風險進行評估,原評估模型中所使用的問題答案所代表的數(shù)字意義、問題與各風險因素的相關(guān)性、以及因素的權(quán)重等都要進行相應的調(diào)整。而這些數(shù)值將根據(jù)業(yè)界的現(xiàn)狀調(diào)查和統(tǒng)計分析工具得到。在評估階段的后期,可以在評估模型上追溯出影響風險
評估值的最嚴重的風險表現(xiàn),使用Riskit分析圖對之進行詳細的描述。而在風險控制階段,則將參考本文中提到的各種方法。
4 結(jié)束語
項目風險管理實際的應用不夠廣泛或者不夠有效,這在相當程度上歸咎于各開發(fā)組織對風險管理理論和技術(shù)的了解不足。因此本文先對幾個經(jīng)典的和的風險管理模型和思想進行了介紹。這也是我們在進行MIS項目風險管理的第一步——研究現(xiàn)有的理論。第二步是篩選現(xiàn)有研究成果,并將其與MIS項目的特點進行融合,從而產(chǎn)生針對MIS項目的管理模型。我們下一步的工作是確定評估模型中的權(quán)重等數(shù)據(jù),并優(yōu)化、實現(xiàn)并測試這個風險管理模型。
關(guān)鍵詞:風險;風險管理;CRM模型;SERIM模型
近幾年來軟件開發(fā)技術(shù)、工具都有了很大的進步,但是軟件項目開發(fā)超時、超支、甚至不能滿足用戶需求而根本沒有得到實際使用的情況仍然比比皆是。軟件項目開發(fā)和管理中一直存在著種種不確定性,嚴重影響著項目的順利完成和提交。但這些軟件風險并未得到充分的重視和系統(tǒng)的研究。直到20世紀80年代,Boehm比較詳細地對軟件開發(fā)中的風險進行了論述,并提出軟件風險管理的方法。Boehm認為,軟件風險管理指的是“試圖以一種可行的原則和實踐,規(guī)范化地控制影響項目成功的風險”,其目的是“辨識、描述和消除風險因素,以免它們威脅軟件的成功運作”。
在此基礎上,業(yè)界對軟件風險管理的研究開始慢慢豐富起來,理論上對風險進行了一些分類,提出了風險管理的思路;實踐上也出現(xiàn)了一些定量管理風險的方法和風險管理的軟件工具。雖然業(yè)界對風險管理表現(xiàn)了極大的興趣,作出了不少努力,但似乎很少開發(fā)項目的組織真正積極地在軟件開發(fā)過程中使用風險管理的方法。1995年(IWSEDInte-rnationalWorkshoponSoftwareEngineeringData)會議作出的調(diào)查顯示:風險管理技術(shù)沒有得到廣泛應用的原因并不是大家不相信這種技術(shù)的實效性,而是對風險管理的技術(shù)和實踐缺乏了解。因此,我們認為很有必要對風險管理進行研究,并將其應用于現(xiàn)在廣泛使用但失敗率較高的MIS系統(tǒng)開發(fā)中。
1 經(jīng)典風險管理理論
(1)BarryBoehm的模型
Boehm用公式RE=P(UO)*L(UO)對風險進行定義,其中RE表示風險或者風險所造成的影響,P(UO)表示令人不滿意的結(jié)果所發(fā)生的概率,L(UO)表示糟糕的結(jié)果會產(chǎn)生的破壞性的程度。在風險管理步驟上,Boehm基本沿襲了傳統(tǒng)的項目風險管理理論,指出風險管理由風險評估和風險控制兩大部分組成,風險評估又可分為識別、分析、設置優(yōu)先級個子步驟,風險控制則包括制定管理計劃、解決和監(jiān)督風險3步。
Boehm思想的核心是10大風險因素列表,其中包括人員短缺、不合理的進度安排和預算、不斷的需求變動等。針對每個風險因素,Boehm都給出了一系列的風險管理策略。在實際操作時,以10大風險列表為依據(jù),總結(jié)當前項目具體的風險因素,評估后進行計劃和實施,在下一次定期召開的會議上再對這10大風險因素的解決情況進行總結(jié),產(chǎn)生新的10大風險因素表,依此類推。
10大風險列表的思想可以將管理層的注意力有效地集中在高風險、高權(quán)重、嚴重影響項目成功的關(guān)鍵因素上,而不需要考慮眾多的低優(yōu)先級的細節(jié)問題。而且,這個列表是通過對美國幾個大型航空或國防系統(tǒng)軟件項目的深入調(diào)查,編輯整理而成的,因此有一定的普遍性實際性。但是它只是基于對風險因素集合的歸納,尚未有文章論述其具體的理論基礎、原始數(shù)據(jù)及其歸納方法。另外,Boehm也沒有清晰明確地說明風險管理模型到底要捕獲哪些軟件風險的特殊方面,因為列舉的風險因素會隨著多個風險管理方法而變動,同時也互相影響。這就意味著風險列表需要改進和擴充,管理步驟也需要優(yōu)化。
雖然其理論存在一些不足,但Boehm畢竟可以說是軟件項目風險管理的開山鼻祖。在其之后,更多的組織和個人開始了對風險管理的研究,軟件項目風險管理的重要性日益得到認同。
SEI(SoftwareEngineeringInstitution)作為世界上的旨在改善軟件工程管理實踐的組織,也對風險管理投入了大量的熱情。SEI提出了持續(xù)風險管理管理模型CRM(Con-tinuousRiskManagement)。
(2)SEI的CRM模型
SEI的風險管理原則是:不斷地評估可能造成惡劣后果的因素;決定最迫切需要處理的風險;實現(xiàn)控制風險的策略;評測并確保風險策略實施的有效性。 模型要求在項目生命期的所有階段都關(guān)注風險識別和管理,它將風險管理劃分為5個步驟:風險識別、分析、計劃、跟蹤、控制。圖1所示的框架顯示了應用CRM的基礎活動及其之間的交互關(guān)系,強調(diào)了這是一個在項目開發(fā)過程中反復持續(xù)進行的活動序列。每個風險因素一般都需要按順序經(jīng)過這些活動,但是對不同風險因素開展的不同活動可以是并發(fā)的或者交替的。

圖1中的箭頭標識了信息的邏輯流,而溝通則是信息流的核心和手段。其中,風險識別依靠問卷完成,問卷覆蓋了大概200個問題,一共涉及13個主要領域。風險分析側(cè)重于理解每個風險在該項目中的發(fā)生幾率和后果嚴重性,從而產(chǎn)生最嚴重的10大風險問題。風險計劃是將如下內(nèi)容文檔化:風險管理步驟的描述、負責人及其職責、行為執(zhí)行和完結(jié)的時間,并且確定風險處理的優(yōu)先級,制定整體的管理計劃。風險跟蹤是獲取、整理并匯報10大風險問題當前的狀態(tài),其目的是收集精確的、及時的和相關(guān)的信息,并將它們表達成容易理解的方式提交給負責人。風險控制是為了根據(jù)風險及其緩解計劃進行及時而有效的決策,具體操作包括分析風險跟蹤階段產(chǎn)生的風險狀態(tài)信息,明確地決定采取什么行動,并實現(xiàn)它們。而處于核心地位的溝通則強調(diào)其有效性和針對性,要注意將合適的信息傳達給合適的組織層次以得到的分析和管理,這些層次包括開發(fā)方和用戶方雙方的組織結(jié)構(gòu)。
SEI和Boehm的模型都以風險管理的過程為主體,研究每個步驟所需的參考信息及其操作。而Aalborg大學提出的思路則是以Leavitt模型為基礎,著重從導致軟件開發(fā)風險的不同角度出發(fā)探討風險管理。
(3)基于Leavitt模型的風險管理
1964年提出的Leavitt模型將形成各種系統(tǒng)的組織劃分為4個有趣的組成部分:任務、結(jié)構(gòu)、角色和技術(shù)。這4個組成部分和軟件開發(fā)的各因素很好地對應起來:角色覆蓋了所有的項目參與者,例如軟件用戶、項目經(jīng)理和設計人員等;結(jié)構(gòu)表示項目組織和其他制度上的安排;技術(shù)則包括開發(fā)工具、方法、硬件軟件平臺;任務描述了項目的目標和預期結(jié)果。Leavitt 模型的關(guān)鍵思路是:模型的各個組成部分是密切相關(guān)的,一個組成部分的變化會影響其他的組成部分,如果一個組成部分的狀態(tài)和其他的狀態(tài)不一致,就會造成比較嚴重的后果,并可能降低整個系統(tǒng)的性能。
將這個模型和軟件風險的概念相對應,即一個系統(tǒng)開發(fā)過程中任何Leavit組成成分的修改都會產(chǎn)生一些問題,甚至導致軟件修改的失敗。根據(jù)Leavitt模型,任何導致風險發(fā)生的因素都可以歸結(jié)為模型中的組成部分,例如技術(shù)及其可行性;或者歸結(jié)為組成部分之間的聯(lián)系,例如程序開發(fā)人員使用某一技術(shù)的能力。因此,使用Leavitt4模型從個方面分別識別和分析軟件項目的風險是極有條理性和比較全面的。在進行軟件項目管理時,可以采用不同的方法對不同的方面進行風險管理。
Leavitt模型實際上是提出一個框架,可以更加廣泛和系統(tǒng)地將軟件風險的相關(guān)信息組織起來。Leavitt理論的設計方法和實現(xiàn)研究已經(jīng)廣泛應用于信息系統(tǒng)中,它所考慮的都是軟件風險管理中十分重要的環(huán)節(jié),而且簡單、定義良好、適用于分析風險管理步驟。
2 MIS項目風險管理采用的策略
以上介紹的3種經(jīng)典方法都從不同角度或者細化層次對風險管理進行了研究。由于研究組織的背景和思維差異,不同的模型都有各自的針對性、側(cè)重點和優(yōu)缺點,很難說孰優(yōu)孰劣。在進行MIS項目風險管理中,我們選擇了操作性比較強的Riskit方法和SERIM方法作為基礎模型,吸納兩者的核心思想和方法。
(1)Riskit方法
Riskit方法是由Maryland大學提出的,旨在對風險的起因、觸發(fā)事件及其影響等進行完整的體現(xiàn)和管理,并使用合理的步驟評估風險。該方法使用圖形形式化的方法支持在定量分析前進行風險情景的定性分析,其評估方法可以基于歷史數(shù)據(jù)或者對當前項目的預測。

Riskit方法的核心部分是用來描述風險的圖形形式化工具分析圖(RiskitRiskitanalysisgraph),該分析圖可以顯式地定義風險的不同特性,比常規(guī)的口頭論述要更為形式化。它是風險管理過程中主要的溝通工具。分析圖所描述的元素及其關(guān)系如圖2所示。其中,風險因素(riskfactor)是指影響風險事件發(fā)生的可能性的特征,它用來描述主要的項目環(huán)境特征。風險事件(riskevent)指的是對項目有負面影響的事情,它可能被多個風險因素觸發(fā),也可能影響其他的事件或者因素。項目關(guān)鍵性成員的退出、一個主要需求的大幅度修改等都屬于風險事件。而風險反應(riskreaction)描述了對風險事件及其后果所采取的相應措施,它也可能影響風險事件發(fā)生的可能性。風險后果(riskeffect)表示了風險事件對整個項目的最后影響,例如項目延遲2個月提交、被迫放棄實現(xiàn)一些功能。風險后果主要是反應了風險對項目目標的沖擊,而效益損失(utilityloss)則捕獲了這些后果所產(chǎn)生的全局沖擊力的嚴重性,例如項目開發(fā)人員所感知的挫折感、CEO等決策層所感到的失敗感等。

在Riskit分析圖中,使用不同的顏色或者形狀表示不同的元素,可以一目了然而又全面地表現(xiàn)與項目相關(guān)的風險信息及其制約關(guān)系。在此基礎上可以進行Riskit風險管理過程。Riskit風險管理過程如圖3所示,圖中不僅體現(xiàn)了風險管理的基本活動,也描述了這些活動之間的信息流。在項目生命期內(nèi),這些活動可以重復多次,也可以并發(fā)地開展。其中,風險管理定義指的是定義風險管理的作用域、重點、責任和頻率等,并辨識所有相關(guān)的風險承擔人員。目標查閱指的是查閱已經(jīng)確立的項目目標,重新定義它們或者顯式地補充定義一些原來隱含而未明確表達的目標,并且整理風險承擔人員和這些目標的關(guān)系。風險識別則是使用不同的方法識別對項目成功構(gòu)成潛在威脅的元素,產(chǎn)生一系列的原始風險列表。風險分析是對風險元素進行劃分和確認,構(gòu)造完整的Riskit分析圖,以對每個風險元素有清晰的認識。風險控制計劃對最嚴重的風險元素提出風險控制方案,并選擇最合適的計劃。風險控制則是對風險控制計劃的實現(xiàn)。風險監(jiān)控保證在項目開發(fā)的全過程中對風險情況進行監(jiān)督和控制。
對每個活動,Riskit都提供了更加詳細的定義模板,包括活動的描述、啟動規(guī)則、采用的方法和工具、活動負責人、退出規(guī)則及其具體活動所特有的屬性等。而每個活動又可能由更加具體的子活動組成,例如風險分析又可以細分為:將原始風險項篩選、處理、組織以成為可管理的風險項集合;根據(jù)Riskit分析圖將風險項的詳細信息文檔化;對風險項進行優(yōu)先級排序等??偠灾琑iskit提供了多方面多層次的風險管理過程體系?!?BR> (2)JIT模型
DaleKarolak提出的SERIM(SoftwareEngineeringRiskModel,軟件工程風險模型)方法是IEEE推薦的方法。這種方法的特點在于從多個角度對軟件開發(fā)中的風險因素進行了評估,并可在開發(fā)周期的任何時候根據(jù)評估結(jié)果監(jiān)控風險。
SERIM從技術(shù)和商業(yè)兩個角度對軟件風險管理進行剖析,考慮的問題涉及開銷、進度、技術(shù)性能等。它還提供了一些指標和模型來估量和預測風險,由于這些數(shù)據(jù)來源于大量的實際經(jīng)驗,因此具有很強的說服力。根據(jù)SERIM理論開發(fā)的SERIM軟件于1999年被提名為“Codie應用軟件開發(fā)程序”。
Karolak聲稱基于“及時(SERIMJITJustinTime)”策略,JIT軟件的概念是:應該將軟件開發(fā)過程中的風險及其影響最小化,而在開發(fā)過程早期的管理將會縮短開發(fā)周期;在開發(fā)過程中使用了風險管理的產(chǎn)品將更傾向于節(jié)省開銷和滿足進度要求。JIT3軟件的個標關(guān)鍵思想是:進行計劃、在早期識別風險以及并行開發(fā)。
SERIM的理論體系主要基于如下概念:風險元素(element)、因素(factor)、指標(metrics)和活動(activity),SERIM的分析模型反應了這幾個目標的修正,概念之間的相輔相成關(guān)系。Karolak認為軟件風險新的目標體現(xiàn)在3個方面,即技術(shù)、成本和進度。其中技術(shù)方面與性能、可用性等相關(guān),應該盡早識別這個方面的風險;成本則包括預算、盈利等;進度包括進度表的靈活度、現(xiàn)實性等,貫穿于整個開發(fā)周期。
對于風險管理,Karolak提出6個活動:識別、策略和計劃、評估、緩解或避免、報告及預報,他從操作性、策略性、技術(shù)性、商業(yè)性、工業(yè)性和實踐者6個角度對這些活動進行了描述。SERIM的數(shù)據(jù)來源是81個問題,這些問題覆蓋了軟件風險的10大因素:組織、預測、監(jiān)控、開發(fā)方法學、工具,風險文化、可用性、正確性、可靠性和人員。風險因素對風險在技術(shù)、成本和進度3方面的影響用高、中、低評估,不同的影響程度可以給予一個確定的權(quán)值,以便于定量的計算。
SERIM的使用可以概括為:在軟件開發(fā)的不同階段(Karolak將軟件開發(fā)分為需求分析前的準備活動、需求分析、涉及、編碼、測試和提交),對81個問題中與開發(fā)階段相匹配的問題進行回答,根據(jù)公式計算出一系列的值,從中可以看出項目在技術(shù)、開銷和進度3個不同方面的總的風險系數(shù),還可以分析數(shù)據(jù)得到對項目造成威脅的風險因素。根據(jù)這些數(shù)據(jù),可以判斷出當前項目的穩(wěn)定狀態(tài),獲知需要改善的方向,并可以根據(jù)將要采取的措施修改問卷的答案,從而對未來的風險進行預測。
3 我們的工作
幾乎每個模型都聲稱適用于所有的軟件項目開發(fā),但是不可否認具體類型的軟件項目應該有各自不同的側(cè)重點與問題域。
因此,對于MIS項目的風險管理,完全照搬現(xiàn)有的某種風險管理模式或者工具是不實際的。我們需要根據(jù)MIS的特點對癥下藥。經(jīng)過對多種理論和方法的分析比較,我們最后確定將Riskit方法與SERIM方法融合在一起,MIS并根據(jù)項目的特點進行一些修改和調(diào)整。
Riskit方法的風險分析圖用于描述項目中的風險因素及其關(guān)系,它作為風險管理的定性依據(jù)貫穿于整個開發(fā)周期。Riskit是具有一定靈活度的可操作的方法,它建議不同的組織和項目在使用它時根據(jù)實際情況進行調(diào)整。要考慮組織已有的風險管理實踐、可投入的資源、項目的具體情況等,確定項目風險管理的層次級別和細化程度。
我們的MIS項目風險管理模型基本采納Riskit方法的管理過程。在風險識別階段引入SERIM的框架,根據(jù)不同的開發(fā)階段使用不同的問卷,問卷內(nèi)容仍將保持SERIM從多角度各方面交織反映情況的特點,但是我們將根據(jù)MIS項目的特點對原SERIM數(shù)據(jù)來源的81個問題進行修改。在風險評估階段,首先利用SERIM的評估模型對風險進行評估,原評估模型中所使用的問題答案所代表的數(shù)字意義、問題與各風險因素的相關(guān)性、以及因素的權(quán)重等都要進行相應的調(diào)整。而這些數(shù)值將根據(jù)業(yè)界的現(xiàn)狀調(diào)查和統(tǒng)計分析工具得到。在評估階段的后期,可以在評估模型上追溯出影響風險
評估值的最嚴重的風險表現(xiàn),使用Riskit分析圖對之進行詳細的描述。而在風險控制階段,則將參考本文中提到的各種方法。
4 結(jié)束語
項目風險管理實際的應用不夠廣泛或者不夠有效,這在相當程度上歸咎于各開發(fā)組織對風險管理理論和技術(shù)的了解不足。因此本文先對幾個經(jīng)典的和的風險管理模型和思想進行了介紹。這也是我們在進行MIS項目風險管理的第一步——研究現(xiàn)有的理論。第二步是篩選現(xiàn)有研究成果,并將其與MIS項目的特點進行融合,從而產(chǎn)生針對MIS項目的管理模型。我們下一步的工作是確定評估模型中的權(quán)重等數(shù)據(jù),并優(yōu)化、實現(xiàn)并測試這個風險管理模型。

