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