軟件開發的風險管理

  • 7857
  • 0

(翻譯自:  Risk Management for Software Development )

 

風險管理是一個系統,用於識別、解決和消除可能對項目成本、進度或技術成功或項目團隊士氣有害的問題。

“明天的問題就是今天的風險。” 因此,“風險”被明確定義為可能造成一些損害或威脅項目進度但尚未發生的問題。

如果不主動管理風險,就會面臨風險。

軟件開發 是一項高風險活動,在項目開發過程的任何階段都可能存在風險。採用主動的風險管理方法,可以使項目過程更加穩定,獲得較高的項目跟踪和控制能力,可以規避和轉移風險,或​​減輕風險的不利影響。

風險管理是識別、分析、響應和監控項目風險的過程。它是項目管理中一項非常重要的管理活動。有效實施軟件風險管理是軟件項目開發順利完成的保障。

風險管理的實現必須包括三個要素:

  • 項目開發計劃中必須制定風險管理計劃;
  • 項目預算必須包括解決風險所需的資金;
  • 在評估風險時,風險的影響也必須包括在項目規劃中。

讓我們討論如何採取預防措施來減輕軟件開發過程中經常發生的風險。

  1. 需求不明確 ——需求不明確是軟件開發過程中經常遇到的問題。此類問題往往表現在需求範圍不明確、需求未細化、需求描述不明確、需求缺失、需求衝突等諸多方面。在軟件開發過程的生命週期中,需求不明確造成的浪費是最大的,必須盡快解決。很難確定用戶的需求。

預防措施

  • 讓用戶通過更短更頻繁的討論和會議參與開發
  • 使用線框/用戶界面原型開發並與利益相關者溝通

2、對於用戶分佈廣、用戶數量多的項目,往往難以全面收集用戶需求,通常採用需求調研會議來確認需求。

預防措施

會議前幾週,我們調查了各地區、各部門的用戶需求,然後召集各地區、各部門的用戶代表召開需求研討會,通過會議收集需求。這種方式適合有一定IT經驗的用戶。

2.   80/20 陷阱 ——當項目經理或開發人員說已經完成了80% 的任務時,你必須謹慎。因為剩下的20% 可能會佔用80% 的時間,也可能永遠不會完成。

軟件開發項目在項目進度和軟件質量方面往往缺乏可見性。項目的知名度越低,項目就越難控制,失敗的可能性就越大。我們可以通過迭代開發、技術審查和持續集成來提高項目的可見性。

預防措施:

  • 迭代開發使用迭代開發模型,將產品交付過程劃分為多個階段,並根據功能增量交付。
  • 技術評審是保證軟件質量的重要環節。技術評審包括代碼演練、會議評審和同行評審。代碼審查可以是開發人員之間的交叉審查,也可以是高級開發人員對普通開發人員的審查;會議評審一般每兩周至少進行一次,每次評審時間不宜過長,這是項目成功的重要保證。
  • 持續集成可以將最終的大規模集成和調試過程分散到項目的每周和每天的開發進度中。讓項目中的每個人都能隨時掌握當前的整體進度,快速發現並解決集成過程中的問題。

3. 技術創新 是探索性和創造性的技術經濟活動。在發展過程中,引進新技術必然會遇到各種風險。諸如T 型軟件開發和使用帶有尖峰用戶故事的新技術進行原型設計等措施。

4 、性能問題 ——由於缺乏對軟件設計的洞察力,在部署系統或使用新系統一段時間後,往往會暴露出性能問題。性能問題通常需要大量的優化工作,甚至是部分或全面的重新設計。用戶和開發人員都不希望出現性能問題。團隊需要意識到這個問題,在整個開發過程中實施性能規劃和測試,並將性能需求包含在非功能性需求中。

5 、可用性問題—— 軟件的可用性包括軟件是否高效、易學、易記、愉悅、不易出錯等諸多因素。往往由於軟件的易用性差,用戶不滿意,甚至被市場淘汰。在項目開發中,應注意可用性問題,避免軟件可用性風險。

風險分解結構

我們可以使用風險分解結構對不同方面的潛在風險進行分類:

風險分解結構是風險的層次分解,從代表項目的根節點元素開始,向下到各個風險類別,再到更細級別的風險。

除了在風險分解結構中呈現項目風險外,還可以結合使用顏色圖例來表示風險的影響。看看下面的風險分解結構示例,已經設置了一個包含五個項目的影響圖例,用五個不同的顏色代碼表示風險可能對項目產生的五個影響級別。

這是一個風險分解結構示例:

風險分解結構示例

在線編輯此風險分解結構

您可以使用許多風險管理工具來構建風險。除了風險分解結構,您還可以考慮使用 因果圖 (也稱為魚骨圖)。

結論

越早識別和管理風險,就越有可能避免風險,或減少風險發生時的影響。尤其是在項目參與者眾多的複雜項目中,應加強參與範圍廣、技術含量高的項目。


Visual Paradigm International