組與個體估計的準確性
無論團隊是在做產品還是項目,我們都需要回答“我們什麼時候完成?”這個問題。或者我們可以在某個時間點走多遠。就像傳統開發一樣,我們需要在開始項目之前估算工作量。
什麼是項目估算?
估計 是對某事的粗略 計算。例如,工程造價估算是工程價格模型的一般概念。當您的客戶或其他項目利益相關者要求您評估項目的成本和時間時,它可以幫助您提供一個有希望的更現實的數字。
敏捷與傳統估計
傳統上,我們分配時間來估計軟件項目,而在 敏捷方法中,他們更喜歡為積壓項目提供一個故事點,作為相對工作的衡量標準。這允許團隊考慮他們過去完成的其他工作,並將其與他們將估計的產品積壓進行比較。故事點不是通過給出絕對時間來衡量的,而是通過根據過去的經驗估計解決類似任務所需的工作量。
敏捷估計 具有以下三個特點:
- 團隊集體估計
- 相對努力與絕對時間估計
- 估計團隊速度
1. 集體估計
在 Scrum的開發過程中,團隊分擔責任,共同致力於每個 Sprint的工作,因此敏捷團隊的工作量估算採用了集體估算的方式。集體估算通常使用規劃撲克作為工具,團隊通過玩估算遊戲進行集體估算。 計劃撲克 被認為是在敏捷中進行工作量估計的最有效和最有趣的技術 。它由一組類似於斐波那契數字的數字組成,包括:0, 0.5, 1, 2, 3, 5, 8, 20, 40, ?, ∞, 每副撲克牌有 4 組這樣的斐波那契數供服務4人使用。
群體估計與個體估計的準確性
根據一些關於軟件項目實驗中個人和群體之間努力估計準確性的研究。來自同一家公司的 20 位軟件專業人員分別估算了實施同一軟件開發項目所需的工作量。參與者有不同的背景和 角色 ,軟件項目之前已經實施過。之後,他們組成了五個小組。每個小組通過討論和組合他們之間的知識,就一個估計達成一致。
結果——基於小組討論的估計比個人估計更準確。
進行規劃撲克的步驟
- 每個隊員得到一組卡片,包括0、0.5、1、2、3、5、8、13、20、40、?、∞,共12張卡片。
- 產品 負責人 將向團隊閱讀描述功能。
- 團隊成員討論該 功能,並在需要時向產品負責人提問。
- 當成員們完成他們的討論後,他們每個成員選擇一張撲克牌來代表估計。然後同時顯示卡片。
- 如果團隊評估不同的估計。我們同意嗎?我們有分歧嗎?有什麼我沒有考慮到的嗎?選擇最高或最低值的人應在每個成員選擇另一張撲克牌之前與小組分享他們的推理。
- 討論完可以估計下一輪,需要團隊達成一致。
- 回到第二步,開始估計下一個條目。
2. 相對努力與絕對時間估計
估計只不過是有根據的猜測。我們利用手頭的所有知識和經驗來猜測將要花費的時間。因此,與其單獨查看每個新工作項,不如將其與之前完成的工作項進行比較?人類更容易將相似的物品聯繫起來,而不是猜測事物的實際大小。
例如,它是否更接近這個非常小的東西?還是更像這個正常尺寸的物品?還是真的像我們上個月完成的那件作品一樣巨大?進行相對估算不僅會減少估算工作所花費的時間,還會大大提高估算的準確性。
我們的大腦無法進行絕對估計;我們總是把我們需要估計的新事物與我們已經知道的事物聯繫起來。
3. 估計速度——記錄並平均每個 Sprint 的團隊速度
團隊 速度 是 Scrum 團隊 在 Sprint 中實際完成 的 故事點數。團隊速度告訴您團隊的速度。一個新估計的項目或團隊(不參考過去的速度記錄),我們可以做 1-2 個 Sprint 來測量一個速度作為初始速度。在 Sprint 實施過程中,我們需要記錄每個 Sprint 的速度,以備將來計劃之用。
我們估計產品 Backlog 的 故事點總數 ,然後我們知道每個 Sprint 的平均速度,然後我們可以計算出我們需要完成多少個 Sprint,因此預計項目所需的 Sprint 為如下圖所示。