敏捷開發中,基於Points 的burndown
敏捷開發,很大的成功,來自於將開發的過程簡單化,同時讓整個團隊的工作變得透明。在團隊工作透明化過程中,burndown report 起了很大的作用。 通過檢視整個團隊、某個Story或某個任務的Burndown,能很清晰的瞭解到工作的進展。Burndown report可以通過以下兩種方式來生成
- 基於剩餘工作時間的burndown
- 基於剩餘Points的burndown
基於剩餘時間的burndown,團隊成員每天及時更新任務層面的花費時間和剩餘時間,從而獲得burndown table。下圖是一個具體的範例。
通過彙總每天剩餘工作時間的總和,我們可以得到一個線性的burndown報表
一般來說,對於剛開始嘗試敏捷開發的團隊,獲得基於剩餘時間的burndown會更容易些。因為很直觀,團隊成員只要每天及時更新花費時間,以及還有多少剩餘時間,burndown就會自動生成。團隊工作的透明度,很容易就看到成果。但是越來越多的實踐發現,使用基於剩餘時間的burndown,帶來越來越多的問題。主要的問題來自以下2個方面:
- 剩餘時間由團隊成員每日自我預估並填寫,常常出現一開始預估的剩餘時間不夠精確,隨著Sprint進展,出現剩餘時間不減反增的情況。
- 優秀的開發人員常常在最簡單的工作上遺忘。基於剩餘時間的burndown要求團隊成員每日下班後,或在每日例會前及時更新剩餘時間。但開發人員常常在這些工作上疏忽,假設一直到週五,開發人員才想起對名下的任務更新剩餘時間;那麼基於剩餘時間的burndown,整個的資料就完全失真了。
以上兩種情況,都會讓敏捷團隊的Master崩潰,因為burndown顯示的剩餘工作要麼忽上忽下,要麼幾天都看不到團隊的進展成果。承諾的工作,是否能在Sprint結束的時候完成,心中完全沒底。
我們回過頭,來看看基於Points的burndown。
基於Points的burndown,在Sprint計劃會的時候,按照工作量大小,為每個任務設定一個Point值。團隊成員無需每日更新任務的Point數,當完成並關閉任務的時候,剩餘的Points數就自動下降。基於Points的burndown有以下幾個好處
- 團隊成員不用每天被提醒去及時更新剩餘時間;一旦任務被完成關閉,基於Points的burndown燃盡圖就會自動下降;
- Burndown的趨勢總是一直向下的,不會出現忽上忽下的情況。不過在Sprint剛開始的幾天裡,burndown可能是保持平行的。因為所有的任務都剛剛開始,開始的幾天時間裡,並沒有完成的Points
下面是一個團隊在Sprint過程中,每天完成的Points 的表格和剩餘Points的線性圖
基於此,越來越多的敏捷團隊嘗試從基於剩餘時間的burndown轉變為基於Points的burndown。但是Points實際用起來,卻沒有那麼容易,因為這裡有個對任務工作量的預估過程。我們可以舉個案例,同一個任務,團隊裡的高手認為1天能完成,團隊裡的新人認為需要5天來完成。但實際情況是,高手認定的1天,真的由他來完成,也不一定能保證精確的在1天內完成。那如何來定義每個任務的Points 呢?這種時候,通常有幾種辦法:獨裁的,民主的,和理想的。
- 獨裁的辦法,就是由團隊中的Master說了算,直接為任務定個Points,然後指定一個合適的負責人。
- 民主的辦法,就是由組員進行投票。每個人根據自己的評估,來為任務投票設定Points。Master彙總,去掉最高分,去掉最低分,然後取下平均值。
- 理想的辦法,參考團隊當中平均工作能力,組員在理想的工作狀態下,完成任務所需的工作量。
在剛開始實行基於Points產生burndown的幾個月時間裡,團隊在Points的定義上可能還不是那麼精準,你可以考慮在這段時間裡,同時使用Points和剩餘時間,從而讓團隊的工作也儘量透明化,保持好敏捷團隊的自我管理。3個月,6個月,或1年後,你慢慢就會得到一組積累的資料,會了解到團隊在過去幾個Sprint週期中完成的Points數。你會大概知道你的團隊在一個Sprint週期裡,能完成多少的Points;這比機械考核每個人或團隊的績效,有意義的多。並且在Sprint計劃會的時候,為每個任務定義的Points也會逐漸合理。
對於走向敏捷開發的團隊,上述的過程,會經歷一段時期。剛開始的時候,是否需要藉助工具來管理這些過程,答案是不一定。可能剛開始,不用工具,反而能更好的上手敏捷的基本原則和思想。這就好比小朋友學打乒乓球,剛開始是否需要專業的球拍?可能讓他用普通的球拍或者木板,反而能更好的感受乒乓球的運動。等到有了一定的基礎後,需要在敏捷的過程管理上更進一步,這個時候你就需要專業的工具來幫你更好的進行管理和統計。好比優秀的運動員,需要專業的比賽裝備才能有高超的發揮一樣。
TechExcelDevSuite92系列,burndown燃盡圖中,不但可以支援基於剩餘時間,也可以基於剩餘Points,甚至可以基於剩餘尚未完成的任務來生成燃盡圖。從而從多個維度來更好的展現團隊工作透明化。
同時增加了Sprint組的Points完成量統計報表,直觀的透明化團隊的工作能力