七、經(jīng)典風(fēng)險(xiǎn)管理理論
7.1 Boehm模型
Boehm用公式RE=P(UO)*L(UO)對風(fēng)險(xiǎn)進(jìn)行定義,其中RE表示風(fēng)險(xiǎn)或者風(fēng)險(xiǎn)所造成的影響,P(UO)表示令人不滿意的結(jié)果所發(fā)生的概率,L(UO)表示糟糕的結(jié)果會產(chǎn)生的破壞性的程度。在風(fēng)險(xiǎn)管理步驟上,Boehm基本沿襲了傳統(tǒng)的項(xiàng)目風(fēng)險(xiǎn)管理理論,指出風(fēng)險(xiǎn)管理由風(fēng)險(xiǎn)評估和風(fēng)險(xiǎn)控制兩大部分組成,風(fēng)險(xiǎn)評估又可分為識別、分析、設(shè)置優(yōu)先級3個(gè)子步驟,風(fēng)險(xiǎn)控制則包括制定管理計(jì)劃、解決和監(jiān)督風(fēng)險(xiǎn)3步。
Boehm思想的核心是10大風(fēng)險(xiǎn)因素列表,其中包括人員短缺、不合理的進(jìn)度安排和預(yù)算、不斷的需求變動等。針對每個(gè)風(fēng)險(xiǎn)因素,Boehm都給出了一系列的風(fēng)險(xiǎn)管理策略。在實(shí)際操作時(shí),以10大風(fēng)險(xiǎn)列表為依據(jù),總結(jié)當(dāng)前項(xiàng)目具體的風(fēng)險(xiǎn)因素,評估后進(jìn)行計(jì)劃和實(shí)施,在下一次定期召開的會議上再對這10大風(fēng)險(xiǎn)因素的解決情況進(jìn)行總結(jié),產(chǎn)生新的10大風(fēng)險(xiǎn)因素表,依此類推。
10大風(fēng)險(xiǎn)列表的思想可以將管理層的注意力有效地集中在高風(fēng)險(xiǎn)、高權(quán)重、嚴(yán)重影響項(xiàng)目成功的關(guān)鍵因素上,而不需要考慮眾多的低優(yōu)先級的細(xì)節(jié)問題。而且,這個(gè)列表是通過對美國幾個(gè)大型航空或國防系統(tǒng)軟件項(xiàng)目的深入調(diào)查,編輯整理而成的,因此有一定的普遍性和實(shí)際性。但是它只是基于對風(fēng)險(xiǎn)因素集合的歸納,尚未有文章論述其具體的理論基礎(chǔ)、原始數(shù)據(jù)及其歸納方法。另外,Boehm也沒有清晰明確地說明風(fēng)險(xiǎn)管理模型到底要捕獲哪些軟件風(fēng)險(xiǎn)的特殊方面,因?yàn)榱信e的風(fēng)險(xiǎn)因素會隨著多個(gè)風(fēng)險(xiǎn)管理方法而變動,同時(shí)也互相影響。這意味著風(fēng)險(xiǎn)列表需要改進(jìn)和擴(kuò)充,管理步驟也需要優(yōu)化。
雖然其理論存在一些不足,但Boehm畢竟可以說是軟件項(xiàng)目風(fēng)險(xiǎn)管理的開山鼻祖。在其之后,更多的組織和個(gè)人開始了對風(fēng)險(xiǎn)管理的研究,軟件項(xiàng)目風(fēng)險(xiǎn)管理的重要性日益得到認(rèn)同。
7.2 CRM模型
SEI(Software Engineering Institution)作為世界上的旨在改善軟件工程管理實(shí)踐的組織,也對風(fēng)險(xiǎn)管理投入了大量的熱情。SEI提出了持續(xù)風(fēng)險(xiǎn)管理管理模型CRM(Continuous Risk Management)。
SEI的風(fēng)險(xiǎn)管理原則是:不斷地評估可能造成惡劣后果的因素;決定迫切需要處理的風(fēng)險(xiǎn);實(shí)現(xiàn)控制風(fēng)險(xiǎn)的策略;評測并確保風(fēng)險(xiǎn)策略實(shí)施的有效性。
CRM模型要求在項(xiàng)目生命期的所有階段都關(guān)注風(fēng)險(xiǎn)識別和管理,它將風(fēng)險(xiǎn)管理劃分為5個(gè)步驟:風(fēng)險(xiǎn)識別、分析、計(jì)劃、跟蹤、控制。下圖所示的框架顯示了應(yīng)用CRM的基礎(chǔ)活動及其之間的交互關(guān)系,強(qiáng)調(diào)了這是一個(gè)在項(xiàng)目開發(fā)過程中反復(fù)持續(xù)進(jìn)行的活動序列。每個(gè)風(fēng)險(xiǎn)因素一般都需要按順序經(jīng)過這些活動,但是對不同風(fēng)險(xiǎn)因素開展的不同活動可以是并發(fā)的或者交替的。
圖中的箭頭標(biāo)識了信息的邏輯流,而溝通則是信息流的核心和手段。其中,風(fēng)險(xiǎn)識別依靠問卷完成,問卷覆蓋了大概200個(gè)問題,一共涉及13個(gè)主要領(lǐng)域。風(fēng)險(xiǎn)分析側(cè)重于理解每個(gè)風(fēng)險(xiǎn)在該項(xiàng)目中的發(fā)生幾率和后果嚴(yán)重性,從而產(chǎn)生嚴(yán)重的10大風(fēng)險(xiǎn)問題。風(fēng)險(xiǎn)計(jì)劃是將如下內(nèi)容文檔化:風(fēng)險(xiǎn)管理步驟的描述、負(fù)責(zé)人及其職責(zé)、行為執(zhí)行和完結(jié)的時(shí)間,并且確定風(fēng)險(xiǎn)處理的優(yōu)先級,制定整體的管理計(jì)劃。風(fēng)險(xiǎn)跟蹤是獲取、整理并匯報(bào)10大風(fēng)險(xiǎn)問題當(dāng)前的狀態(tài),其目的是收集精確的、及時(shí)的和相關(guān)的信息,并將它們表達(dá)成容易理解的方式提交給負(fù)責(zé)人。風(fēng)險(xiǎn)控制是為了根據(jù)風(fēng)險(xiǎn)及其緩解計(jì)劃進(jìn)行及時(shí)而有效的決策,具體操作包括分析風(fēng)險(xiǎn)跟蹤階段產(chǎn)生的風(fēng)險(xiǎn)狀態(tài)信息,明確地決定采取什么行動,并實(shí)現(xiàn)它們。而處于核心地位的溝通則強(qiáng)調(diào)其有效性和針對性,要注意將合適的信息傳達(dá)給合適的組織層次以得到有效的分析和管理,這些層次包括開發(fā)方和用戶方雙方的組織結(jié)構(gòu)。
7.3 Leavitt模型
SEI和Boehm的模型都以風(fēng)險(xiǎn)管理的過程為主體,研究每個(gè)步驟所需的參考信息及其操作。而Aalborg大學(xué)提出的思路則是以Leavitt模型為基礎(chǔ),著重從導(dǎo)致軟件開發(fā)風(fēng)險(xiǎn)的不同角度出發(fā)探討風(fēng)險(xiǎn)管理。
1964年提出的Leavitt模型將形成各種系統(tǒng)的組織劃分為4個(gè)有趣的組成部分:任務(wù)、結(jié)構(gòu)、角色和技術(shù)。這4個(gè)組成部分和軟件開發(fā)的各因素很好地對應(yīng)起來:角色覆蓋了所有的項(xiàng)目參與者,例如軟件用戶、項(xiàng)目經(jīng)理和設(shè)計(jì)人員等;結(jié)構(gòu)表示項(xiàng)目組織和其他制度上的安排;技術(shù)則包括開發(fā)工具、方法、硬件軟件平臺;任務(wù)描述了項(xiàng)目的目標(biāo)和預(yù)期結(jié)果。Leavitt模型的關(guān)鍵思路是:模型的各個(gè)組成部分是密切相關(guān)的,一個(gè)組成部分的變化會影響其他的組成部分,如果一個(gè)組成部分的狀態(tài)和其他的狀態(tài)不一致,會造成比較嚴(yán)重的后果,并可能降低整個(gè)系統(tǒng)的性能。
將這個(gè)模型和軟件風(fēng)險(xiǎn)的概念相對應(yīng),即一個(gè)系統(tǒng)開發(fā)過程中任何Leavitt組成成分的修改都會產(chǎn)生一些問題,甚至導(dǎo)致軟件修改的失敗。根據(jù)Leavitt模型,任何導(dǎo)致風(fēng)險(xiǎn)發(fā)生的因素都可以歸結(jié)為模型中的組成部分,例如技術(shù)及其可行性;或者歸結(jié)為組成部分之間的聯(lián)系,例如程序開發(fā)人員使用某一技術(shù)的能力。因此,使用Leavitt模型從4個(gè)方面分別識別和分析軟件項(xiàng)目的風(fēng)險(xiǎn)是極有條理性和比較全面的。在進(jìn)行軟件項(xiàng)目管理時(shí),可以采用不同的方法對不同的方面進(jìn)行風(fēng)險(xiǎn)管理。
Leavitt模型實(shí)際上是提出一個(gè)框架,可以更加廣泛和系統(tǒng)地將軟件風(fēng)險(xiǎn)的相關(guān)信息組織起來。Leavitt理論的設(shè)計(jì)方法和實(shí)現(xiàn)研究已經(jīng)廣泛應(yīng)用于信息系統(tǒng)中,它所考慮的都是軟件風(fēng)險(xiǎn)管理中十分重要的環(huán)節(jié),而且簡單、定義良好、適用于分析風(fēng)險(xiǎn)管理步驟。
八、結(jié)束語
總之,在軟件項(xiàng)目開發(fā)過程中,當(dāng)對軟件的期望很高時(shí),一般都會進(jìn)行項(xiàng)目風(fēng)險(xiǎn)分析、預(yù)測、評估、管理及監(jiān)控等風(fēng)險(xiǎn)管理。通過風(fēng)險(xiǎn)管理可以使項(xiàng)目進(jìn)程更加平穩(wěn),可以獲得很高的跟蹤和控制項(xiàng)目的能力,并且可以增強(qiáng)項(xiàng)目組成員對項(xiàng)目如期完成的信心。風(fēng)險(xiǎn)管理是項(xiàng)目管理中很重要的管理活動,有效的實(shí)施軟件風(fēng)險(xiǎn)管理是軟件項(xiàng)目開發(fā)工作順利完成的保證。