軟件項目風(fēng)險管理控制措施

時間:2022-05-17 10:45:21

導(dǎo)語:軟件項目風(fēng)險管理控制措施一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

軟件項目風(fēng)險管理控制措施

摘要:軟件項目開發(fā)需要投入大量的人力、物力和財力,但在開發(fā)的過程中存在著諸多不確定性和可變性,因而有必要對軟件項目風(fēng)險進行管理與控制。本文通過對軟件項目全程的風(fēng)險識別、分析、應(yīng)對及監(jiān)測,在項目開發(fā)各階段積極做好風(fēng)險防控工作,以達到降低項目風(fēng)險、減少風(fēng)險損失的目的。

關(guān)鍵詞:軟件項目開發(fā);風(fēng)險管理;風(fēng)險防控

1引言

風(fēng)險是指在某項活動開展的過程中,一些突發(fā)的、不確定的因素對活動參與者造成損害、對自然環(huán)境造成破壞的概率[1]。與其他工程項目一樣,軟件項目的開發(fā)也存在著各種各樣的風(fēng)險,如項目資金透支、工期延長、系統(tǒng)不能滿足需求等。因而在軟件開發(fā)的過程中,做好風(fēng)險管理將有助于降低開發(fā)風(fēng)險,保證開發(fā)質(zhì)量。

2軟件項目風(fēng)險分類

2.1技術(shù)風(fēng)險

軟件在分析、設(shè)計、測試及實施過程中,可能發(fā)生的潛在技術(shù)問題給軟件項目帶來的危害稱為技術(shù)風(fēng)險,如采用了陳舊或尚不成熟的技術(shù)、系統(tǒng)文檔編制不規(guī)范等。

2.2管理風(fēng)險

管理風(fēng)險是指由于項目在預(yù)算、人員、進度、資源等方面缺乏計劃、控制與管理,從而對軟件項目產(chǎn)生的不良影響。

2.3商業(yè)風(fēng)險

商業(yè)風(fēng)險又稱為市場風(fēng)險,包括開發(fā)出來的軟件產(chǎn)品不符合市場需求、對軟件產(chǎn)品定位不清從而缺乏市場競爭力、市場競品較多競爭激烈等。

2.4安全風(fēng)險

安全風(fēng)險主要包括自然風(fēng)險、人為風(fēng)險、外部環(huán)境風(fēng)險,如盜版、病毒等。

3軟件項目風(fēng)險管理步驟

3.1風(fēng)險識別

風(fēng)險識別階段需要識別出哪些風(fēng)險會影響軟件項目的開發(fā),包括這些風(fēng)險的類別、因素、出處、后果等內(nèi)容[2]。風(fēng)險識別的常用方法包括以下幾種。(1)專家調(diào)查法。就軟件項目開發(fā)風(fēng)險問題,征詢項目相關(guān)行業(yè)領(lǐng)域?qū)<业囊庖?,將收集到的意見和建議整理形成報告,隨后將報告發(fā)送給各位專家再次進行征詢。如此反復(fù),經(jīng)歷數(shù)輪后,當專家們的意見趨于一致時就可得出最后結(jié)論。(2)頭腦風(fēng)暴法。將項目開發(fā)小組成員、立項單位代表、邀請的專家顧問召集起來,通過會議的方式,就項目開發(fā)風(fēng)險展開討論交流,以期對項目風(fēng)險進行準確識別、分析和預(yù)測。(3)風(fēng)險檢測表法。設(shè)計并使用各類條目式風(fēng)險檢測表,幫助項目小組識別各種風(fēng)險。如開發(fā)人員風(fēng)險檢測表,可以羅列出諸如開發(fā)人員技術(shù)水平如何、開發(fā)人員是否具有類似項目開發(fā)經(jīng)驗、開發(fā)人員的人數(shù)是否合適、開發(fā)人員是否能夠自始至終地參加軟件開發(fā)工作、開發(fā)人員是否能集中全部精力投入軟件開發(fā)工作、開發(fā)人員是否接受過必要的培訓(xùn)、開發(fā)人員的人員流動是否能保證工作的連續(xù)性等條目。通過對這些問題的分析與回答,可以識別出人員因素對軟件項目帶來的風(fēng)險。

3.2風(fēng)險分析

