估算(Estimation)與速率(Velocity)是 Scrum 規劃的兩大基石。本章說明如何估算產品待辦項目的大小、如何衡量團隊速率,以及兩者如何共同推導出開發所需的時程與成本。
概觀#
在規劃與管理產品開發時,我們需要回答三個關鍵問題:
- 能完成多少功能?
- 何時能完成?
- 要花多少成本?
Scrum 的做法是:先估算要建造的東西有多大(size),再衡量團隊完成工作的速率(velocity),最後透過公式推導出時程:
估算大小 / 衡量速率 = 所需 Sprint 數

Figure 7.1: The relationship among size, velocity, and duration
例如:Release 1 的 PBI 總大小為 200 點,團隊平均每個 Sprint 完成 20 點,則需要 10 個 Sprint 來完成 Release 1。
什麼時候估算什麼#
在產品開發的不同階段,我們需要在不同粒度層級進行估算,使用不同的單位:

Figure 7.2: What and when we estimate
| 層級 | Backlog 類型 | 估算單位 | 估算時機 |
|---|---|---|---|
| 組合層 | Portfolio Backlog | T-shirt Size(S/M/L/XL) | Portfolio Planning |
| 產品層 | Product Backlog | Story Points / Ideal Days | Product Backlog Grooming |
| Sprint 層 | Sprint Backlog Tasks | Ideal Hours(effort-hours) | Sprint Planning |
Portfolio Backlog Item 估算#
Portfolio Backlog 包含所有需要建造的產品或專案的優先順序清單。由於此階段通常沒有完整的需求細節,多使用粗略的相對大小估算,例如 T-shirt Size。
Product Backlog 估算#
當 PBI 的優先順序提升並經過梳理(Grooming)增加更多細節後,團隊會使用 Story Points 或 Ideal Days 進行數字化的大小估算。
有些 Scrum 實踐者認為 PBI 大小估算並非必要——當團隊夠成熟,能將 PBI 拆到大小相近時,直接計算數量即可。但作者仍傾向估算 PBI,因為:
- 並非所有 PBI 會在同一時間達到相同大小
- 團隊需要時間培養拆解技能
- 為了達到相同大小而在不自然的位置拆分故事並不理想
- 估算對話中的學習是最大的價值——要求人們對某個東西給出數字,能立即暴露分歧並迫使假設浮出水面
Task 估算#
Sprint Backlog 中的 Task 使用 Ideal Hours(也稱為 effort-hours、man-hours、person-hours)進行估算。例如 UI 任務估計 5 effort-hours,不代表 5 小時後完成,而是需要消耗團隊 5 小時的工作量。
PBI 估算核心概念#

Figure 7.3: Product backlog item estimating concepts
以團隊為單位估算(Estimate as a Team)#
Scrum 的原則是:由實際執行工作的人來集體提供估算。

Figure 7.4: The full Scrum team participates in estimation.
- 開發團隊:負責估算,從各自的專業角度共同決定大小
- Product Owner:描述 PBI 並回答澄清問題,但不提供估算,也不應引導團隊朝向特定數字
- ScrumMaster:協助教練和促進估算活動
估算不是承諾(Estimates Are Not Commitments)#

Figure 7.5: Effect of committing on estimates
如果告訴團隊「你的獎金取決於估算是否正確」,每個人都會給出遠大於實際的估算。估算應該是對事物大小的真實衡量,不應因為外部壓力而被人為膨脹。
將估算視為承諾會導致數字被反覆操弄——團隊膨脹估算、管理層壓縮估算——最終沒有人真正理解這些數字的含義。
重視準確度而非精確度(Accuracy over Precision)#

Figure 7.6: Effort versus accuracy when estimating
- 過度精確的估算(如 10,275 人時或 $132,865.87)是浪費
- 產生估算的過程浪費時間,且會造成虛假的確定感,導致錯誤的商業決策
- 應投入剛好足夠的精力來獲得大致正確(roughly right)的估算
- 存在一個報酬遞減點:超過該點,額外的努力不會帶來對應的準確度提升
使用相對大小估算(Relative Size Estimation)#

Figure 7.7: Relative size estimation
人類天生更擅長判斷相對大小而非絕對大小。

