【摘 要】風險指的是不確定的事件和條件,如果發生,對項目目標產生正面的或者負面的影響,因此風險不僅包括威脅,也包括機會。風險管理的主要目的是減小在項目實施過程中負面影響發生的可能性,保障項目的順利實施,所以通過風險管理可以對項目潛在的意外風險進行辯識、評估,保障項目的順利實施。
【關鍵詞】項目管理;風險控制;威脅;機會
一、引言
軟件項目風險控制是軟件項目管理的重要內容。在進行軟件項目風險控制時,需辯識風險,評估它們出現的概率及產生的影響,然后建立一個規劃來管理風險,所以在軟件項目研究的可行性分析和方案認證時,加強軟件項目方案風險分析是十分必要的
二、風險管理的目的
(一)有效的風險管理可以提高軟件項目的成功率。(二)與團隊成員一起進行風險分析可以讓實施人員對困難有充分估計,對產生的風險有心理準備,可大大提高項目組人員信心。(三)有效的風險管理便于在項目實施過程匯總能抓住工作重點,集中于重大風險,將工作由被動救火轉變為主動防范。
三、風險識別有以下幾種方法
風險管理的主要目標是預防風險,軟件項目風險是指軟件在開發過程中遇到的預算和進度等方面的問題以及這些問題對軟件項目實施的影響。軟件項目風險會影響項目計劃的實現,如果項目風險變成現實,就有可能影響項目的進度,增加項目的成本,甚至使軟件項目不能實現。所以,在項目實施中 需對項目風險進行識別,方法有以下幾種:
(一)頭腦風暴。有關項目成員、專家、客戶等各方人員組成小組,一起討論所有可能的風險;(二)專家訪談。向軟件開發領域的專家或有經驗的人員了解IT項目管理中遇到具體困難。(三)歷史資料。通過查閱數據移植項目的歷史資料了解可能出現的問題。(四)檢查表。將可能出現的問題列出清單,可以對照檢查潛在的風險。(五)評估表。根據以往上線的IT項目進行總結,通過調查問卷等多種方式判別風險類型。
軟件風險管理的最終目標并不是識別和分析。針對軟件開發中的每一個風險,特別是高危險度的軟件風險,風險管理還需要對它們進行有效的控制。包括 制定風險管理計劃:針對各個重要風險制定風險管理計劃,并確保它們的一致性;化解風險,執行風險管理計劃,以緩解或消除風險;監控風險,監控風險化解的過程。
四、怎樣的風險導致軟件項目的失敗?
軟件開發過程中面臨各種選擇。風險因素介于確定和不確定性之間,風險受到行為、地點、思想、觀念等諸多因素的改變。
軟件開發中的風險指軟件在實施開發過程中可能對最終結果造成的傷害或損失。風險來自于項目實施的過程中,意味著,風險產生的不確定性,如:
(一)已經開始的項目,在未結束之前便放棄;(二)所開發的項目并沒有達到預期效果,無法完全提供設計的功能;(三)項目開發時間比預計延長較多;(四)項目開發需求不斷增加;(五)項目開發需求不斷增加;(六)驗收;
開發技術、用戶需求以及其他與項目有關的因素的改變將會對按時交付和總體成功產生什么影響;對于采用何種方法和工具,需要多少人員參與工作的問題,我們應如何選擇和決策;軟件質量要達到什么程度才是“足夠的”。當沒有辦法消除風險,甚至連試圖降低該風險也存在疑問時,這些風險就是真正的風險了。在我們能夠標識出軟件項目中的真正風險之前,識別出所有對管理者和開發者而言均為明顯的風險是很重要的。
五、如何進行有效的風險管理
在進行軟件項目風險管理時,需識別出潛在的風險,評估風險出現的概率、產生的影響,并按重要性進行分級,其次建立完善的計劃來管理風險。風險管理的主要目標是預防風險,并不是所有的風險均能預防。所以需建立一個意外事件計劃,便于在出現意外事件時能以可控、有效的方式做出反應。
風險管理目標的實現包含三個要素。
第一,必須在項目計劃書中寫下如何進行風險管理;第二,項目預算必須包含解決風險所需的經費,如果沒有經費,就無法達到風險管理的目標;第三,評估風險時,風險的影響也必須納入項目規劃中。
六、如何進行風險辨識
識別風險是系統化地辨別已知的、可預測的風險,在可能時避免這些風險,且當必要時控制這些風險。根據風險內容,我們可以將風險分為:
(一)產品規模風險:與軟件的總體規模相關的風險。(二)商業影響風險:商業風險影響到軟件開發的生存能力。商業風險含五大主要風險:策略風險:開發的產品不符合公司的整體商業策略;預算風險:預算或人力沒有保障。市場風險:開發的軟件產品沒有人需要;銷售風險:軟件開發后沒有企業、公司愿意使用;管理風險:由于重點的轉移或人員的變動而失去了高級管理層的支持的風險;(三)過程定義風險:在軟件開發過程中的相關風險。(四)開發環境風險:與開發工具的可用性及質量相關的風險。(五)技術風險:技術風險是指在設計、實現、接口、驗證、維護技術的不確定性、陳舊的技術等方面存在的風險。技術風險威脅到軟件開發的質量及交付的時間,如果技術風險變成現實,則開發工作可能變得很困難或根本不可能。(六)人員數目及經驗帶來的風險:與參與工作的軟件工程師的總體技術水平及項目經驗相關的風險。在具體的軟件項目風險識別時,可以根據實際的項目情況對風險分類。但簡單的分類并不一定精確,某些風險根本無法預測。
七、風險估算
進行風險辨識后,需要風險估算,風險估算從以下幾個方面評估風險:
(一)建立一個標尺,以反映風險發生的可能性;(二)描述風險帶來的后果;(三)評估風險對項目實施及結果產生的影響;(四)評估風險整體精確度,避免產生誤解。
因為軟件項目實施需要開發新的技術,或使用已驗證過的技術和產品,這些技術不容易達到成熟、定型的程度。而且大型項目的研發需長時間、大規模的組織、協調工作,漫長的研制周期等,都會帶來不確定性因素。這些因素的存在使軟件項目能否按照預定計劃、費用、進度完成研制任務存在很多不確定因素,不能確定是否能研制成功,存在很大的失敗風險。所以在項目實施過程中對項目方案進行風險分析是十分必要的。對辨識出的風險需進行進一步的確認,即假設某一風險出現后,分析是否有其他風險并存,或假設這一風險不出現,會產生什么情況,然后確定主要風險出現最壞情況后,如何將此風險的影響降低到最小,同時確定主要風險出現的數量及時間順序。在進行風險分析時,最重要的是對不確定性的風險程度和損失程度進行評估。為此,需考慮風險的類型。識別風險的方法是建立風險清單,清單上需明確列出在不同時間可能碰到的風險,而且必須對風險清單進行時時維護,更新風險清單,并向所有實施人員公開,鼓勵項目組的每一位成員勇于發現問題并及時發出警告,風險清單給項目管理提供了一種簡單的風險預測技
八、軟件風險管理的總結
當我們對發開發的軟件抱有很高的期望時,都會伴隨著風險,一般都會進行風險分析。即使在進行這項工作中,多數軟件管理者都是在非正式的,表面化的完成。在分析、標識、管理風險上的時間上多方面得到回報,能夠更平穩的實施項目,較高的分析、跟蹤、控制項目的能力,能溝更好的完成軟件開發項目,保障項目在既定軌道上實施。