風(fēng)險分析主要是針對風(fēng)險事件發(fā)生概率及其后果進行評估[3]。為完成對各種風(fēng)險的評估,需建立風(fēng)險度量指標體系,明確各種風(fēng)險帶來的后果與損失,估算風(fēng)險對軟件項目的影響程度,最終給出風(fēng)險估算的結(jié)果[4]。風(fēng)險分析時,常使用四元組[R,P,I,W]來對風(fēng)險進行描述。其中R代表風(fēng)險,P代表風(fēng)險發(fā)生的概率,I代表風(fēng)險帶來的影響,W代表風(fēng)險對項目影響的權(quán)重。由于能否按照合同規(guī)定的軟件性能、時間和金額等條款完成軟件開發(fā)工作,對項目的順利驗收起著至關(guān)重要的作用。因而重點選取成本、進度、軟件性能三個方面對軟件項目風(fēng)險進行度量,當某一方面的度量值達到或超過臨界點時,軟件項目將被迫終止。通常風(fēng)險評估的過程可分為四步:(1)根據(jù)風(fēng)險識別的結(jié)果,分析每種風(fēng)險的發(fā)生概率,每種風(fēng)險對項目成本、進度、軟件性能三方面影響的大小,依據(jù)風(fēng)險后果的嚴重程度為每種風(fēng)險賦予不同的風(fēng)險權(quán)重。(2)定義每種風(fēng)險的四元組[R,P,I,W]。(3)定義項目被迫終止的臨界點。(4)預(yù)測風(fēng)險組合對項目的綜合影響[5]。

3.3風(fēng)險應(yīng)對

對可能發(fā)生的各種風(fēng)險需擬定相應(yīng)的應(yīng)對策略。常用的應(yīng)對策略有預(yù)防風(fēng)險、風(fēng)險轉(zhuǎn)移、風(fēng)險回避等。預(yù)防風(fēng)險通常指通過提高軟件項目各階段的可靠性和規(guī)范性,從而降低風(fēng)險發(fā)生概率。風(fēng)險轉(zhuǎn)移是指利用合同、保險、擔(dān)保、出售、發(fā)包等方式[6],將風(fēng)險發(fā)生時的部分損失轉(zhuǎn)移至第三方,以降低己方風(fēng)險損失。風(fēng)險回避是指當某些風(fēng)險的發(fā)生不可避免且后果較嚴重時,可對項目方案進行調(diào)整,更甚者則主動放棄該項目,以免造成不可挽回的損失。在完成風(fēng)險識別、分析和應(yīng)對策略選擇后,應(yīng)形成一個易于理解的風(fēng)險分析與應(yīng)對表,如表1所示。

3.4風(fēng)險監(jiān)控

風(fēng)險監(jiān)控是指依據(jù)前期風(fēng)險分析結(jié)果,監(jiān)控風(fēng)險應(yīng)對措施的實施情況,加強對項目全過程風(fēng)險的管控[7]。風(fēng)險監(jiān)控的目的是監(jiān)測風(fēng)險管理策略和應(yīng)對措施的實際執(zhí)行效果,看其是否達到預(yù)期目標,同時根據(jù)當前風(fēng)險監(jiān)控結(jié)果及時修正風(fēng)險分析與應(yīng)對表,或?qū)椖恐行伦R別的風(fēng)險進行分析并制定相應(yīng)的風(fēng)險應(yīng)對措施[8]。

4風(fēng)險防控措施

4.1需求分析階段

軟件需求是軟件開發(fā)的依據(jù),也是軟件驗收的標準,因此對軟件需求的精準確定就屬于軟件項目開發(fā)的重點和難點。一方面用戶開始時很難完整且清楚地對軟件系統(tǒng)的功能、性能、運行環(huán)境等方面的需求進行準確表達。但隨著項目的深入,用戶對軟件的需求可能會越來越明確,也越來越多,甚至有時到測試階段還會出現(xiàn)有用戶要求更改軟件需求的情況。這對系統(tǒng)分析人員和軟件開發(fā)人員來說是難以接受的。另一方面,用戶、系統(tǒng)分析人員和軟件開發(fā)人員對軟件需求描述的方式也各不相同。用戶希望使用自然語言對軟件需求進行描述,而專業(yè)人員則希望采用結(jié)構(gòu)化的說明語言,如數(shù)據(jù)流圖、數(shù)據(jù)字典等。這樣既可以避免自然語言容易引起的二義性和不確定性,又能為下一步軟件設(shè)計工作提供便利。針對這類情況的防控措施包括:(1)加強對立項單位的組織結(jié)構(gòu)、工作流程和現(xiàn)有軟件系統(tǒng)的了解。(2)系統(tǒng)分析人員需掌握一些獲取用戶需求的技術(shù)和方式。(3)可將公司已投入使用的類似軟件作為軟件原型,提交給用戶試用,便于系統(tǒng)分析人員對用戶需求的收集。(4)組織由立項單位、系統(tǒng)分析人員和系統(tǒng)設(shè)計人員共同參與的需求評審會,最終形成達成一致的需求分析階段的結(jié)果——需求規(guī)格說明書。(5)對需求分析階段完成后用戶提出的新需求,可采取留在以后版本升級中處理,如立項單位要求必須加入的,則可與客戶商量延長開發(fā)時間、增加合同金額。

