淺談幾個軟件項目風險管理策略
引言
軟件項目風險是一種不確定的事件或情況,一旦發生,會對軟件項目目標產生某種正面或負面的影響。風險有其成因,同時,如果風險發生,也導致某種后果。舉例來說,風險成因可能是需要獲取某種許可,
或是項目的人力資源受到限制。風險事件本身則是獲取許可所花費的時間可能比計劃的要長,或是可能沒有充足的人員來完成軟件項目開發工作。以上任何一種不確定事件一旦發生,都會給軟件項目的成本、進度計劃、或質量帶來某種后果。
風險情況包括軟件項目環境中可能導致項目風險的某些方面,例如,不良的項目管理,或對不能控制的外部參與方的依賴。軟件項目風險既包括對項目目標的威脅,也包括促進項目目標的機會。
風險源于存在于所有軟件項目之中的不確定因素。已知風險是那些已經經過識別和分析的風險。對于已知風險,進行相應計劃是可能的。雖然項目經理們可以依據以往類似項目的經驗,采取一般的應急措施處理未知風險,但未知風險常常是很難管理的。
軟件開發組織對風險予以關注,是因為風險會給項目成功帶來威脅。對于那些對項目構成威脅的某些風險,如果這些風險與所冒風險的回報相平衡,那么,這些風險可能會被接受。例如,對于可能延期的進度可以采用快速跟進,冒此風險是為了實現更早的完成日期。
有些風險則是一些機會,對于這些風險可能應當努力追求,以便使項目目標受益。要成功完成項目,軟件開發組織必須在項目的全過程中貫徹執行風險管理。衡量軟件開發組織的風險管理是否盡責的一個方法是看它是否致力于收集有關項目風險和風險特性的高質量數據信息。
在軟件開發過程中,涉及的風險主要包括三類:與軟件開發直接相關的工程類風險、與管理相關的開發環境類風險、過程類風險。成功的項目經理關注的是他們的項目成功的關鍵因素。類似的,要成功地管理項目,我們必須關注風險管理的四個主要因素:人、過程、基礎架構以及實施。
風險管理活動貫穿于項目的整個生命周期。在項目立項后就應啟動風險管理活動。項目經理對項目內部的風險管理負責,可指定項目風險管理負責人組織風險管理小組進行識別、分析和跟蹤處理風險。風險管理過程包括制定風險管理計劃、識別風險、分析風險、制定風險應對計劃、監控和應對風險、風險管理收尾等5個活動。
其中識別風險、分析風險、制定風險應對計劃、監控和應對風險4大活動是在項目的生命周期中將定期或事件觸發地重復進行的活動。接下來我們就從這四個方面闡述軟件項目的風險管理策略。
1 識別風險
軟件開發過程中的風險是已知、未知或不可知的。已知風險是項目中的一個或多個人注意到的。未知風險是哪些項目組的人員在一定條件(機會、提示和信息)下會暴露的風險。不可知風險是指那些甚至于理論上都不可預測的風險。
在風險識別中可以使用的信息收集技術,包括頭腦風暴法、dephi法、訪談等。頭腦風暴法:頭腦風暴法可能是最常用的風險識別手段。其目標是獲得一份全面的風險列表,以備在將來的風險定性和定量分析過程中進一步加以明確。
一般由項目團隊承擔這項任務。在一位協調員的領導下,這些人員產生對項目風險的想法。他們在一個廣泛的范圍內進行風險來源的識別,并且在會議上公布這些風險來源,讓大家一起參與檢查。然后根據風險的類型進行風險的分類。
Dephi法:Dephi法是專家們就某一主題,例如工期,達成一致意見的一種方法。該法需要確定項目風險專家,他們匿名參加會議。協調員使用問卷征求重要項目風險方面的意見。然后將意見結果反饋給每一位專家,以便進行進一步的討論。
這個過程經過幾個回合,就可以在主要的項目風險上達成一致意見。De-phi法有助于減少數據方面的偏見,并避免個人因素對結果產生的不適當的影響。訪談法:可以通過訪談資深項目經理或相關領域的專家進行風險識別。
負責風險識別的人員選擇合適的人選,事先向他們作有關項目的簡要指點,并提供必要的信息,如WBS和假設條件清單。這些訪談對象,依據他們的經驗、項目的信息,以及他們所發現的其他有用供方,對項目風險進行識別。
此外我們還可以借由“檢查表”的方式來識別風險:從以往類似軟件項目和某些其他信息來源中積累的歷史信息和知識,可以用于編制風險識別檢查表。使用檢查表的一個優點是它使風險識別工作快而簡單。
它的不足之處在于我們不可能編制一個詳盡的風險檢查表,檢查表的使用者可能會被表中的條目所局 限。要注意發現那些在標準檢查表中未列出的,而又似乎與某一特定項目相關聯的風險。檢查表應詳細列出項目所有可能的風險類別。
所以,將審核檢查表作為每一項目收尾程序中的一個正式步驟,來完善可能風險的清單和風險說明則是非常重要的。
2 分析風險
一般來說,在一個軟件開發項目中可能識別出數十個風險,在思考如何應對這些風險之前,我們必須對這些風險展開分析,以確定哪些風險是關鍵的、容易發生的,即對風險進行優先級排序。這里提供一個比較簡易但是非常實用的方法,我們稱之為風險的級別,
它是風險發生概率和風險危害性兩個參數的乘積。風險危害性指如果風險發生了它會造成多大的危害。可以用0到1之間的小數來量化危害。概率取值可以是0和1之間的任意一個小數,和概率一樣,危害也是一個主觀值,不可能很精確,因此我們一般取一位小數。
一個風險所造成的影響很可能是多方面的,例如,同時影響進度和成本,一般按疊加的方式取值。
3 制訂風險應對計劃
識別風險并對風險進行量化分析之后,需要進行風險控制,即制定風險計劃并在項目進展過程中按計劃開展活動,將風險的綜合影響降低至項目可以接受的結果。制訂風險計劃的第一步是確定風險應對策略,也就是采用什么樣的方式來處理風險。
一般有四種風險應對策略:規避、轉移、減輕、接受。風險規避:通過變更項目計劃,從而消除風險或產生風險的條件,或者保護項目目標免受風險的影響。雖然項目隊伍永遠不可能消除所有的風險,但某些特定的風險還是可能規避的。
在項目早期出現的某些風險事件可以通過澄清需求、獲取信息、加強溝通、聽取專家意見的方式加以應對。減少項目范圍以規避高風險工作;增加項目資源或時間;采用一種熟悉的,而不是創新的方法;或規避使用一個不熟悉的分包商。這些都可能是風險規避的例子。
風險轉移:設法將某風險的結果連同對風險進行應對的權利轉移給第三方。轉移風險只是將管理風險的責任轉移給另一方。它不能消除風險。例如,軟件離岸外包可解決不同國家的工程師享受不同的工資待遇。
高成本軟件風險被轉移到享受高工資的小組。在美國,用子承包方來開發軟件可轉移高薪員工管理費用的風險。風險減輕:設法將某一負面風險事件的概率和/或其影響降低到一種可以承受的限度。早期采取措施,降低風險發生的概率或風險對項目的影響,比在風險發生后再亡羊補牢要更為有效。
風險減輕采用的形式可能是執行一種減少問題的新的行動方案。例如,采用更簡單一些的作業過程、進行更多的地震試驗或工程技術試驗、或挑選更穩定的賣方。它可能涉及變更環境條件,以使風險發生的概率降低。例如,增加項目資源或給進度計劃增加時間。
風險減輕可能需要進行模型開發,以減少由模型放大所帶來的風險。接受風險:這也是應對風險的策略之一,它是指有意識的選擇承擔風險后果。覺得自己可以承擔損失時,就可以采用這種策略。例如,經理們期望員工自愿流動的百分比較低。
更換一個入門級工程師的費用,可能與為留住此人而提升他的福利所花費的費用一樣。這是的策略是接受經過培訓的人員調離項目的風險,付出的代價便是雇用頂替他們的人所花的費用。確定了風險應對策略后,對識別的關鍵風險可以形成風險計劃文檔,輸出為《關鍵風險應對表》將其文檔化。
文檔化后的風險應對計劃將是風險跟蹤的依據,這份計劃也將在項目進展過程中不斷更新,補充新發現的風險、刪除綜合影響小的風險。
4 監控和應對風險
風險計劃制定完成后,在項目進展過程中需要對這些風險進行不斷的跟蹤,按計劃采取項目的措施,并監控風險的變化情況。為使風險的跟蹤過程更加有效,可以確定一些觸發器,以及時采取措施。風險管理小組應該確定風險的跟蹤和交流機制,
譬如包括:關鍵風險清單中的風險閾值每周跟蹤;里程碑處重新進行風險評估,并將結果記錄到里程碑報告中。此外風險管理小組的跟蹤結果應該形成狀態報告,發送給項目經理和相關的人員。
最后,強調風險的升級機制,因為有很多問題的確在底層或者項目經理一層還是不容易協調或決策的,那么這個時候我們就要積極上報給上一層甚至更高層領導來爭取資源。
【編輯推薦】