軟件開發(fā)中的風(fēng)險是指軟件開發(fā)過程中及軟件產(chǎn)品本身可能造成的傷害或損失。風(fēng)險關(guān)注未來的事情,這意味著,風(fēng)險涉及選擇及選擇本身包含的不確定性,軟件開發(fā)過程及軟件產(chǎn)品都要面臨各種決策的選擇。風(fēng)險是介于確定性和不確定性之間的狀態(tài),是處于無知和完整知識之間的狀態(tài)。另一方面,風(fēng)險將涉及思想、觀念、行為、地點等因素的改變。
當(dāng)在軟件工程領(lǐng)域考慮風(fēng)險時,我們要關(guān)注以下的問題:什么樣的風(fēng)險會導(dǎo)致軟件項目的徹底失??;用戶需求、開發(fā)技術(shù)、目標(biāo)計算機以及所有其他與項目有關(guān)的因素的改變將會對按時交付和總體成功產(chǎn)生什么影響;對于采用何種方法和工具,需要多少人員參與工作的問題,我們?nèi)绾芜x擇和決策;軟件質(zhì)量要達(dá)到什么程度才是“足夠的”。當(dāng)沒有辦法消除風(fēng)險,甚至連試圖降低該風(fēng)險也存在疑問時,這些風(fēng)險就是真正的風(fēng)險了。在我們能夠標(biāo)識出軟件項目中的真正風(fēng)險之前,識別出所有對管理者和開發(fā)者而言均為明顯的風(fēng)險是很重要的。
風(fēng)險管理在項目管理中占有非常重要的地位。首先,有效的風(fēng)險管理可以提高項目的成功率。其次,風(fēng)險管理可以增加團隊的健壯性。與團隊成員一起進行風(fēng)險分析可以讓大家對困難有充分估計,對各種意外有心理準(zhǔn)備,大大提高組員的信心,從而穩(wěn)定隊伍。第三,有效的風(fēng)險管理可以幫助項目經(jīng)理抓住工作重點,將主要精力集中于重大風(fēng)險,將工作方式從被動救火轉(zhuǎn)變?yōu)橹鲃臃婪丁?
被動風(fēng)險策略是針對可能發(fā)生的風(fēng)險來監(jiān)督項目,直到它們變成真正的問題時,才會撥出資源來處理它們。更普遍的是,軟件項目組對風(fēng)險不聞不問,直到發(fā)生了錯誤才趕緊采取行動,試圖迅速地糾正錯誤。這種管理模式常常被稱為“救火模式”。當(dāng)補救的努力失敗后,項目就處在真正的危機之中了。
對于風(fēng)險管理的一個更聰明的策略是主動式的。主動策略早在技術(shù)工作開始之前就已經(jīng)啟動了。標(biāo)識出潛在的風(fēng)險,評估它們出現(xiàn)的概率及產(chǎn)生的影響,對風(fēng)險按重要性進行排序,然后,軟件項目組建立一個計劃來管理風(fēng)險。主動策略中的風(fēng)險管理,其主要目標(biāo)是預(yù)防風(fēng)險。但是,因為不是所有的風(fēng)險都能夠預(yù)防,所以,項目組必須建立一個應(yīng)付意外事件的計劃,使其在必要時能夠以可控的及有效的方式做出反應(yīng)m任何一個系統(tǒng)開發(fā)項目都應(yīng)將風(fēng)險管理作為軟件項目管理的重要內(nèi)容。
在進行軟件項目風(fēng)險管理時,要標(biāo)識出潛在的風(fēng)險,評估它們出現(xiàn)的概率及產(chǎn)生的影響,并按重要性加以排序,然后建立一個規(guī)劃來管理風(fēng)險。風(fēng)險管理的主要目標(biāo)是預(yù)防風(fēng)險,但不是所有的風(fēng)險都能夠預(yù)防。所以必須建立一個意外事件計劃,使其在必要時能以可控的和有效的方式做出反應(yīng)。風(fēng)險管理目標(biāo)的實現(xiàn)包含三個要素。首先,必須在項目計劃書中寫下如何進行風(fēng)險管理;第二,項目預(yù)算必須包含解決風(fēng)險所需的經(jīng)費,如果沒有經(jīng)費,就無法達(dá)到風(fēng)險管理的目標(biāo);第三,評估風(fēng)險時,風(fēng)險的影響也必須納入項目規(guī)劃中。
風(fēng)險管理涉及的主要過程包括:風(fēng)險識別,風(fēng)險量化,風(fēng)險應(yīng)對計劃制定和風(fēng)險監(jiān)控。風(fēng)險識別在項目的開始時就要進行,并在項目執(zhí)行中不斷進行。就是說,在項目的整個生命周期內(nèi),風(fēng)險識別是一個連續(xù)的過程。
風(fēng)險識別:風(fēng)險識別包括確定風(fēng)險的來源,風(fēng)險產(chǎn)生的條件,描述其風(fēng)險特征和確定哪些風(fēng)險事件有可能影響本項目。風(fēng)險識別不是一次就可以完成的事,應(yīng)當(dāng)在項目的自始至終定期進行。
風(fēng)險量化:涉及對風(fēng)險及風(fēng)險的相互作用的評估,是衡量風(fēng)險概率和風(fēng)險對項目目標(biāo)影響程度的過程。風(fēng)險量化的基本內(nèi)容是確定那些事件需要制定應(yīng)對措施。。
風(fēng)險應(yīng)對計劃制定:針對風(fēng)險量化的結(jié)果,為降低項目風(fēng)險的負(fù)面效應(yīng)制定風(fēng)險應(yīng)對策略和技術(shù)手段的過程。風(fēng)險應(yīng)對計劃依據(jù)風(fēng)險管理計劃、風(fēng)險排序、風(fēng)
險認(rèn)知等依據(jù),得出風(fēng)險應(yīng)對計劃、剩余風(fēng)險、次要風(fēng)險以及為其它過程提供得依據(jù)。
風(fēng)險監(jiān)控:涉及整個項目管理過程中的風(fēng)險進行應(yīng)對。該過程的輸出包括應(yīng)對風(fēng)險的糾正措施以及風(fēng)險管理計劃的更新。
每個步驟所使用的工具和方法:
風(fēng)險管理步驟 所使用的工具、方法
風(fēng)險識別 頭腦風(fēng)暴法、面談、Delphi法、核對表、SWOT技術(shù)
風(fēng)險量化 風(fēng)險因子計算、PERT估計、決策樹分析、風(fēng)險模擬
風(fēng)險應(yīng)對計劃制定 回避、轉(zhuǎn)移、緩和、接受
風(fēng)險監(jiān)控 核對表、定期項目評估、掙值分析