無論是團隊研發一款產品或者開發某一個項目,我們都需要回答“我們大概什么時間能夠完成?”, 或者到某一個時間點,我們能夠做到什么程度, 因此和傳統的開發模式一樣,我們在故事拆分之后需要對我們需要做的事情進行工作量的估算。相對于傳統的工作量估算方式,敏捷估算有如下幾個特點:
1. 團隊集體估算
在Scrum的開發過程中,團隊共擔責任,集體承諾每個Sprint的工作,因此對于工作量的估算敏捷團隊采用集體估算的方式。集體估算,通常采用估算撲克作為工具,團隊通過玩估算游戲進行集體估算。一般采用估算撲克來做工作量估算(常見的還有T-shirt Size估算),估算撲克的使用方法:
? 每個團隊成員拿一組卡片,包括0,0.5,1,2,3,5,8,13,20,40,?,∞,共計12張。
? 產品負責人或者一名團隊成員扮演閱讀者的角色,他負責閱讀需要估算產品Backlog的條目,并且詢問大家是否有疑問。
? 當團隊理解了這個條目之后,每個團隊成員按照自己的想法給出估算結果,并選擇對應的撲克出牌,估算結果不能告訴其他人,出牌時數字朝下扣在桌面上。
? 所有人都出牌之后,閱讀者向大家確認是否都已經確定估算結果,確認后,數”1,2,3″,大家同時展示估算結果。
? 團隊評估不同的估算結果。我們是否想法一致?我們是否存在分歧?有沒有什么是我沒有考慮到的?討論之后可以再估算一輪,最終團隊需要達成一致。
2. 估算大小,而不是估算時間周期,使用相對估算,而不是絕對估算
一瓶礦泉水,讓一個3歲的小妹妹把它喝完所花的時間和一個成年人把它喝完所花的時間肯定不一樣,因此同一項工作,不同能力的人完成它花費的時間顯然是不一樣的。如果我們要估算從家到公司的絕對距離是多少公里,您可能不知道,但是如果您是做地鐵上班,從家里到公司有多少站,你一定很容易知道,當知道有多少站之后,我們就可以大概清楚路上需要花多長時間了。敏捷估算時,我們不會估算絕對時間和周期,我們估算大小,和相對值,也就是倍數。敏捷估算時,我們使用故事點作為計量單位,它是一個倍數,我們會先找一個我們認為最小的一個功能的大小作為參考基準,定義為1個故事點,把其它的故事和它做比較,如果是2倍大小,就是2個故事點,如果是5倍大小,就是5個故事點。
3. 記錄每個Sprint的團隊速度
團隊速率是一個Scrum團隊在一個Sprint中實際完成的故事點數,通過團隊速率可以知道團隊做的有多快。新開始的項目或產品開發,或者是新團隊,沒有初始速度,我們可以做1-2個Sprint測算一個速度,作為初始速度。在Sprint執行過程中,我們要記錄每個Sprint的速度,為以后的計劃做參考。
團隊速率是一個Scrum團隊在一個Sprint中實際完成的故事點數,通過團隊速率可以知道團隊做的有多快。新開始的項目或產品開發,或者是新團隊,沒有初始速度,我們可以做1-2個Sprint測算一個速度,作為初始速度。在Sprint執行過程中,我們要記錄每個Sprint的速度,為以后的計劃做參考。
我們估算了產品Backlog的故事點總數,然后又知道了每個Sprint團隊的平均速度,那么我們就可以推算我們大概需要多少個Sprint可以做完,這樣我們就得到了周期。