王成銳
摘 要:在所有軟件項(xiàng)目的開發(fā)過程中,由于存在難以預(yù)見和把控的不確定性因素,會(huì)給項(xiàng)目帶來難以預(yù)估的風(fēng)險(xiǎn),甚至導(dǎo)致整個(gè)項(xiàng)目的失敗。首先介紹了項(xiàng)目中軟件風(fēng)險(xiǎn)的背景,分析了如何識(shí)別這些風(fēng)險(xiǎn)。對(duì)項(xiàng)目中的風(fēng)險(xiǎn)管理分析、風(fēng)險(xiǎn)管理進(jìn)行了詳細(xì)的研究,提出對(duì)風(fēng)險(xiǎn)進(jìn)行管控的方法論。最后對(duì)軟件開發(fā)過程中常遇到的風(fēng)險(xiǎn)進(jìn)行了分析和研究,提出了減少或預(yù)防風(fēng)險(xiǎn)發(fā)生的幾種辦法。研究軟件項(xiàng)目過程中的風(fēng)險(xiǎn)管理,對(duì)于軟件開發(fā)和整個(gè)項(xiàng)目管理過程有著非常重要的現(xiàn)實(shí)意義,也為項(xiàng)目的按期交付,成本維護(hù)等起到重要的現(xiàn)實(shí)作用。
關(guān)鍵詞:軟件風(fēng)險(xiǎn):軟件項(xiàng)目:風(fēng)險(xiǎn)管理:風(fēng)險(xiǎn)控制:風(fēng)險(xiǎn)方法
隨著社會(huì)對(duì)軟件的需求增大,軟件的開發(fā)技術(shù)不斷更新,難度不斷增大,但軟件的數(shù)量卻依然增加很多,同時(shí)隨著社會(huì)節(jié)奏加快,軟件的供應(yīng)商需要提供不間斷的軟件更新服務(wù)。與此同時(shí),各種難度的上升,給企業(yè)在開發(fā)軟件的過程中加大了風(fēng)險(xiǎn)。軟件項(xiàng)目能否開發(fā)成功,關(guān)系著一個(gè)項(xiàng)目的生死存亡,而且隨著開發(fā)軟件的業(yè)務(wù)增大,用戶對(duì)軟件的質(zhì)量和用途也隨之提高,這對(duì)軟件開發(fā)商造成了巨大的壓力,在這種情況下,軟件風(fēng)險(xiǎn)管理和控制成為軟件開發(fā)成敗的關(guān)鍵點(diǎn)。
根據(jù)有關(guān)資料調(diào)查顯示,有百分之十到百分之三十的軟件項(xiàng)目在開發(fā)的過程中被取消,剩下的軟件項(xiàng)目有的是沒有在預(yù)期內(nèi)完成,或者是軟件開發(fā)的過程中超出了經(jīng)費(fèi)的預(yù)算。除此之外還有軟件項(xiàng)目因?yàn)轱L(fēng)險(xiǎn)管理和控制失敗的大約占百分之九十。目前國(guó)內(nèi)的大多數(shù)軟件開發(fā)企業(yè)還缺乏對(duì)軟件開發(fā)項(xiàng)目的風(fēng)險(xiǎn)認(rèn)識(shí),缺少系統(tǒng)、有效的度量和評(píng)價(jià)的手段。所以風(fēng)險(xiǎn)管理是項(xiàng)目管理中不可缺少的一部分,而軟件項(xiàng)目的風(fēng)險(xiǎn)管理更是軟件項(xiàng)目管理中的重要內(nèi)容。大量的統(tǒng)計(jì)表明,實(shí)行有效的風(fēng)險(xiǎn)管理是軟件項(xiàng)目開發(fā)過程中減少損失的一種重要手段。風(fēng)險(xiǎn)管理不僅僅存在于項(xiàng)目可行性研究階段,是貫穿在軟件項(xiàng)目開發(fā)周期的全過程中。建立有效的風(fēng)險(xiǎn)識(shí)別、風(fēng)險(xiǎn)分析、風(fēng)險(xiǎn)計(jì)劃、風(fēng)險(xiǎn)跟蹤和風(fēng)險(xiǎn)對(duì)策的機(jī)制,是有效提高軟件開發(fā)成功率的方法之一。
一、風(fēng)險(xiǎn)管理的內(nèi)容
為了最大化的減少軟件風(fēng)險(xiǎn)的發(fā)生,可對(duì)軟件項(xiàng)目進(jìn)行風(fēng)險(xiǎn)管理。而軟件項(xiàng)目風(fēng)險(xiǎn)管理過程是指軟件風(fēng)險(xiǎn)從認(rèn)識(shí)到采取措施的過程包括風(fēng)險(xiǎn)識(shí)別、風(fēng)險(xiǎn)分析、風(fēng)險(xiǎn)計(jì)劃、風(fēng)險(xiǎn)跟蹤和風(fēng)險(xiǎn)對(duì)策等,從而將可控因素最大化,將不可控因素到最小,從而對(duì)未知的風(fēng)險(xiǎn)消滅,從而對(duì)風(fēng)險(xiǎn)進(jìn)行回避或者緩解。
1.1風(fēng)險(xiǎn)識(shí)別
風(fēng)險(xiǎn)識(shí)別的常用方法通常有現(xiàn)場(chǎng)觀察法,財(cái)務(wù)報(bào)表法、環(huán)境分析法、流程圖法、座談法、相關(guān)部門配合法等。風(fēng)險(xiǎn)識(shí)別要確定影響本項(xiàng)目的潛在威脅的來源以及在何種條件有影響, 怎么產(chǎn)生并有什么特性等,風(fēng)險(xiǎn)識(shí)別并不是一次就可以后顧無憂的,需要貫徹到整個(gè)軟件的生命周期中。
1.2風(fēng)險(xiǎn)評(píng)估
風(fēng)險(xiǎn)評(píng)估時(shí)對(duì)風(fēng)險(xiǎn)影響力進(jìn)行衡量的活動(dòng),即衡量風(fēng)險(xiǎn)發(fā)生的概率和風(fēng)險(xiǎn)發(fā)生后對(duì)項(xiàng)目目標(biāo)的影響程度,從而為后面制定風(fēng)險(xiǎn)對(duì)策提供依據(jù)。對(duì)已識(shí)別的風(fēng)險(xiǎn)要進(jìn)行估計(jì)和評(píng)價(jià),常用的方法有:概率分布、外推法、多目標(biāo)分析法等。
1.3風(fēng)險(xiǎn)計(jì)劃
風(fēng)險(xiǎn)計(jì)劃:風(fēng)險(xiǎn)計(jì)劃是通過技術(shù)手段或者其他方法來降低風(fēng)險(xiǎn)的發(fā)生, 將風(fēng)險(xiǎn)評(píng)估后的結(jié)果進(jìn)行處理。風(fēng)險(xiǎn)計(jì)劃就是在軟件開發(fā)的過程中起指導(dǎo)作用,如先處理那個(gè)風(fēng)險(xiǎn),怎么消除風(fēng)險(xiǎn),如何避免風(fēng)險(xiǎn)等。
1.4風(fēng)險(xiǎn)應(yīng)對(duì)
風(fēng)險(xiǎn)應(yīng)對(duì)就是對(duì)風(fēng)險(xiǎn)計(jì)劃的執(zhí)行,共有三種方向來進(jìn)行風(fēng)險(xiǎn)應(yīng)對(duì)。一是風(fēng)險(xiǎn)控制法,對(duì)存在風(fēng)險(xiǎn)進(jìn)行主動(dòng)出擊進(jìn)行消滅或許能避免風(fēng)險(xiǎn):二是轉(zhuǎn)移風(fēng)險(xiǎn),將存在的風(fēng)險(xiǎn)進(jìn)行轉(zhuǎn)移:三是風(fēng)險(xiǎn)存留,就是風(fēng)險(xiǎn)威脅不大時(shí),可以對(duì)風(fēng)險(xiǎn)不采取任何措施。當(dāng)然在軟件的開發(fā)過程中,要想有效的消滅風(fēng)險(xiǎn),就得讓風(fēng)險(xiǎn)還在初級(jí)階段的時(shí)候消滅。再者就是風(fēng)險(xiǎn)發(fā)生時(shí),要考慮后果再最大化的緩解風(fēng)險(xiǎn)。
二、常見風(fēng)險(xiǎn)分析和研究
2.1組織和管理風(fēng)險(xiǎn)
一是管理層做出了錯(cuò)誤決定,技術(shù)決策導(dǎo)致計(jì)劃進(jìn)度緩慢, 延長(zhǎng)計(jì)劃時(shí)間; 二是低效的項(xiàng)目組結(jié)構(gòu)降低生產(chǎn)率;三是管理層審查決策的周期比預(yù)期的時(shí)間長(zhǎng);四是預(yù)算削減,打亂項(xiàng)目計(jì)劃;五是工作失誤與重復(fù)工作;六是非技術(shù)的第三方的工作時(shí)間比預(yù)期的延長(zhǎng)。
2.2需求風(fēng)險(xiǎn)
在軟件開發(fā)的過程中,如果不能控制和需求有關(guān)的風(fēng)險(xiǎn)因素,那么將會(huì)產(chǎn)生不好的結(jié)果,如軟件有可能是錯(cuò)誤的軟件或者質(zhì)量不合格的軟件。當(dāng)然很多軟件開發(fā)項(xiàng)目都會(huì)面對(duì)這些不確定的威脅,如果早期對(duì)于這些不確定的風(fēng)險(xiǎn)置之不理,那么在項(xiàng)目過程中也得不到解決,那么“千里之堤,潰于蟻穴” ,這些不能控制的威脅將對(duì)軟件成功的開發(fā)造成巨大的威脅。與客戶相關(guān)的風(fēng)險(xiǎn)因素有,第一客戶對(duì)軟件缺少清晰的認(rèn)識(shí),沒有對(duì)開發(fā)的軟件各方面的特性以及功能有個(gè)全面了解。第二對(duì)產(chǎn)品需求缺少認(rèn)同,當(dāng)軟件成功開發(fā)時(shí),但對(duì)軟件由于認(rèn)識(shí)度不夠或者別的原因?qū)е聦?duì)開發(fā)出來的軟件缺少認(rèn)同感。同時(shí)還存在一些需求風(fēng)險(xiǎn)因素如在做需求中客戶參與不夠,又或者是沒有優(yōu)先需求,再就是由于不確定的需要導(dǎo)致新的市場(chǎng),其次是不斷變化需求和缺少有效的需求變化管理過程以及對(duì)需求的變化缺少相關(guān)分析等。
2.3合同風(fēng)險(xiǎn)
風(fēng)險(xiǎn)存在的概率很大,大多是因?yàn)楹贤锏臈l款比較多引起的。比如如果在軟件開發(fā)的過程中,沒有對(duì)開發(fā)軟件的范圍有準(zhǔn)確的定義,并且成為合同中一部分時(shí),此項(xiàng)目即便成功了,也很難驗(yàn)收,并且項(xiàng)目開發(fā)的時(shí)間加長(zhǎng)了,極大的加大了開發(fā)的成本。這就符合了軟件項(xiàng)目經(jīng)常以一定的價(jià)格簽訂合同,但簽約方卻希望更多的功能。
2.4設(shè)計(jì)和實(shí)施的風(fēng)險(xiǎn)
在軟件開發(fā)的準(zhǔn)備工作,因?yàn)樵O(shè)計(jì)不滿足要求,導(dǎo)致軟件重復(fù)設(shè)計(jì)。在無法使用已有的代碼或者庫(kù)實(shí)現(xiàn)新開發(fā)軟件,導(dǎo)致軟件的必要功能有問題,因此軟件開發(fā)人員需要重新設(shè)計(jì)代碼或庫(kù)現(xiàn)實(shí)又或者重新開發(fā)軟件的功能。其次認(rèn)為增強(qiáng)工具能節(jié)省很多時(shí)間,但卻沒達(dá)到應(yīng)有的預(yù)期效果。最后,不能有效的連接整合開發(fā)的模塊,需要重新設(shè)計(jì)和開發(fā)。
三、結(jié)論
通過以上的研究,可以說項(xiàng)目風(fēng)險(xiǎn)管理是項(xiàng)目管理的核心和難點(diǎn)而針對(duì)項(xiàng)目中的相關(guān)風(fēng)險(xiǎn)分析與應(yīng)對(duì)措施, 我覺得我們的主要研究工作應(yīng)該如下幾點(diǎn):
(1) 要較為全面地了解風(fēng)險(xiǎn)的概念與特點(diǎn),認(rèn)識(shí)項(xiàng)目與項(xiàng)目風(fēng)險(xiǎn)、項(xiàng)目管理與項(xiàng)目風(fēng)險(xiǎn)的區(qū)別;
(2) 風(fēng)險(xiǎn)管理實(shí)際上是一種經(jīng)驗(yàn)和方法的積累,其應(yīng)對(duì)風(fēng)險(xiǎn)的能力大小也主要取決于對(duì)相關(guān)經(jīng)驗(yàn)與資料的整理與積累, 并且對(duì)于過往經(jīng)驗(yàn)的運(yùn)用是否正確等。
(3) 風(fēng)險(xiǎn)的識(shí)別是風(fēng)險(xiǎn)分析和應(yīng)對(duì)的基礎(chǔ)和前提,是關(guān)系到項(xiàng)目成敗與否的關(guān)鍵。
(4) 得出了對(duì)于小型軟件公司的項(xiàng)目管理的方法和可能存在風(fēng)險(xiǎn)的最高的階段中。要杜絕掉職責(zé)不明、權(quán)限不清、人浮于事的情況發(fā)生,應(yīng)該建設(shè)一個(gè)高效,團(tuán)結(jié)、配合程度高的精干的開發(fā)團(tuán)隊(duì)。
參考文獻(xiàn):
[1] 林時(shí)蘊(yùn). 軟件項(xiàng)目風(fēng)險(xiǎn)管理研究[D]. 合肥工業(yè)大學(xué), 2007.
[2] 牟玲玲. 軟件項(xiàng)目風(fēng)險(xiǎn)管理研究綜述[J]. journal6, 2006, 43(10):202-205.
[3]劉明友, 帥建鋒. 基于CMMI的軟件項(xiàng)目風(fēng)險(xiǎn)管理研究[J]. 電腦知識(shí)與技術(shù), 2013(1):63-66.
[4] 徐俊, 雷發(fā)勝. 復(fù)雜軟件項(xiàng)目風(fēng)險(xiǎn)管理研究[J]. 軟件導(dǎo)刊, 2008(11):47-49.