Figure 7.8: Absolute versus relative size estimation
作者在課堂上做的實驗:請 30 人估算到對面牆的「絕對距離」,得到 27 個不同答案;再請他們估算投影機在自己和對面牆之間的「相對位置」,29 人都說「大約一半」。結論:估算技巧應建立在人們擅長的事情上(相對估算),而非不擅長的事情上(絕對估算)。
PBI 估算單位#
兩種最常見的 PBI 估算單位是 Story Points 和 Ideal Days。作者的經驗中約 70% 的組織使用 Story Points,30% 使用 Ideal Days。
Story Points#
Story Points 衡量 PBI 的整體大小或量級,綜合考量以下因素:
- 複雜度:例如複雜的商業演算法,最終產出不大但開發工作量大
- 物理大小:例如更新 60,000 個儲存格的試算表,不複雜但工作量龐大
Story Points 讓我們能做出比較性的判斷,例如:「如果建立工單的故事是 2 點,那搜尋工單的故事就是 8 點。」由於 Story Points 最終用於計算時程,它必須反映開發團隊視角的工作量。
Ideal Days#
Ideal Days 代表完成一個故事所需的 effort-days(人天數)。就像美式足球理論上 4 節各 15 分鐘(共 1 ideal hour),但實際比賽要 3 到 3.5 小時。
Ideal Days 的主要風險在於誤解。「這個 PBI 要 2 天」很容易被誤認為 2 個日曆天,而非 2 個理想工作天。如果組織內容易產生這種誤解,建議使用 Story Points。
Planning Poker#
Planning Poker 由 James Grenning 首先描述、Mike Cohn 推廣,是一種用於估算 PBI 大小的共識技術。

Figure 7.9: Planning Poker concepts
其核心概念包括:
- 共識導向(Consensus-based)
- 專家意見(Expert opinion)
- 深入討論(Intense discussion)
- 相對大小(Relative sizing)
- 準確分組/分箱(Accurate grouping/binning)
- 利用估算歷史(Leverage estimating history)
估算尺度#
團隊需要選定一組數字尺度。常用的有:
- 修改版 Fibonacci 數列(Mike Cohn 提出):1, 2, 3, 5, 8, 13, 20, 40, 100
- 2 的冪次:1, 2, 4, 8, 16, 32, …

Figure 7.10: Planning Poker uses binning.
這種尺度的設計意圖是在小端提供較多選擇(需要較精確的區分),在大端提供較少、間距較大的選擇(避免過度精確)。就像郵局分揀包裹,每個包裹放入最匹配的箱子,箱中的包裹大小不會完全一樣,但屬於同一量級。
如何進行#

Figure 7.11: Innolution Planning Poker cards
Planning Poker 的流程:
- Product Owner 選取一個 PBI 並向團隊說明
- 開發團隊成員討論並向 Product Owner 提出澄清問題
- 每位估算者私下選取一張卡片代表自己的估算
- 所有私下估算同時亮牌
- 如果所有人選擇相同,即達成共識,該數字成為估算值
- 如果不同,請最高和最低估算者解釋理由,團隊進行聚焦討論
- 回到步驟 3 重複,直到達成共識
常見的特殊卡片含義:
| 卡片 | 含義 |
|---|---|
| 0 | 項目已完成或小到不需要給數字 |
| 1/2 | 極小項目 |
| 1, 2, 3 | 小型項目 |
| 5, 8, 13 | 中型項目;13 通常是許多團隊放入 Sprint 的上限 |
| 20, 40 | 大型項目(Feature 或 Theme 級別) |
| 100 | 非常大的 Feature 或 Epic |
| 無限大 | 項目大到沒有意義給數字 |
| ? | 不理解該項目,要求更多說明 |
Planning Poker 的最大價值不只是產生估算數字,而是討論過程中團隊對 PBI 的深入理解。要求人們給出數字,能迅速暴露假設與分歧。通常 2 到 3 輪投票即可達成共識。
flowchart TD
A[PO 選取 PBI 並向團隊說明] --> B[團隊討論與提出澄清問題]
B --> C[各成員私下選取一張卡片]
C --> D[所有人同時亮牌]
D --> E{結果一致?}
E -->|是| F[達成共識,確定估算值]
E -->|否| G[最高與最低估算者\n解釋理由]
G --> H[團隊進行聚焦討論]
H --> C什麼是 Velocity?#
Velocity(速率) 是團隊每個 Sprint 完成的工作量,計算方式為加總該 Sprint 中所有完成的 PBI 的大小估算。
- PBI 要麼完成(done),要麼沒完成——部分完成的項目不計入 Velocity
- Velocity 衡量的是產出(output,交付了多大的東西),而非成果(outcome,交付了多少價值)
Velocity 有兩個重要用途:
- 規劃工具:Release Planning 中用來計算完成 Release 所需的 Sprint 數;Sprint Planning 中作為團隊承諾工作量的參考
- 診斷指標:團隊可透過觀察自身 Velocity 的變化,評估特定流程變更對客戶價值交付的影響
計算 Velocity 範圍#