4.2設(shè)計與開發(fā)階段

如果軟件產(chǎn)品采用原型法進行開發(fā),雖能降低因需求不明確帶來的項目風(fēng)險,但由于原型法采用循環(huán)迭代的方式來不斷滿足用戶需求,這樣可能會導(dǎo)致軟件的設(shè)計與開發(fā)超出預(yù)期的花費和時間,并且在反復(fù)修改的過程中,容易使客戶對項目是否能夠順利完成產(chǎn)生疑慮。針對這類風(fēng)險,一方面可將生命周期法與原型法結(jié)合在一起,互為補充,軟件開發(fā)中以結(jié)構(gòu)化生命周期法為主要方法,在部分環(huán)節(jié)則利用原型法來快速獲取用戶反饋信息[9]。另一方面做好與客戶的溝通,及時告知客戶軟件設(shè)計與實現(xiàn)的進度與過程[10]。

4.3測試階段

測試階段常面臨的風(fēng)險為測試用例不完善。這樣可能導(dǎo)致測試就不夠全面,軟件中存在的錯誤未能發(fā)現(xiàn),使得軟件性能降低。可采取的防控措施包括:(1)對測試人員進行軟件需求的培訓(xùn)。(2)加強對測試用例的評審。(3)在條件允許的情況下,可以邀請用戶參與軟件測試。4.4實施階段實施階段可能會面臨客戶過于依賴技術(shù)人員,遲遲不肯驗收項目的風(fēng)險。采取的防控措施包括:(1)形成規(guī)范的《用戶手冊》,加強對軟件用戶的培訓(xùn)。(2)做好領(lǐng)導(dǎo)層的工作。(3)宣講公司后期的服務(wù)范圍和服務(wù)管理的規(guī)范性。新舊系統(tǒng)切換的過程中也存在一定風(fēng)險。如果轉(zhuǎn)換工作缺乏規(guī)范的管理和可靠的安全保障,勢必會造成嚴重的后果,甚至影響正常工作。面對這種情況,一是需要特別注意原系統(tǒng)和新系統(tǒng)的文件保護工作,加強人員的管理和數(shù)據(jù)的備份;二是根據(jù)用戶要求、立項單位狀況、轉(zhuǎn)換過程中的進展情況調(diào)整系統(tǒng)切換進程。

5結(jié)束語

軟件開發(fā)過程中存在著各式風(fēng)險,對每種風(fēng)險都需要實施風(fēng)險管理。由此可見,風(fēng)險管理本身也可構(gòu)成軟件項目中的一個子項目??茖W(xué)地制定軟件項目風(fēng)險管理計劃,在必要的人力資源和經(jīng)費的支持下,持續(xù)完成風(fēng)險識別、分析、應(yīng)對和監(jiān)控等風(fēng)險管理步驟[11],做好項目開發(fā)各階段的風(fēng)險防控工作,從而達到將風(fēng)險控制在最低限度,減少風(fēng)險對軟件項目的影響,更好地控制軟件開發(fā)成本和進度的目的。

參考文獻

[1]楊一平,盧山.管理信息系統(tǒng).北京:機械工業(yè)出版社,2018

[2]索紅軍.軟件項目風(fēng)險分析與研究.軟件導(dǎo)刊,2017,16(08):128-131

[3]顧單.S公司戰(zhàn)略型物料采購策略研究[碩士學(xué)位論文].上海交通大學(xué),上海,2015

[4]百度文庫.軟件項目的風(fēng)險分析.

[5]韓最蛟.軟件工程基礎(chǔ).北京:清華大學(xué)出版社,2009

[6]王慧.公路工程施工階段成本風(fēng)險管理與分析控制.建材與裝飾,2019(24):259-260

[7]梅旭東.M公司卡拉奇核電站項目風(fēng)險管理研究[碩士學(xué)位論文].東華大學(xué),上海,2018

[8]劉強管理.基于國際工程項目全生命周期的風(fēng)險管理.土木工程與管理學(xué)報,2017,34(06):1-9+16

[9]苑隆寅.圖書館在城鄉(xiāng)統(tǒng)籌發(fā)展中的作用與知識服務(wù)研究[碩士學(xué)位論文].重慶大學(xué),重慶,2012

[10]馬興鵬.高校綜合分析平臺項目的系統(tǒng)分析與設(shè)計[碩士學(xué)位論文].東北大學(xué),遼寧,2011

[11]詹紅艷.軟件項目管理中風(fēng)險控制策略研究.軟件,2019,40(06):230-232

作者:楊輝 單位:湖北交通職業(yè)技術(shù)學(xué)院交通信息學(xué)院