敏捷開發模式下,如何進行質量管理?
4 人贊了文章敏捷開發並不只是一個「速度遊戲」,而是一個強調敏捷的「質量遊戲」。在敏捷開發過程中,如果只滿足了進度而忽視了質量,最終會影響項目的成功。越來越多的企業希望採用敏捷開發模式,但卻困於沒有把握,缺乏相應的質量管理方法。如何在敏捷開發模式下進行質量管理,達到質量與效率的雙贏呢,不妨試試下文的方法。
「產品教父」張小龍曾在微信事業群中談到敏捷開發:
我們今天可以想一些與眾不同的點子,然後我們可以很快就看到效果,因為我們可以很快把它上線了,然後可以去驗證,如果不對就下線,如果還有改進餘地,下個星期再去改它。這是一個能夠持續實現你的想法的過程。
什麼是敏捷開發?
傳統的開發流程採用瀑布式開發,從設計到編碼,從測試到交付,每個階段都必須全部完成,才能進入下一階段。而在敏捷開發中,軟體項目的構建被切分成多個子項目,各個子項目的成果都經過測試,具備集成和可運行的特徵。
「敏捷開發」是互聯網產品開發的典型方法論,是一種以人為核心、迭代、循序漸進的開發方法,允許有所不足,不斷試錯,在持續迭代中完善產品。
敏捷開發有兩個點,一個「微」,一個「快」。
「微」是指從小處著眼,微創新。可能你覺得是一個不起眼的點,但是用戶可能覺得很重要」。從細微的用戶需求入手,貼近用戶心理,在用戶參與和反饋中逐步改進。
360安全衛士當年只是一個安全防護產品,後來也成了新興的互聯網巨頭。
「快」是指快速迭代。「天下武功,唯快不破」。只有快速地對消費者需求做出反應,產品才更容易貼近消費者。
Zynga 遊戲公司每周對遊戲進行數次更新。小米MIUI系統堅持每周迭代。敏捷開發質量判斷方案近年來,越來越多團隊開始探討如何進行敏捷規模化,提出了很多有效的框架,都是基於精益和敏捷的理念,在這個過程中通過系統思考產品開發流,讓它形成一套完整有效的方法,進行整體的優化。公司有廣泛而深入的精益和敏捷的理念來支撐,才能從局部優化上升到整體優化,才能走的更加長遠健康。
敏捷模式下的質量管理更具有挑戰性。
在推動敏捷開發的同時,如何降低項目管理成本,提高研發人員工作效率,保證項目交付質量,變得日益重要。在敏捷開發中,衡量過程質量一直以來沒有一個廣泛的方法,在推廣敏捷開發的過程中,總結歸納了項目過程中的常見問題,匯總了一套敏捷開發過程質量判斷方案。這種方法用明確的數據從各個維度來說明一個迭代的質量問題,長期還可以看出一個項目多個迭代之間的質量變化趨勢,如果多個項目同時進行,也可以輕鬆對比出各個項目的迭代質量優劣和質量發展趨勢。
以一個迭代為統計單元,每個迭代中的story完成情況和bug解決情況從以下6個角度,綜合考慮了時效性和完成質量。
評價功能開發是否按時並達到質量基礎要求完成,使用「story延期率」和「story打回率」兩個指標,評價在功能開發過程中的時效和質量。
① Story 延期率:統計功能是否按時提測,以實際提測時間(story到「開發完成」狀態)與story的「計劃提測日期」欄位中的時間對比,若晚於計劃時間,那麼story即標記為延期提測;
② Story 打回率:統計story開發完成提測後能否滿足提測標準,以冒煙測試用例的滿足情況為準,如果測試驗證未滿足則會將story打回開發狀態,同一個story如果被多次打回,打回次數按照實際記錄,也就是說打回率會急劇增加;
評價在測試過程中所發現的問題是否按時解決並達到質量要求,使用「Bug打回率」、「Bug不收斂率」、「Bug引發率」和「Bug 重啟率」四個維度,分別介紹如下。
③ Bug 打回率:是指開發人員解決了bug並提測到「開發完成」狀態,但經測試人員驗證發現並沒有解決,被打回到「開發中」的狀態;
④ Bug 不收斂率:測試提出的bug未按照解決時效要求修復的,例如,解決時效要求:P0:2小時內未修復視為不收斂;P1:半天未修復視為不收斂;P2:一個工作日內未修復視為不收斂;P3,P4(必修):2個工作日內不修復視為不收斂;
⑤ Bug 引發率:是指開發人員在解決一個bug時,引起了其他的bug;
⑥ Bug 重啟率:已經關閉的bug在開發人員解決問題的過程中或者代碼部署的誤操作等導致不過重新出現。
在考慮各個指標分值佔比時,從各個指標的意義、影響等方面綜合考慮,6個維度指標優先順序從高至低排列為:story延期率,story打回率,bug打回率,bug引發率,bug不收斂率,bug重啟率。story延期率分值佔比最高,因為story如果延期提測,那麼後面的工作將整體受影響,並且可能會導致測試人員的工作安排衝突。
以100分為總分,各個指標劃分一定的分值,輸入sprint結束後6個維度的質量統計數據,按照下面的積分模型,計算出這個sprint的過程質量總分。
敏捷開發的核心就是小版本迭代,快速出產品,所以項目一般會延續多個版本。所以項目過程質量可以在每個sprint結束後均有對應的質量數據輸出,經過一系列迭代後,可以看出這個項目的質量趨勢。如果同期有多個項目在進行,那麼也可以通過質量數據的對比,對比出各個項目的質量優劣,同時輔以圖表來直觀分析對比。
例如,同一階段有3個項目在進行,同一個時間這3個項目的迭代質量和質量波動幅度數據如下,那麼按照質量均分和波動幅度使用柱狀圖進行排序,各個項目的對比情況立刻見分曉。
對於多個項目的質量對比,採取項目質量平均分的方式,以及項目質量多個迭代版本的質量波動數據來表示。
質量平均分採取項目從第一個迭代至當前迭代的質量分數的平均值,代表項目截止當前的質量平均水平;
質量波動數據採取基於截止當前的迭代質量分數計算方差,數據越小,說明質量波動越小。
多個項目並行時,從質量均分和質量波動數據兩個維度分別對比,同一時間將每個項目標記在一個二維象限(象限的質量均分和質量波動數據兩個維度的分割值可以視具體的項目情況而定,例如採用多個項目這兩個維度的平均值)中,項目質量以及波動情況即顯而易見,在「質量好,波動小」到「質量差,波動大」之間一目了然。
使用工具
以上介紹的質量判斷方案需要有一定的工具支撐,我們使用了JIRA進行項目管理,管理需求和開發過程以及bug,story的計劃提測時間和打回次數可以進行記錄,在迭代結束後只要花很少的時間就可以進行快速得統計,迭代質量數據也可以呈現出來。項目經理在很短時間內就可以統計出項目的質量分數並進行後續分析。
好的研發工具可以簡化質量統計,質量統計方案在實施過程中,往往需要配合組織架構、流程、文化建設等多方面,才能達到有效推動改進迭代質量。
推薦閱讀:
※除了做俯卧撐,還有什麼方式可以讓站會更高效
※兩周疾風式教學課程構想
※親歷者說:敏捷?我被洗腦了嗎?
※阿里敏捷教練何勉:論精益思想及精益產品開發實踐體系
TAG:敏捷開發 |