軟件項(xiàng)目風(fēng)險(xiǎn)管理是軟件項(xiàng)目管理的重要內(nèi)容。在進(jìn)行軟件項(xiàng)目風(fēng)險(xiǎn)管理時(shí),要辯識(shí)風(fēng)險(xiǎn),評(píng)估它們出現(xiàn)的概率及產(chǎn)生的影響,然后建立一個(gè)規(guī)劃來管理風(fēng)險(xiǎn)。風(fēng)險(xiǎn)管理的主要目標(biāo)是預(yù)防風(fēng)險(xiǎn)。
軟件項(xiàng)目風(fēng)險(xiǎn)是指在軟件開發(fā)過程中遇到的預(yù)算和進(jìn)度等方面的問題以及這些問題對(duì)軟件項(xiàng)目的影響。軟件項(xiàng)目風(fēng)險(xiǎn)會(huì)影響項(xiàng)目計(jì)劃的實(shí)現(xiàn),如果項(xiàng)目風(fēng)險(xiǎn)變成現(xiàn)實(shí),有可能影響項(xiàng)目的進(jìn)度,增加項(xiàng)目的成本,甚至使軟件項(xiàng)目不能實(shí)現(xiàn)。如果對(duì)項(xiàng)目進(jìn)行風(fēng)險(xiǎn)管理,可以大限度的減少風(fēng)險(xiǎn)的發(fā)生。但是,目前國(guó)內(nèi)的軟件企業(yè)不太關(guān)心軟件項(xiàng)目的風(fēng)險(xiǎn)管理,結(jié)果造成軟件項(xiàng)目經(jīng)常性的延期、超過預(yù)算,甚至失敗。成功的項(xiàng)目管理一般都對(duì)項(xiàng)目風(fēng)險(xiǎn)進(jìn)行了良好的管理。因此任何一個(gè)系統(tǒng)開發(fā)項(xiàng)目都應(yīng)將風(fēng)險(xiǎn)管理作為軟件項(xiàng)目管理的重要內(nèi)容。
在項(xiàng)目風(fēng)險(xiǎn)管理中,存在多種風(fēng)險(xiǎn)管理方法與工具,軟件項(xiàng)目管理只有找出適合自己的方法與工具并應(yīng)用到風(fēng)險(xiǎn)管理中,才能盡量減少軟件項(xiàng)目風(fēng)險(xiǎn),促進(jìn)項(xiàng)目的成功。
軟件項(xiàng)目的風(fēng)險(xiǎn)管理是軟件項(xiàng)目管理的重要內(nèi)容。在進(jìn)行軟件項(xiàng)目風(fēng)險(xiǎn)管理時(shí),要辯識(shí)風(fēng)險(xiǎn),評(píng)估它們出現(xiàn)的概率及產(chǎn)生的影響,然后建立一個(gè)規(guī)劃來管理風(fēng)險(xiǎn)。風(fēng)險(xiǎn)管理的主要目標(biāo)是預(yù)防風(fēng)險(xiǎn)。本文探討了風(fēng)險(xiǎn)管理的主要內(nèi)容和方法,介紹了風(fēng)險(xiǎn)管理的經(jīng)典理論,比較了幾種主流的風(fēng)險(xiǎn)管理策略和模型。
一、引言
近幾年來軟件開發(fā)技術(shù)、工具都有了很大的進(jìn)步,但是軟件項(xiàng)目開發(fā)超時(shí)、超支、甚至不能滿足用戶需求而根本沒有得到實(shí)際使用的情況仍然比比皆是。軟件項(xiàng)目開發(fā)和管理中一直存在著種種不確定性,嚴(yán)重影響著項(xiàng)目的順利完成和提交。但這些軟件風(fēng)險(xiǎn)并未得到充分的重視和系統(tǒng)的研究。直到20世紀(jì)80年代,Boehm比較詳細(xì)地對(duì)軟件開發(fā)中的風(fēng)險(xiǎn)進(jìn)行了論述,并提出軟件風(fēng)險(xiǎn)管理的方法。Boehm認(rèn)為,軟件風(fēng)險(xiǎn)管理指的是“試圖以一種可行的原則和實(shí)踐,規(guī)范化地控制影響項(xiàng)目成功的風(fēng)險(xiǎn)”,其目的是“辨識(shí)、描述和消除風(fēng)險(xiǎn)因素,以免它們威脅軟件的成功運(yùn)作”。
在此基礎(chǔ)上,業(yè)界對(duì)軟件風(fēng)險(xiǎn)管理的研究開始慢慢豐富起來,理論上對(duì)風(fēng)險(xiǎn)進(jìn)行了一些分類,提出了風(fēng)險(xiǎn)管理的思路;實(shí)踐上也出現(xiàn)了一些定量管理風(fēng)險(xiǎn)的方法和風(fēng)險(xiǎn)管理的軟件工具。雖然業(yè)界對(duì)風(fēng)險(xiǎn)管理表現(xiàn)了極大的興趣,做出了不少努力,但似乎很少開發(fā)項(xiàng)目的組織真正積極地在軟件開發(fā)過程中使用風(fēng)險(xiǎn)管理的方法。1995年IWSED(International Workshop on Software Engineering Data)會(huì)議做出的調(diào)查顯示:風(fēng)險(xiǎn)管理技術(shù)沒有得到廣泛應(yīng)用的原因并不是大家不相信這種技術(shù)的實(shí)效性,而是對(duì)風(fēng)險(xiǎn)管理的技術(shù)和實(shí)踐缺乏了解。因此,我們認(rèn)為很有必要對(duì)風(fēng)險(xiǎn)管理進(jìn)行研究。
二、軟件項(xiàng)目風(fēng)險(xiǎn)管理
軟件開發(fā)中的風(fēng)險(xiǎn)是指軟件開發(fā)過程中及軟件產(chǎn)品本身可能造成的傷害或損失。風(fēng)險(xiǎn)關(guān)注未來的事情,這意味著,風(fēng)險(xiǎn)涉及選擇及選擇本身包含的不確定性,軟件開發(fā)過程及軟件產(chǎn)品都要面臨各種決策的選擇。風(fēng)險(xiǎn)是介于確定性和不確定性之間的狀態(tài),是處于無知和完整知識(shí)之間的狀態(tài)。另一方面,風(fēng)險(xiǎn)將涉及思想、觀念、行為、地點(diǎn)等因素的改變。
當(dāng)在軟件工程領(lǐng)域考慮風(fēng)險(xiǎn)時(shí),我們要關(guān)注以下的問題:什么樣的風(fēng)險(xiǎn)會(huì)導(dǎo)致軟件項(xiàng)目的徹底失敗;用戶需求、開發(fā)技術(shù)、目標(biāo)計(jì)算機(jī)以及所有其他與項(xiàng)目有關(guān)的因素的改變將會(huì)對(duì)按時(shí)交付和總體成功產(chǎn)生什么影響;對(duì)于采用何種方法和工具,需要多少人員參與工作的問題,我們?nèi)绾芜x擇和決策;軟件質(zhì)量要達(dá)到什么程度才是“足夠的”。當(dāng)沒有辦法消除風(fēng)險(xiǎn),甚至連試圖降低該風(fēng)險(xiǎn)也存在疑問時(shí),這些風(fēng)險(xiǎn)是真正的風(fēng)險(xiǎn)了。在我們能夠標(biāo)識(shí)出軟件項(xiàng)目中的真正風(fēng)險(xiǎn)之前,識(shí)別出所有對(duì)管理者和開發(fā)者而言均為明顯的風(fēng)險(xiǎn)是很重要的。
風(fēng)險(xiǎn)管理在項(xiàng)目管理中占有非常重要的地位。首先,有效的風(fēng)險(xiǎn)管理可以提高項(xiàng)目的成功率。其次,風(fēng)險(xiǎn)管理可以增加團(tuán)隊(duì)的健壯性。與團(tuán)隊(duì)成員一起進(jìn)行風(fēng)險(xiǎn)分析可以讓大家對(duì)困難有充分估計(jì),對(duì)各種意外有心理準(zhǔn)備,大大提高組員的信心,從而穩(wěn)定隊(duì)伍。第三,有效的風(fēng)險(xiǎn)管理可以幫助項(xiàng)目經(jīng)理抓住工作重點(diǎn),將主要精力集中于重大風(fēng)險(xiǎn),將工作方式從被動(dòng)救火轉(zhuǎn)變?yōu)橹鲃?dòng)防范。
被動(dòng)風(fēng)險(xiǎn)策略是針對(duì)可能發(fā)生的風(fēng)險(xiǎn)來監(jiān)督項(xiàng)目,直到它們變成真正的問題時(shí),才會(huì)撥出資源來處理它們。更普遍的是,軟件項(xiàng)目組對(duì)風(fēng)險(xiǎn)不聞不問,直到發(fā)生了錯(cuò)誤才趕緊采取行動(dòng),試圖迅速地糾正錯(cuò)誤。這種管理模式常常被稱為“救火模式”。當(dāng)補(bǔ)救的努力失敗后,項(xiàng)目處在真正的危機(jī)之中了。
對(duì)于風(fēng)險(xiǎn)管理的一個(gè)更聰明的策略是主動(dòng)式的。主動(dòng)策略早在技術(shù)工作開始之前已經(jīng)啟動(dòng)了。標(biāo)識(shí)出潛在的風(fēng)險(xiǎn),評(píng)估它們出現(xiàn)的概率及產(chǎn)生的影響,對(duì)風(fēng)險(xiǎn)按重要性進(jìn)行排序,然后,軟件項(xiàng)目組建立一個(gè)計(jì)劃來管理風(fēng)險(xiǎn)。主動(dòng)策略中的風(fēng)險(xiǎn)管理,其主要目標(biāo)是預(yù)防風(fēng)險(xiǎn)。但是,因?yàn)椴皇撬械娘L(fēng)險(xiǎn)都能夠預(yù)防,所以,項(xiàng)目組必須建立一個(gè)應(yīng)付意外事件的計(jì)劃,使其在必要時(shí)能夠以可控的及有效的方式做出反應(yīng)m任何一個(gè)系統(tǒng)開發(fā)項(xiàng)目都應(yīng)將風(fēng)險(xiǎn)管理作為軟件項(xiàng)目管理的重要內(nèi)容。
在進(jìn)行軟件項(xiàng)目風(fēng)險(xiǎn)管理時(shí),要標(biāo)識(shí)出潛在的風(fēng)險(xiǎn),評(píng)估它們出現(xiàn)的概率及產(chǎn)生的影響,并按重要性加以排序,然后建立一個(gè)規(guī)劃來管理風(fēng)險(xiǎn)。風(fēng)險(xiǎn)管理的主要目標(biāo)是預(yù)防風(fēng)險(xiǎn),但不是所有的風(fēng)險(xiǎn)都能夠預(yù)防。所以必須建立一個(gè)意外事件計(jì)劃,使其在必要時(shí)能以可控的和有效的方式做出反應(yīng)。風(fēng)險(xiǎn)管理目標(biāo)的實(shí)現(xiàn)包含三個(gè)要素。首先,必須在項(xiàng)目計(jì)劃書中寫下如何進(jìn)行風(fēng)險(xiǎn)管理;第二,項(xiàng)目預(yù)算必須包含解決風(fēng)險(xiǎn)所需的經(jīng)費(fèi),如果沒有經(jīng)費(fèi),無法達(dá)到風(fēng)險(xiǎn)管理的目標(biāo);第三,評(píng)估風(fēng)險(xiǎn)時(shí),風(fēng)險(xiǎn)的影響也必須納入項(xiàng)目規(guī)劃中。
風(fēng)險(xiǎn)管理涉及的主要過程包括:風(fēng)險(xiǎn)識(shí)別,風(fēng)險(xiǎn)量化,風(fēng)險(xiǎn)應(yīng)對(duì)計(jì)劃制定和風(fēng)險(xiǎn)監(jiān)控,如圖1所示[1][3]。風(fēng)險(xiǎn)識(shí)別在項(xiàng)目的開始時(shí)要進(jìn)行,并在項(xiàng)目執(zhí)行中不斷進(jìn)行。是說,在項(xiàng)目的整個(gè)生命周期內(nèi),風(fēng)險(xiǎn)識(shí)別是一個(gè)連續(xù)的過程。
風(fēng)險(xiǎn)識(shí)別:風(fēng)險(xiǎn)識(shí)別包括確定風(fēng)險(xiǎn)的來源,風(fēng)險(xiǎn)產(chǎn)生的條件,描述其風(fēng)險(xiǎn)特征和確定哪些風(fēng)險(xiǎn)事件有可能影響本項(xiàng)目。風(fēng)險(xiǎn)識(shí)別不是一次可以完成的事,應(yīng)當(dāng)在項(xiàng)目的自始至終定期進(jìn)行。
風(fēng)險(xiǎn)量化:涉及對(duì)風(fēng)險(xiǎn)及風(fēng)險(xiǎn)的相互作用的評(píng)估,是衡量風(fēng)險(xiǎn)概率和風(fēng)險(xiǎn)對(duì)項(xiàng)目目標(biāo)影響程度的過程。風(fēng)險(xiǎn)量化的基本內(nèi)容是確定那些事件需要制定應(yīng)對(duì)措施。。
風(fēng)險(xiǎn)應(yīng)對(duì)計(jì)劃制定:針對(duì)風(fēng)險(xiǎn)量化的結(jié)果,為降低項(xiàng)目風(fēng)險(xiǎn)的負(fù)面效應(yīng)制定風(fēng)險(xiǎn)應(yīng)對(duì)策略和技術(shù)手段的過程。風(fēng)險(xiǎn)應(yīng)對(duì)計(jì)劃依據(jù)風(fēng)險(xiǎn)管理計(jì)劃、風(fēng)險(xiǎn)排序、風(fēng)險(xiǎn)認(rèn)知等依據(jù),得出風(fēng)險(xiǎn)應(yīng)對(duì)計(jì)劃、剩余風(fēng)險(xiǎn)、次要風(fēng)險(xiǎn)以及為其它過程提供得依據(jù)。
風(fēng)險(xiǎn)監(jiān)控:涉及整個(gè)項(xiàng)目管理過程中的風(fēng)險(xiǎn)進(jìn)行應(yīng)對(duì)。該過程的輸出包括應(yīng)對(duì)風(fēng)險(xiǎn)的糾正措施以及風(fēng)險(xiǎn)管理計(jì)劃的更新。