Figure 7.12: Calculating and using a velocity range
Velocity 以範圍(range)表達最為有用,例如「團隊通常每個 Sprint 能完成 25 到 30 點」。
以 Release 1 大小為 200 點為例:
- 以較高速率 20 點/Sprint 計算:需要 10 個 Sprint
- 以較低速率 17 點/Sprint 計算:需要 12 個 Sprint
- 答案:Release 1 需要 10 到 12 個 Sprint 完成
使用範圍能準確地傳達不確定性,比單一數字更實際。可透過歷史 Velocity 數據,以高低平均值或信賴區間等簡單統計方法來計算這兩個數字。
預測 Velocity(Forecasting Velocity)#
當新團隊沒有歷史數據時,需要預測 Velocity:
- 讓團隊進行一次 Sprint Planning,決定能承諾哪些 PBI,加總其大小作為預測值
- 為了得到範圍,可以讓團隊規劃兩個 Sprint,使用兩次不同的估算值作為高低值
- 一旦團隊完成第一個 Sprint 有了實際 Velocity,就應捨棄預測值,改用實際值
影響 Velocity 的因素#

Figure 7.13: A team's velocity over time
團隊的 Velocity 不會無限上升。一個積極改善自身、遵循健全 Definition of Done 且控制技術債務的團隊,Velocity 會上升到某個程度後趨於穩定(plateau)。
達到穩定後,可透過以下方式嘗試突破到下一個平台:
- 引進新工具
- 增加培訓
- 策略性地調整團隊組成
這些變更通常會先造成 Velocity 的短期下降,然後才會提升到新的平台。而隨意地將人員調入調出團隊,很可能只會導致 Velocity 持續下降。
加班的影響#

Figure 7.14: The effect of overtime on velocity
長時間加班的效果通常是:
- 初期 Velocity 短暫上升
- 隨後 Velocity 急劇下降,品質同步惡化
- 加班結束後,團隊需要恢復時間才能回到基準 Velocity
- 恢復期間的 Velocity 損失(低谷)往往大於加班期間的 Velocity 增益(高峰)
大量加班可能帶來短期利益,但長期後果往往遠超短期收益。
誤用 Velocity#
Velocity 應作為規劃工具和團隊自我診斷指標,不應作為績效衡量指標來評判團隊生產力。
誤用的典型場景:
- 跨團隊比較 Velocity:不同團隊的估算基準不同,Team A 對某 PBI 估 5 點、Team B 估 50 點,直接比較 Velocity 毫無意義
- 以最高 Velocity 發獎金:團隊會進行 Point Inflation(點數膨脹)——把原本估 5 的項目改估 500
- 更危險的情況:團隊為了追求更高 Velocity 而偷工減料,導致技術債務不斷累積
Velocity 的正確用法是協助準確規劃,以及幫助團隊內部自我改善。任何其他用途都可能促進錯誤的行為。
小結#
- 估算發生在三個層級:Portfolio(T-shirt Size)、Product Backlog(Story Points / Ideal Days)、Sprint Tasks(Ideal Hours)
- PBI 估算的四大核心概念:團隊估算、估算非承諾、重準確度輕精確度、使用相對大小
- Planning Poker 是最常見的 PBI 估算技術,透過共識、深入討論和相對大小分箱來產生估算
- Velocity 是每個 Sprint 完成的工作量,以範圍表達最準確
- 新團隊可透過模擬 Sprint Planning 來預測 Velocity,一旦有實際數據就應替換預測值
- Velocity 不應被用作跨團隊的績效比較指標,否則會引發點數膨脹或偷工減料等問題