IT軟體專案風險管理方法探析論文

IT軟體專案風險管理方法探析論文

  近 20 年來,隨著資訊科技的飛速發展,IT 軟體專案層出不窮,軟體開發技術有了很大的進步,軟體企業也不斷成熟,但是在開發過程中的風險也越來越大。如何預測、防止和應對風險,這就使得軟體專案風險管理的研究逐步成為軟體工程的熱點問題之一。風險管理意味著危機還沒有發生之前,就進行預測、分析並在適當的時機實施應對措施,減少風險所產生的損失,提高了專案的成功機會。

  一、風險與風險管理

  在 IT 軟體專案的整個生命週期中,一直存在著變化,變化帶來了不確定性,也就意味著可能會出現損失,而損失的不確定性就是風險。只要是專案,就有風險。風險有狹義和廣義兩種含義,狹義的風險就是我們日常理解的可能發生的危險,廣義的風險則是指一種不確定性。風險包含“不確定性”和“損失”.風險可能發生也可能不發生,一旦風險發生了,成為了現實,就會產生損失。判斷風險具體大小時,常會用到“風險當量”的概念,風險當量=風險發生的機率×損失。

  風險管理的概念最早是出現在管理科學的專案管理中,在軟體開發的早期,基本上都是採用“程式碼+除錯”的過程。但是,除錯過程中的困難和高昂的成本引發了 20 世紀60 年代的軟體危機。為了應對軟體危機,提出了軟體工程的概念,隨之引入了軟體專案管理以及風險管理的概念,這之後軟體危機得到了一定程度的緩解和控制。

  IT 軟體專案風險貫穿於整個專案的生命週期,並且風險會隨著專案進展而發生變化。風險管理是專案小組在對整個專案生命週期內的風險識別、風險估計和風險評價的基礎上,使用多種管理方法、技術和手段對專案活動涉及的風險實行有效的控制[1].

  二、風險管理方法

  IT 軟體專案風險管理方法主要有: Barry Boehm 理論,SEI 的 CRM 模型,Leavitt 模型,Charette 模型和 Riskit 風險模型等。這裡主要選擇 SEI 的 CRM 模型和 Leavitt 模型進行對比。

  ( 一) SEI 的 CRM 模型

  SEI 的 CRM 持續風險管理( Continuous Risk Manage-ment) 模型,如圖 1 所示。

  CRM 模型要求每個風險因素都按順序經過這五個步驟進行管理,它是一種動態風險管理理論,注重與軟體開發過程的結合。從圖1 中可以看到,這是一個閉合的圓環,強調在整個生命週期中不斷地進行風險的評估,選擇最迫切需要處理的風險。CRM 模型的風險管理共有五個步驟,在這五個步驟中貫徹始終的是溝通交流。

  ( 二) Leavitt 模型

  Leavitt 模型將軟體專案管理看作一個系統,並把該系統分為四部分: 角色、任務、結構和技術[6],見圖2.“角色”

  指人員,包括所有與軟體專案有關的人,如專案經理、開發人員、使用者等等; “任務”表示的是軟體專案開發的目標或者是公司期望的交付結果; “結構”指的是管理層面和開發行為層面,表示了規範要求、規章制度、人員架構和行為準則等; “技術”被定義成任何完成目標所使用的開發工具、技術手段和軟硬體平臺等。這四個部分之間的聯絡十分緊密,其中任何一個部分的變化都會給其餘的部分帶來影響。

  當這四部分的狀態不能保證一致時,就會造成嚴重的後果。

  根據 Leavitt 模型,這四個部分是緊密地聯絡在一起的整體,其中任何一個變數的變化都會導致其他變數的變化,如果這個變化是不匹配的,繼而會導致整個系統性能降低。

  比如: 結構的不健全可能會導致任務的無法完成,不合適的技術可能與任務無法匹配,這四部分的配合程度將決定專案潛在風險的高低。

  這四個部分之間的相互依賴關係可以描述為: 角色-技術: 不要選擇對技術不勝任或者過於勝任的人員; 技術-任務: 選擇符合任務要求的技術,效能低下或者過於先進而實現困難的技術都是不合適的; 任務-結構: 錯誤的組織結構或者要求都無法實現任務; 結構-角色: 人員之間的錯誤的任命,職責分配以及錯誤的行為都可能成為風險; 角色-任務: 為任務選擇人員時,要著重選擇能力與任務相匹配的人員; 技術-結構: 選擇合適的技術和與之相匹配的規範、要求等結構。

  ( 三) 對比與總結

  SEI 的 CRM 模型最明顯的特點是其與軟體開發過程緊密的結合,並且可操作性強。CRM 模型將風險管理過程作為主體,強調管理步驟,認為這是一個專案開發中持續並反覆的活動,但由於使用該模型的成本較高,因此比較適合大型公司或者開發大型專案時採用。

  Leavitt 模型是從系統的角度對風險管理進行研究,操作簡單,定義完善,包容性好,所以目前該設計方法和實現研究已經廣泛應用於各類文獻和資訊系統中。Leavitt 模型具有定義和分析風險管理步驟的特點。

  透過兩種風險管理方法的分析和對比,提出了一種綜合的風險管理方法,見圖3.

  可以看到在 CRM 模型的基礎上,把五個步驟精簡到四個步驟為風險識別、風險評估、風險規劃和風險監控,並且這四個步驟執行過程中,全部要按照 Leavitt 模型中四個部分角色、任務、結構和技術的一致性要求進行比對,確保每一步都能夠保證系統的平衡,原來在 CRM 模型中貫徹的溝通交流被更為細緻詳盡的 Leavitt 模型的角色、任務、結構和技術所代替,並且仍然要遵從四個部分之間的相互依賴關係。

  在這個風險管理方法中,風險識別是第一步,也是風險管理的基礎,其目的是減少專案的結構不確定性,包括認識瞭解風險,分析引發風險的潛在原因,可能帶來的損失或者機會等。識別內容可能涉及的環節包括: 市場、技術、制度、人事、財務和生產等方面。常採用頭腦風暴法、檢查表法、專家訪談法和分解分析法等等。具體見圖 4.同時需要關注幾個方面: 風險識別內容的完整; 風險識別過程的記錄;風險識別技術方法的適宜性; 風險識別活動的`評估; 風險資訊資料庫的完整性和及時更新。

  風險評估是對之前已經識別的風險進行估計和評價,它是風險規劃的基礎。沒有客觀、充分的風險評估,風險規劃將是效率低下、無的放矢的。風險評估的內容包括估算風險事件的可能性( 頻率、機率) 及其影響後果的大小,儘可能的量化風險; 對各種風險的後果進行評價,並且按照嚴重程度排序。在一個專案的過程中,風險識別和風險評估不是截然分開的,往往是結合在一起進行,也可以根據需要反覆執行。同時需要關注幾個方面: 確定合適的計量單位;評估風險發生的機率; 估計風險事件的影響; 選擇適當的風險評估技術; 參與人員的結構和技術要求。見圖 5.

  風險規劃是專案經理針對各種可能出現的風險事件,預測風險並制定出一個預防、規避、降低、轉移和接受的行動方案或者是風險的應對計劃。其中的風險規避是風險的威脅性太大時,透過變更專案計劃或放棄停止開發活動以消除風險或減輕損失的策略; 風險轉移並不消除風險,它指的是採取出售、業務外包、購買保險或列出免責條款的合同等方法,將專案風險以及相對應的權力轉移給第三方的策略; 風險接受是透過權衡利弊,不準備採取措施降低風險或減輕損失的策略,接受風險時往往已經事先制定了應急方案或措施。需要重點關注: 風險規劃策略應建立在充分的風險評估基礎上; 風險規劃策略的技術可行性; 風險規劃策略是否符合專案開發目標和原則; 風險規劃策略是否可以使風險處於專案開發可承受的範圍內; 風險規劃策略中的技術方法創新。風險監控是實施風險規劃中制定的計劃,在控制過程中,有時會根據經費和進度等調整計劃,並且在實施計劃後,檢查和校驗結果是否與預期相一致以及尋找細化和改善計劃的機會。

  三、展望

  縱觀以上內容,可以看出軟體專案風險管理是一門實踐性很強的學科,未來的發展和研究可以從以下幾個方面考慮:1、與管理學科相融合借鑑,軟體專案管理脫胎於專案管理領域,專案管理中的新方法往往能夠給軟體專案風險管理帶來新參考;2、開發專業的風險管理軟體; 3、尋求有效的量化評估工具,目前採用的風險評估技術多是以經驗和主觀分析為主,這種方法在實踐中的效果往往並不是很好,應該採用一種技術手段來解決風險量化,實現更準確、更有效的風險評估。

  參考文獻:

  [1]許成績。 現代專案管理教程[M]. 北京: 中國宇航出版社,2003.

  [2]吳育華,杜綱。 管理科學基礎[M]. 天津: 天津大學出版社,2001.

  [3]張海藩。 軟體工程導論[M]. 北京: 清華大學出版社,2003.

  [4]潘春光,陳英武,汪浩。 軟體專案風險管理理論與方法研究綜述[J]. 控制與決策,2007( 5) .

  [5]王強,曹漢平,賈素玲,木林森。 IT 軟體專案管理[M]. 北京: 清華大學出版社,2004.

  [6]郭紅鈺,李春賀。 基於 Leavitt 模型的軟體本地化專案風險管理研究[J]. 專案管理技術,2012( 12) .

  [7]李帥芳,肖果平。 Crystal Ball 在專案管理風險分析中的應用[J]. 專案管理技術,2013( 4) .

  [8]吳宗東。 軟體專案風險管理理論和方法探究[J]. 電腦知識與技術,2013( 5) .

  [9]邱箢華。 現代專案風險管理方法與實踐[M]. 北京: 科學出版社,2003.

  [10]袁保立。 IT 專案風險管理與案例分析[D]. 天津: 天津大學,2008.

最近訪問