軟件項目風險管理控制措施

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

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

軟件項目風險管理控制措施

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

關鍵詞:軟件項目開發;風險管理;風險防控

1引言

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

2軟件項目風險分類

2.1技術風險

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

2.2管理風險

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

2.3商業風險

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

2.4安全風險

安全風險主要包括自然風險、人為風險、外部環境風險,如盜版、病毒等。

3軟件項目風險管理步驟

3.1風險識別

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

3.2風險分析

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

3.3風險應對

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

3.4風險監控

風險監控是指依據前期風險分析結果,監控風險應對措施的實施情況,加強對項目全過程風險的管控[7]。風險監控的目的是監測風險管理策略和應對措施的實際執行效果,看其是否達到預期目標,同時根據當前風險監控結果及時修正風險分析與應對表,或對項目中新識別的風險進行分析并制定相應的風險應對措施[8]。

4風險防控措施

4.1需求分析階段

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

4.2設計與開發階段

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

4.3測試階段

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

5結束語

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

參考文獻

[1]楊一平,盧山.管理信息系統.北京:機械工業出版社,2018

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

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

[4]百度文庫.軟件項目的風險分析.

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

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

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

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

[9]苑隆寅.圖書館在城鄉統籌發展中的作用與知識服務研究[碩士學位論文].重慶大學,重慶,2012

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

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

作者:楊輝 單位:湖北交通職業技術學院交通信息學院