為什麼需要估算#
估算讓客戶可以根據 Story 的成本做出更好的優先順序決策。一個高價值但成本極高的 Story,可能不如幾個中等價值但成本低的 Story 划算。
Story Point 估算法#
Story 的估算通常使用故事點數(Story Point),而非直接估算時間。Story Point 代表的是 Story 的整體大小,綜合考量:
- 複雜度:技術上的困難程度
- 工作量:需要投入的努力
- 風險/不確定性:未知因素的多寡
Story Point 是相對的衡量單位。如果團隊認為「搜尋功能」是 2 個點,「購物車功能」相對是 3 個點。重點不是絕對數字,而是 Story 之間的比例關係。
估算方法:Planning Poker#
Planning Poker 是最受歡迎的估算方法:
- 客戶或 Product Owner 說明 Story 的內容
- 開發人員提問以釐清細節
- 每位開發人員獨立在卡片上寫下估算值
- 所有人同時亮出估算卡片
- 如果估算差異大,討論後重新估算
同時亮牌很重要——這可以避免錨定效應(Anchoring),防止第一個說出數字的人影響其他人的判斷。
估算時的注意事項#
三角測量#
用已估算的 Story 作為參考基準。例如:「這個 Story 感覺比我們估為 2 點的搜尋功能大,但比估為 5 點的報表功能小,所以大概是 3 點。」

Figure 8.1: Pin story cards to the wall to facilitate triangulation
誰來估算#
- 開發人員估算,客戶不參與估算數字
- 客戶的角色是回答問題和提供澄清
- 客戶不應對估算表達驚訝或不滿,以免影響團隊的誠實判斷
不確定性處理#
如果團隊對某個 Story 無法做出合理估算,可以安排一個短期的探索性工作(Spike):
- 用固定的時間(如一天)來研究和原型驗證
- Spike 的目的是減少不確定性,讓團隊能在下次規劃時給出更好的估算
估算不需要精確。在專案早期,粗略的估算就足夠了。隨著團隊對系統的了解加深,估算會自然變得更準確。