软件项目风险管理
本文通過(guò)文獻(xiàn)綜述總結(jié)了軟件項(xiàng)目中的常見(jiàn)風(fēng)險(xiǎn)因素及其分類。
從上個(gè)世紀(jì)發(fā)展到現(xiàn)在,軟件早已從解決特殊問(wèn)題的途徑和信息數(shù)據(jù)分析的工具演化成一門獨(dú)立的產(chǎn)業(yè),但在提供客戶所需要的軟件的能力方面取得的進(jìn)展卻十分遲緩,軟件行業(yè)一直受到無(wú)數(shù)次進(jìn)度延遲、交付產(chǎn)品質(zhì)量差的困擾。同時(shí)客戶對(duì)“更好、更快、更便宜”的需求的期盼和軟件復(fù)雜程度的增加也大大提高了軟件開(kāi)發(fā)人員提高了軟件開(kāi)發(fā)人員提高軟件性能的標(biāo)準(zhǔn)。軟件風(fēng)險(xiǎn)管理研究表明,在行業(yè)范圍內(nèi),只有16.2%的軟件項(xiàng)目可以做到按時(shí)、按預(yù)算進(jìn)行,其余52.7%是在功能減少的情況下交付的,31.1%是在項(xiàng)目完成之前取消的。
1 風(fēng)險(xiǎn)與不確定性
在大多數(shù)情況下以客觀的尺度衡量不確定性是非常困難的,不確定性是人主觀心理上的一種難以度量的想法,不確定性的范圍包括是否發(fā)生的不確定性、發(fā)生于何時(shí)的不確定性、發(fā)生情況的不確定性以及發(fā)生帶來(lái)的影響的后果程度的不確定性。在軟件項(xiàng)目開(kāi)發(fā)過(guò)程中,缺少信息是軟件風(fēng)險(xiǎn)管理的必要條件,在大多數(shù)情況下也是軟件風(fēng)險(xiǎn)管理的普遍特征。缺少信息直接會(huì)導(dǎo)致信息的不確定性,從而導(dǎo)致項(xiàng)目管理者的決策產(chǎn)生不確定性,進(jìn)而造成風(fēng)險(xiǎn)。
不確定性導(dǎo)致風(fēng)險(xiǎn),即潛在的損失。不確定性可以從不同視角進(jìn)行分類,下表從三個(gè)不同的角度界定了不確定性的類別。
| 觀念 | 不確定性分類 | 定義 | |
| 管理人員 | 時(shí)間 | 事件可能發(fā)生的時(shí)間或應(yīng)對(duì)能力的不確定性。 | |
| 控制 | 沒(méi)有權(quán)力做出決策,或?qū)嵤┻^(guò)程中的不一致。 | ||
| 信息 | 做決策所依據(jù)的信息不充分或不準(zhǔn)確。 | ||
| 分析人員 | 描述 | 沒(méi)有明確定義系統(tǒng)的變量的標(biāo)識(shí)信息。 | |
| 量度 | 缺少將數(shù)據(jù)賦值給描述系統(tǒng)的變量的信息。 | ||
| 事件結(jié)果 | 缺少關(guān)于可能發(fā)生的結(jié)果的信息。 | ||
| 開(kāi)發(fā)人員 | 指導(dǎo)價(jià)值 | 缺乏明確的目標(biāo)。 | |
| 工作環(huán)境 | 缺乏關(guān)于當(dāng)前決策情況的相關(guān)信息。 | ||
| 相關(guān)決策 | 缺乏協(xié)調(diào)。 | ||
軟件項(xiàng)目中的風(fēng)險(xiǎn)是來(lái)源于軟件項(xiàng)目開(kāi)發(fā)過(guò)程中及產(chǎn)品本身會(huì)帶來(lái)的損失或危害。風(fēng)險(xiǎn)針對(duì)的是還沒(méi)有發(fā)生的未來(lái),即風(fēng)險(xiǎn)來(lái)源于各種選擇的不確定性。風(fēng)險(xiǎn)處于確定性和可變性之間,是處于混沌和清晰明了之間的狀態(tài)。進(jìn)行風(fēng)險(xiǎn)分析時(shí),重要的是量化不確定性的程度以及每個(gè)風(fēng)險(xiǎn)可能造成影響的水平。同時(shí),風(fēng)險(xiǎn)還涉及想法、行動(dòng)、態(tài)度、環(huán)境等因素的改變,比如項(xiàng)目缺少項(xiàng)目管理者的支持、人員流動(dòng)、項(xiàng)目組缺乏組織成熟度等等。風(fēng)險(xiǎn)無(wú)處不在,只有對(duì)風(fēng)險(xiǎn)采取正確的應(yīng)對(duì)措施,才不會(huì)讓項(xiàng)目開(kāi)發(fā)過(guò)程走偏。
風(fēng)險(xiǎn)通常被定量地定義為概率乘上潛在的損害成本。風(fēng)險(xiǎn)的一種定義為:
在該公式中,表示某種損失出現(xiàn)的概率, 表示其損害成本的大小。之后,Charette注意到,每一個(gè)潛在的損害都必須對(duì)應(yīng)的定義一個(gè)描述了該風(fēng)險(xiǎn)的存在原因或觸發(fā)該風(fēng)險(xiǎn)的環(huán)境或事件,因此他用一個(gè)三元組公式改進(jìn)了風(fēng)險(xiǎn)的定義:
在該公式中, 表示在什么場(chǎng)景下會(huì)出現(xiàn)損失, 表示出現(xiàn)該損失的概率, 表示其損害成本的大小。場(chǎng)景E中的觸發(fā)因素或風(fēng)險(xiǎn)起因即為風(fēng)險(xiǎn)因素, 可以表示為一系列風(fēng)險(xiǎn)因素( )和時(shí)間( )的函數(shù):
風(fēng)險(xiǎn)因素是風(fēng)險(xiǎn)發(fā)生的潛在因素,是造成損失的間接和內(nèi)在的原因,比如軟件項(xiàng)目開(kāi)發(fā)過(guò)程中進(jìn)度表估算不切實(shí)際,相對(duì)于軟件項(xiàng)目超期交付而言,其就是風(fēng)險(xiǎn)因素。
2 軟件項(xiàng)目風(fēng)險(xiǎn)管理
軟件項(xiàng)目風(fēng)險(xiǎn)管理簡(jiǎn)單來(lái)說(shuō)就是管理軟件開(kāi)發(fā)項(xiàng)目過(guò)程中的風(fēng)險(xiǎn),即潛在的風(fēng)險(xiǎn)因素。Boehm在1989年提出了軟件風(fēng)險(xiǎn)管理的經(jīng)典模型,即六個(gè)步驟。首先將風(fēng)險(xiǎn)管理分為:風(fēng)險(xiǎn)評(píng)估、風(fēng)險(xiǎn)控制,其次,風(fēng)險(xiǎn)評(píng)估由風(fēng)險(xiǎn)識(shí)別、風(fēng)險(xiǎn)分析和風(fēng)險(xiǎn)優(yōu)先級(jí)排序構(gòu)成,風(fēng)險(xiǎn)控制由風(fēng)險(xiǎn)管理規(guī)劃、風(fēng)險(xiǎn)處理和風(fēng)險(xiǎn)監(jiān)控組成。
以下是對(duì)Boehm的軟件風(fēng)險(xiǎn)管理的六個(gè)步驟的簡(jiǎn)單解釋:
(1)風(fēng)險(xiǎn)識(shí)別:軟件風(fēng)險(xiǎn)管理的第一步,同時(shí)也是軟件風(fēng)險(xiǎn)管理的基礎(chǔ),只有識(shí)別出軟件項(xiàng)目自身的潛在風(fēng)險(xiǎn)才能主動(dòng)的選擇策略去應(yīng)對(duì)風(fēng)險(xiǎn)。
(2)風(fēng)險(xiǎn)分析:分析識(shí)別出的風(fēng)險(xiǎn)會(huì)對(duì)軟件項(xiàng)目造成什么影響,影響程度會(huì)有多大,會(huì)耗費(fèi)多少資源等等。
(3)風(fēng)險(xiǎn)優(yōu)先級(jí)排序:根據(jù)風(fēng)險(xiǎn)分析的結(jié)果進(jìn)行優(yōu)先級(jí)排序,結(jié)合風(fēng)險(xiǎn)影響和資源供給的客觀因素,對(duì)風(fēng)險(xiǎn)處理的嚴(yán)重級(jí)別進(jìn)行排序。
(4)風(fēng)險(xiǎn)管理規(guī)劃:風(fēng)險(xiǎn)管理規(guī)劃是規(guī)劃和制定如何進(jìn)行軟件項(xiàng)目風(fēng)險(xiǎn)管理計(jì)劃的過(guò)程,定義了風(fēng)險(xiǎn)應(yīng)對(duì)方案涉及的方法、人員、時(shí)間等因素。
(5)風(fēng)險(xiǎn)處理:針對(duì)不同種類、規(guī)模、特定的風(fēng)險(xiǎn)采取對(duì)應(yīng)的措施使風(fēng)險(xiǎn)損失對(duì)軟件項(xiàng)目造成的影響最小,比如回避、預(yù)防、轉(zhuǎn)移等等。
(6)風(fēng)險(xiǎn)監(jiān)控:監(jiān)控項(xiàng)目風(fēng)險(xiǎn)管理計(jì)劃的實(shí)施過(guò)程,目的是核對(duì)措施的實(shí)際效果與預(yù)想是否一致,以判斷接下來(lái)采取什么行動(dòng)。
3 軟件項(xiàng)目風(fēng)險(xiǎn)因素分類
為了更好的歸納整理軟件風(fēng)險(xiǎn)因素,各種各樣的風(fēng)險(xiǎn)因素分類方法也被提出。分類法為組織和研究軟件開(kāi)發(fā)問(wèn)題的廣度提供了一個(gè)框架,因此,它是激發(fā)和組織整個(gè)軟件開(kāi)發(fā)風(fēng)險(xiǎn)的基礎(chǔ)。根據(jù)不同領(lǐng)域的研究需求,軟件項(xiàng)目風(fēng)險(xiǎn)因素有多種不同的分類方法:有的根據(jù)軟件開(kāi)發(fā)過(guò)程分為需求風(fēng)險(xiǎn)、設(shè)計(jì)風(fēng)險(xiǎn)、編碼風(fēng)險(xiǎn)、測(cè)試風(fēng)險(xiǎn)等等;有的根據(jù)項(xiàng)目數(shù)據(jù)類別分為項(xiàng)目風(fēng)險(xiǎn)、團(tuán)隊(duì)風(fēng)險(xiǎn)、任務(wù)風(fēng)險(xiǎn)、過(guò)程風(fēng)險(xiǎn)等等……SEI在1990年提出了一套軟件風(fēng)險(xiǎn)管理的標(biāo)準(zhǔn),里面提到一種軟件風(fēng)險(xiǎn)因素分類的方法,該分類方法在領(lǐng)域內(nèi)被大多數(shù)學(xué)者承認(rèn)并使用,具備很大的參考價(jià)值,如下圖。
SEI的標(biāo)準(zhǔn)將軟件項(xiàng)目風(fēng)險(xiǎn)因素分為三個(gè)類別:產(chǎn)品工程類(由構(gòu)建要交付給客戶的產(chǎn)品所需的智力和物理活動(dòng)組成,包括完整的系統(tǒng)硬件、軟件和文檔)、開(kāi)發(fā)環(huán)境類(用于生產(chǎn)產(chǎn)品的方法、程序和工具)、程序約束類(開(kāi)發(fā)軟件的合同、組織和操作因素,但通常不在管理部門的直接控制范圍之內(nèi),即外部因素)。
?
?
?
總結(jié)
- 上一篇: matlab的算法java_matlab
- 下一篇: Microsoft Dynamics C