801
技術社區[雲棲]
技術人員談管理之項目風險規避
一 、風險管理的重要性
項目的風險管理既是一門藝術又是一門科學。它通過識別、分析和應對整個項目生命周期中的風險來最大程度地滿足項目目標。風險管理對項目選擇、項目範圍的確定、製定現實可行的進度和成本估計都有積極的作用。它既能幫助項目幹係人更好地理解項目的性質,讓團隊成員參與便是優勢和劣勢,並且有助於把他們的項目管理知識結合到一起。
伴隨著軟件開發技術的不斷更新、軟件數量的增多、軟件複雜程度不斷加大、客戶對產品的要求也在不斷的提高,隨之而來的是軟件開發項目給軟件開發企業和需求企業帶來的巨大風險。軟件開發項目的成功與否會直接影響到公司的生存。這對軟件開發企業來講應該是更大的難題。一方麵是業務需求更加複雜。人們對軟件質量和用途的期望大幅度提高,對業務係統的要求也越來越挑剔。另一方麵是開發成本不斷縮減。在此形勢下,風險管理與控製已成為軟件開發項目成敗的關鍵。
軟件開發項目由於其具有連續性、複雜性、少參照性,無標準規範等特點,其風險程度較高。目前國內的大多數軟件開發企業還缺乏對軟件開發項目的風險認識,缺少進行係統、有效的度量和評價的手段。據有調查數據顯示,有15—35%的軟件項目中途被取消,剩下的項目不是超期就是超出預算或是無法達到預期目標。另外,軟件項目因風險控製和管理原因失敗的約占90% ,可見,軟件風險控製與管理在目前的軟件開發項目中的重要性。
二、風險管理的定義
項目風險一般定義為“一種對實現項目目標產生消極或積極影響的不確定性”。項目風險既包含積極風險,又包含消極風險。對積極風險的管理想是對機會的投資,要營造機會讓積極風險發生;對消極風險的管理想是在買保險,要想辦法減輕項目中潛在不利因素的影響的活動。
三、 軟件開發項目的風險來源及對項目成敗的影響
軟件開發項目風險是指在軟件生命周期中所遇到的所有的預算、進度和控製等各方麵的問題,以及由這些問題而產生的對軟件項目的影響。軟件項目風險經常會涉及許多方麵,如:缺乏用戶的參與,缺少高級管理層的支持,含煳的要求,沒有計劃和管理等,總體概括下來應該由五大方麵。
1、產品規模風險
項目的風險是與產品的規模成正比的。與軟件規模相關的常見風險因素有:(1)估算產品規模的方法(包括:代碼行,文件數,功能點等),(2)產品規模估算的信任度,(3)產品規模與以前產品規模平均值的偏差,(4)產品的用戶數,(5)複用的軟件有多少,(6)產品的需求變更多少等。一般規律,產品規模越大,以上的問題就越突出,尤其是估算產品規模的方法,複用軟件的多少,需求變化。
2、需求風險
很多項目在確定需求時都麵臨著一些不確定性。當在項目早期容忍了這些不確定性,並且在項目進展過程當中得不到解決,這些問題就會對項目的成功造成很大威脅。如果不控製與需求相關的風險因素,那麼就很有可能產生錯誤的產品或者拙劣地建造預期的產品。每一種情況對產品來講都可能致命的。
與客戶相關的風險因素有:(1)對產品缺少清晰的認識,(2)對產品需求缺少認同,(3)在做需求中客戶參與不夠,(4)沒有優先需求,(5)由於不確定的需要導致新的市場,(6)不斷變化需求,(7)缺少有效的需求變化管理過程,(8)對需求的變化缺少相關分析等。
3、 相關性風險
許多風險都是因為項目的外部環境或因素的相關性產生的。經常我們在控製外部的相關性上做的不夠,因此緩解策略應該包括可能性計劃,以便從第二資源或協同工作資源中取得必要的組成部分,並且覺察潛在的問題。與外部環境相關的因素有:(1)客戶供應條目或信息,(2)交互成員或交互團體依賴性,(3)內部或外部轉包商的關係,(4)經驗豐富人員的可得性,(5)項目的複用性。
4、技術風險
軟件技術的飛速發展和經驗豐富員工的缺乏,意味著項目團隊可能會因為技巧的原因影響項目的成功。在早期,識別風險從而采取合適的預防措施是解決風險領域問題的關鍵,比如:培訓、聘請顧問以及為項目團隊招聘合適的人才等。主要有下麵這些風險因素:(1)缺乏培訓,(2)對方法、工具和技術理解的不夠,(3)應用領域的經驗不足,(4)新的技術和開發方法應用等。
5、管理風險
盡管管理問題製約了很多項目的成功,但是不要因為風險管理計劃中沒有包括所有管理活動而感到驚奇。在大部分項目裏,項目經理經常是寫項目風險管理計劃的人,他們有先天性的不足——自己檢查自己的錯誤,這是最難的。然而,像這些問題可能會使項目的成功變得更加困難。如果不正視這些棘手的問題,它們就很有可能在項目進行的某個階段影響項目本身。當我們定義了項目追蹤過程並且明晰項目角色和責任,就能處理這些風險因素:(1)計劃和任務定義不夠充分,(2)實際項目狀態,(3)項目所有者和決策者分不清,(4)不切實際的承諾,(5)員工之間的溝通等。
6、安全風險
軟件產品本身是屬於創造性的產品,產品本身的核心技術保密非常重要。但一直以來,我們在軟件這方麵的安全意識比較淡薄,對軟件產品的開發主要注重技術本身,而忽略了專利的保護。軟件行業的技術人員流動是很普遍的現象,隨著技術人員的流失、變更,很能會導致產品和新技術的泄密,致使我們的軟件產品被它公司竊取,導致項目失敗。而且在軟件方麵關於知識產權的認定目前還沒有明確的一個行業規範,這也是我們軟件項目潛在的風險。
四、 風險的分析、管理與控製
1、風險分析
以上所說的各類風險都是項目成敗的巨大隱患,它們對軟件開發項目的成敗有多大影響,我們可以利用風險分析工具,對以上各類風險進行分析,並加以控製和管理,將風險將到最低。常用方法有風險條目檢查表,它是利用一組提問來幫助項目風險管理者了解在項目和技術方麵有哪些風險。在風險條目檢查表中,列出了所有可能的與每一個風險因素有關的提問,使得風險管理者集中來識別常見的、已知的和可預測的風險,如產品規模風險、依賴性風險、需求風險、管理風險及技術風險等。風險條目檢查表可以不同的方式組織,通過假設分析、成本效益分析、風險剖麵分析、判定樹等,給出這些提問確定的回答,就可以幫助項目管理人員估算風險的影響。
另外,我們可以依據風險條目檢查表,製作風險控製概圖(見圖1),讓項目管理和實施人員能很直觀的看到在項目開發個階段的風險存在狀況和各風險的大小,並采取相應措施。從風險發生的概率來看,需求風險和管理風險對項目成敗影響最大,當一個軟件項目開發團隊接手項目後,都是按照習慣性的方式來開發軟件。需求風險意識比較淡薄,軟件需求分析階段的完成的不夠細致,忽略和很多軟件開發必要的內容。在整個軟件開發過程中需求分析階段的風險控製尤為重要,如果控製不好,對軟件開發項目影響巨大,甚至是失敗。管理風險實際上是項目開發管理層,對項目開發的風險的意識反映。國內的軟件企業大多規模較小,企業年輕,開發經驗不足,軟件工程師較年輕,缺少開大型軟件項目的經驗,在管理方麵缺少經驗,特別是風險管理,更是缺乏。
2、風險管理
風險管理應是貫穿軟件項目開發始末的一項重要任務,其中包括風險識別、風險評估、風險計劃、風險解決和風險監控。它能讓風險管理者主動“規避”風險,進行有效的風險管理。風險管理模型有:SEI風險管理模型、Riskit風險管理模型、SoftRisk風險管理模型、IEEE風險管理過程模型、CMMI風險管理模型、MSF風險管理模型等。在項目管理中,建立風險管理策略,在項目的生命周期中不斷控製風險是非常重要的,風險管理主要包括五個階段:
(1)風險識別:識別風險的方法常用的有現場觀察法、座談法、流程圖法、財務報表法、相關部門配合法和環境分析法等。
(2) 風險評估:對已識別的風險要進行估計和評價,風險估計的主要任務是確定風險發生的概率與後果,風險評價則是確定該風險的經濟意義及處理的費/效分析,常用的方法有:概率分布、外推法、多目標分析法等。
(3) 計劃進度:按照評估後的風險結果,製定相應的風險管理進度表,為後續的風險管理提供參考。
(4) 風險處理:一般而言,風險處理有三種方法,① 風險控製法,即主動采取措施避免風險,消滅風險,中和風險或采用緊急方案降低風險。② 風險自留,當風險量不大時可以餘留風險。③ 風險轉移。
(5) 風險監控:包括對風險發生的監督和對風險管理的監督,前者是對已識別的風險源進行監視和控製,後者是在項目實施過程中監督人們認真執行風險管理的組織和技術措施。
3、風險控製
(1)建立有效的風險控製的組織機構項目經理圈子
①設置風險管理崗位:在軟件開發項目管理過程中設置風險管理崗位,該崗位的主要職責是在製訂與評估規劃時,從風險管理的角度對項目規劃或計劃進行審核並發表意見,不斷尋找可能出現的任何意外情況,試著指出各個風險的管理策略及常用的管理方法,以隨時處理出現的風險,風險管理者最好是由項目主管以外的人擔任。風險管理崗位的人數依據項目大小來決定,一般2—3人較為適合。
②雙項目經理:為項目開發項目設定兩個項目經理崗位,一個負責技術崗位,另一個負責管理崗位。目前,國內的軟件開發企業的項目經理一般都是一名,而且是技術出生的占絕對多數,他們主要擅長的是技術研發,在管理方麵先天不足,這不利於項目風險管理和控製。通過增加專門的管理經理崗位,可以彌補技術出生的項目經理的不足,提升軟件開發項目的管理水平。而且這樣的經驗也已得到了國外業界大多企業的認可。
(2) 建立有效的風險控製管理過程
風險管理過程包括培訓,風險識別、風險分析、風險計劃、執行計劃、跟蹤計劃等活動,有效的風險管理過程應是學習型的、持續的和不斷改進的。軟件企業應建立自己的風險管理數據庫作為風險管理的基礎,並在實施中不斷地更新和完善。
根據企業和項目的實際情況,進行科學的項目風險和控製,對項目的成功研發有著舉足輕重的意義。在項目開發的過程中,進行必要的項目風險分析,製定符合項目特點的風險評估和監督機製,特別是要定期對項目的風險狀況進行評估和監管,發現意外風險或者是風險超出預期的一定要重點關照。發現問題要立即上報,盡快解決。並建立風險監管日誌,實行“崗位負責製”,將軟件開發項目的風險降到最低。
最後更新:2017-04-03 14:54:29