2019-02-26 10:41:37分類:軟件開發5968
敏捷軟件開發風險管理的思路是:首先分析敏捷軟件開發的特點,然后結合風險管理過程進行管理。敏捷軟件開發通過其執行結構規避和減輕了常見的軟件開發風險,但這也引進了開發過程的不確定,因此也蘊含了大量的風險。
1、敏捷軟件開發的風險分類
軟件開發可分為開發人員、過程、產品和技術四個維度,它們互相聯系和統一,共同決定了軟件開發的速度和效率。
(1)人員風險。人員風險有溝通不暢,缺乏協作,人員變動,素質低下,矛盾和沖突,缺乏激勵,士氣低下,對業務不理解,缺乏優秀人才,缺乏客戶介入等。
(2)技術風險。技術風險有偽敏捷,架構體系不穩定,設計不佳,缺乏技能,高估新技術等。
(3)產品風險。產品風險有功能不符,需求鍍金,功能蔓延,質量低下,工期延誤,成本超支,客戶滿意度低,低產品價值,低投資回報等。
(4)過程風險。過程風險有缺乏計劃,迭代掌握不佳,評估和規劃不合理,缺乏風險管理,缺乏質量保證措施等。
2、敏捷軟件開發的風險處理
在敏捷軟件開發過程中從人、過程、產品和技術四個緯度進行的風險處理過程。
(1)人員風險。敏捷軟件開發通過頻繁溝通、每日站立會議、反饋等方式解決了溝通不暢,缺乏協作的問題;通過領導、結對編程、代碼集體所有權等方式促進團隊協作,提高技能素質,應對人員變動,降低矛盾和沖突;通過頻繁的產品發布提高人員成就感和士氣;通過現場開發,降低缺乏客戶介入的風險。
(2)技術風險。敏捷軟件開發通過迭代、測試套件、重構等方式適應變化和演進,避免了傳統的開發方法在一開始就進行架構及設計,從而導致架構體系不穩定和設計不佳的風險。對于敏捷技能險,可以通過引入敏捷教練、結對編程、學習環的方式加以應對。
而對于非敏捷軟件開發所特有的普適性技術風險,可以通過組織和加強內部技術人員的培訓和培養,引進能解決項目關鍵問題的優秀人才,防止優秀人才的流失等方式進行規避。
(3)產品風險。敏捷軟件開發通過迭代、反饋、客戶參與的方式解決了構建錯誤產品、功能蔓延、需求鍍金、質量低下、客戶滿意度低等風險。可以通過綜合考慮功能價值和風險,按照高風險高價值→低風險高價值→低風險低價值→高風險低價值的順序開發產品功能,漸次降低產品的價值風險;通過對凈現值、內部收益率、回收期、貼現回收期等經濟指標的綜合分析,規避項目的投資回報風險。
(4)過程風險。敏捷軟件開發通過產品→發布規劃→迭代規劃→任務逐漸瞄準的形式,極大地消除了各種不確定風險。
對于軟件開發過程的進度風險,可以通過設置功能緩沖區和進度緩沖區,從功能和進度兩個方面保護項目免受不確定性的沖擊;也可以從以下三個方面對進度風險進行定量分析。
①N=S/V(N:估算的項目總迭代數,S:項目的總故事點數,V:速率,是基于歷史數據計算的每一次迭代所能完成的故事點數)。
②用正態分布N(μ,σ的平方),得到每一次迭代的平均故事點數X和標準差σ,計算μ=(S/N-X)/σ,并得出項目按時完成的概率。
③綜合正態分布,PERT分布,三角分布進行蒙特卡羅模擬,得出模擬的結果并繪制累計完成的概率分布。