- 相關推薦
關于軟件項目管理中的風險分析與管理
論文摘要:介紹了軟件項目風險的重要性,探討了軟件項目風險管理的主要過程和步驟以及常用的工具和方法,詳細分析了軟件項目中常見的風險類型和風險成因,最后給出了經典的風險管理模型和常用的風險應對措施.
論文關鍵詞:項目管理;風險分析;風險管理;風險應對;模型
0引言
隨著信息技術的飛速發展,軟件產品的規模也越來越大,各軟件企業在開發活動中都為了使軟件項目能夠按照預定的、進度和質量順利完成而進行有效的分析和管理.但因軟件是純知識產品,其開發進度和質量很難估計和度量,生產效率也難以預測和保證,加之軟件系統本身的結構和技術復雜性等原因,造成了開發過程中存在某些“未知量”或“不確定因素”,這必然給項目的開發帶來一定程度的風險,可能會使項目計劃失敗或不能完全達到預期的目標.
軟件項目都存在著這樣那樣的風險,軟件項目風險管理是指對在軟件開發過程中所遇到的預算和進度等方面的問題以及這些問題對軟件項目的影響進行分析,積極尋求風險應對方法,做好風險管理計劃.
軟件項目風險會影響項目計劃的實現,如果項目風險變成現實,就有可能影響項目的進度,增加項目的成本,甚至使軟件項目不能實現.如果在進行軟件項目開發時,注重風險分析,實施風險管理,就可以最大限度的減少風險地發生,從而提高項目成功的機會.
目前,國內的軟件企業不太關心軟件項目的風險管理,結果造成軟件項目經常性的延期、超過預算,甚至失。晒Φ捻椖抗芾硪话愣紝椖匡L險進行了良好的管理.因此,任何一個系統開發項目都應將風險管理作為軟件項目管理的重要內容.總之,對項目風險進行科學、準確的判別,為項目決策層和管理人員提供科學的評估方法,是十分必要的.
1項目風險管理
項目是一系列獨特的、復雜的并相互關聯的活動,這些活動具有一個明確的目標并且必須在特定的時間和預算內依據規范完成.項目風險管理是指為了最好的達到項目的目標而去識別、分配以及應對項目生命周期內所產生風險的科學與.項目風險管理的主要目的是系統識別與項目有關的風險,評價、管理和改善項目的執行效果.項目風險管理的目標是使潛在機會或回報最大化,使潛在風險最小化.它有影響項目設計和項目基準計劃的潛力.
風險管理涉及的主要過程和步驟包括:風險識別、風險量化、風險應對計劃制定和風險監控,如圖1所示.
[1]
(1)風險識別.風險識別在項目的開始時就要進行,并在項目執行中不斷進行.也就是說,在項目的整個生命周期內,風險識別是一個連續的過程.軟件項目由于其本身的創造性,注定了其風險的復雜性.風險識別包括確定風險的來源,風險產生的條件,描述其風險特征和確定哪些風險事件有可能影響本項目.風險識別不是一次就可以完成的事,應當在項目的自始至終定期進行.
風險識別的過程如圖2所示,風險識別的輸入可能是項目的WBS、SOW以及項目相關信息等數據;風險識別的常用方法是建立“風險條目檢查表”,利用一組提問來幫助項目風險者了解在項目和技術方面有哪些風險,風險識別的輸出則是風險列表.此外,還有風險識別問詢法(座談法、專家法)、報表法、流程圖法、現場觀察法、相關部門配合法和分析法等其他方法.
(2)風險量化.對已識別的風險要進行估計和評價,風險量化的主要任務是確定風險發生的概率與后果,風險評價則是確定該風險的意義及處理的費用/效果分析,常用的方法有:概率分布、外推法和多目標分析法等.它涉及對風險及風險的相互作用的評估,是衡量風險概率和風險對項目目標影響程度的過程.風險量化的基本內容是確定哪些事件需要制定應對措施.
(3)風險應對計劃制定.針對風險量化的結果,風險應對計劃根據風險管理計劃、風險排序和風險認知等依據,采取風險控制、風險自留和風險轉移等方法,從而為降低項目風險的負面效應制定風險應對策略,得出風險應對計劃.
(4)風險監控.風險監控,包括對風險發生的監督和對風險管理的監督,前者是對已識別的風險源進行監視和控制,后者是在項目實施過程中監督人們認真執行風險管理的組織和技術措施.對涉及整個項目管理過程中的風險進行應對.該過程的輸出包括應對風險的糾正措施以及風險管理計劃的更新.
總之,風險管理的每個步驟所使用的工具和方法詳見表l:
2軟件項目中的風險管理
2.1軟件項目中的風險分類及成因分析
軟件項目的風險主要體現在以下四個方面:需求、技術、和進度.軟件項目開發中常見的風險有:
(1)需求風險.需求風險的形成,可以從三方面進行分析:首先是由于應用部門的介人與參與程度不夠,考慮需求往往從部門或局部的角度出發;其次是項目組對需求的調研目標不明晰,分析不透徹,缺乏有效的需求變化管理所造成的.這大都是因為從事軟件開發的都是“高科技人員”,都具有“從專業或學術角度出發”的特點,而往往忽視了對業務知識的深入了解,不能很好解甚至是誤解客戶的需求;第三,是由于缺乏與決策層進行深層次的交流,難以掌握企業的發展趨勢,對需求的延伸性不明確.這些需求不確定性的風險,都可能會造成大量工作“跑題”浪費,甚至是到項目都快要完成時,依然出現應用部門對系統提出一些基本的業務需求,或是軟件功能實現了,卻發現實際業務已發生了變化,導致軟件失去了應有的價值等,使時間和成本的投入成倍增長,甚至是系統無法正常投入使用.
[2]
(2)計劃編制風險.計劃編制風險主要體現在:計劃是優化的“最佳狀態”,但計劃不現實,處于“期望狀態”;計劃、資源和產品定義全憑客戶或上層領導口頭指令,并且不完全一致,缺乏翔實的書面計劃;計劃基于使用特定的小組成員,而那個特定的小組成員其實指望不上;完成目標日期提前,但沒有相應地調整產品范圍或可用資源;產品規模(如代碼行數、功能點以及與前一產品規模的百分比等)比估計的要大等.
(3)組織和風險.組織和管理風險大都是由于項目經理或管理人員缺乏項目管理知識,對項目的工作范圍不明確,對總體計劃、階段計劃的作用認識不足,對項目的風險估計不足,而造成計劃與控制脫節,無法進行有效的項目進度管理;而且,由于項目管理人員的協調管理能力不足,執行力度不夠,使得項目協調和時間成本大大增加,從而造成工作延誤等.
(4)人員與開發風險.人員風險主要體現在缺乏激勵措施,士氣低下,開發人員和管理層之間關系不佳,導致決策緩慢,影響全局,從而降低了生產能力;項目后期加入新的開發人員,需進行培訓并逐漸與現有成員溝通,從而使現有成員的工作效率降低;不適應工作的成員沒有調離項目組,影響了項目組其他成員的積極性;由于項目組成員之間發生沖突,導致溝通不暢、設計欠佳、接口出現錯誤和額外的重復工作等.開發環境風險主要有:開發工具未及時到位或不如期望的那樣有效,開發人員需要時間創建工作環境或者切換新的工具;新的開發工具的學習期比預期的長,內容繁多;設施擁擠、雜亂破損、未及時到位或者雖到位,但不配套(如沒有電話、網線、辦公用品等).
(5)設計技術和實現過程風險.設計技術風險可以直接導致項目失敗.選擇沒有成功的案例或不熟悉行業業務的開發商;項目的目標、范圍超過了項目組的實現能力;采用不熟悉或是欠成熟先進的開發工具、不符合行業特點的數據分析模型;設計質量低下,分別開發的模塊無法有效集成,需要重新設計或制作;一些必要的功能無法使用現有的代碼和庫實現,開發人員必須使用新的庫或者自行開發新的功能;代碼和庫質量低下,導致需要進行額外的測試,修正錯誤,或重新制作等,這都無疑會使項目處于毀滅性的風險之中.過程風險主要有前期的質量保證行為不真實,導致后期的重復工作;太不正規(如缺乏對軟件開發策略和標準的遵循),導致溝通不足,質量欠佳,甚至需要重新開發;過于正規(如教條地堅持軟件開發策略和標準),導致過多耗時于無用的工作等.
(6)客戶與產品風險.客戶風險主要表現在:客戶的意見未被采納,造成產品最終無法滿足客戶要求,要求重新設計或重做;客戶沒有或不能參與規劃、原型和規格階段的審核,導致需求不穩定和產品生產周期的變更;客戶答復的時間(如回答或澄清與需求相關問題的時間)’以及決策周期比預期長;客戶提供的組件質量欠佳,導致額外的測試、設計和集成工作,以及額外的客戶關系管理工作.產品的風險主要表現在:開發額外的不需要的功能或依賴正在開發中的技術,從而延長了計劃進度;嚴格要求與現有系統兼容或與其他系統(不受本項目組控制的系統)相連以及矯正質量低下的不可接受的產品,從而導致比預期更多的無法預料的設計、實現和測試工作等.
2.2常見的軟件項目風險管理模型
針對軟件項目中的風險管理問題,不少專家、組織提出了自己的風險管理模型.常見的主要風險管理模型有:連續風險管理模型(CRM)、Boehm模型和軟件工程風險模型(SERIM).
(1)SEI的連續風險管理模型(CRM).SEICRM模型的風險管理原則是不斷地評估可能造成惡劣后果的因素;決定最迫切需要處理的風險;實現控制風險的策略;評測并確保風險策略實施的有效性.CRM模型要求在項目生命期的所有階段都關注風險識別和管理,它將風險管理劃分為五個步驟:風險識別、分析、計劃、跟蹤、控制.
(2)BarryBoehm模型.Boehm模型的思想核心是:10大風險因素列表.針對每個風險因素,都給出了一系列的風險管理策略.在實際操作時,Boehm以lO大風險列表為依據,當前項目具體的風險因素,評估后進行計劃和實施,在下一次定期召開的會議上再對這lO大風險因素的解決情況進行總結,產生新的lO大風險因素表,依此類推.
Boehm模型的基本形式可描述為:RE=P(UO),IcL(UO),其中RE表示風險或者風險所造成的影響;P(uo)表示令人不滿意的結果所發生的概率;L(uo)表示糟糕的結果會產生的破壞性的程度.
(3)軟件工程風險模型(SERIM).SERIM模型要求從技術和商業兩個角度對軟件風險管理進行剖析,考慮的問題涉及開銷、進度、技術性能等.它還提供了一些指標和模型來估量和預測風險,由于這些數據來源于大量的實際經驗,因此具有很強的說服力.
[3]
2.3常見的風險應對措施
風險分析活動分析的目的在于建立處理風險的策略.而風險規避的最好方式是把風險控制在項目啟動階段,把損失減小到最小程度.常見的風險應對措施有:
(1)建立暢通的溝通渠道和溝通策略.需求的不確定性風險很大程度上是由溝通不暢引起的.因此,在需求調研階段,要多和應用部門溝通,了解他們真正的需求,最好能將目標系統的模型向應用部門演示,并得到反饋意見,直到雙方都達成共識,形成雙方認可的驗收方案和驗收標準,并做好變更控制和配置,盡量降低需求不確定性風險.
(2)配備高素質的項目管理人員.最好是具有豐富的項目管理經驗,或是經過系統的項目管理知識訓練的人員來擔任項目經理,通過制定有效的項目管理計劃,并認真執行落實,提高項目的可控性.同時,風險不是靜止的、一成不變的,它會隨著項目狀況的變化而變化,因此,風險管理必須被作為一個日常的正式活動列入項目工作計劃,成為項目管理人員的一個重要工作.
(3)建立一支協作高效的項目團隊.技術部門有技術,業務部門有需求,因此,項目組中不僅要有開發商和技術部門的參與,更要有應用部門的參與,從而形成一個合作的項目工作團隊,共同理解企業的戰略規劃和業務發展,從整體全局的角度,提出有效的信息化需求,共同研討項目進展中出現的問題,共同控制項目進度,共同為項目質量把關.
(4)制定科學的風險管理計劃.從風險管理的角度對項目規劃或計劃進行審核,建立“風險清單”,對每個可能存在風險的表現、范圍、時間做出盡量準確的判斷并對風險進行監控,提前做好應對準備.如針對需求風險,要制定相應的需求變更控制;針對技術風險,要安排核心技術人員全程參與開發等.
(5)選擇合適的開發技術.雖然在系統設計時需要考慮新技術的發展和技術的先進性問題,但“最好的不一定是最合適的,最合適的才是最好的”,如果項目組的人員對所需開發的技術不熟,在滿足業務需求的前提下,盡可能采用熟悉的技術來減輕項目在或進度方面的影響,也可以事先進行培訓來減輕對項目的影響,以避免因技術瓶頸導致的項目失敗.
3結束語
軟件項目管理從某種意義上講,就是風險管理.在項目風險管理中,存在多種風險管理方法與工具,軟件項目管理只有找出最適合自己的方法與工具并應用到風險管理中,才能更好地適應快速而又無序變化的商業,才能盡量減少軟件項目的風險,以確保在規定的預算和期限內更好地完成軟件項目,從而促進項目的成功.
[4]
【軟件項目管理中的風險分析與管理】相關文章:
關于軟件項目管理及風險分析03-01
工程項目管理中的風險分析與防范03-19
IT項目管理中的風險研究03-24
計算機軟件項目管理中的需求分析03-20
油氣勘探信息項目管理風險分析與管理11-19
關于軟件項目管理流程分析與設計03-01
淺析計算機軟件項目管理中的需求分析03-13
淺論項目管理軟件PROJECT在設計項目管理中的運用03-18
關于軟件項目管理技術分析研究03-02