【文思不藏私】@故事點數(Story Point)簡單說

Vince Huang
【文思不藏私】
5 min readMay 7, 2018
https://manifesto.co.uk/agile-concepts-estimating-planning-poker/

在開始談『故事點數』前,我想讓大家來思考一個邏輯問題『往 101 頂樓餐廳,只有一台限重 200 公斤的電梯,電梯口排了 10 位顧客想要坐電梯。這 10 位顧客分別為:

  1. 顧客 A。男生,190 cm,消費能力高。
  2. 顧客 B。女生,160 cm,消費能力中等。
  3. 顧客 C。男生,170 cm,消費能力高。
  4. 顧客 D。女生,150 cm,消費能力高。
  5. 顧客 E。女生,140 cm,消費能力中等。顧客 D 的女兒。
  6. 顧客 F。男生,120 cm,消費能力低。顧客 D 的兒子。
  7. 顧客 G。男生,180 cm,消費能力高。
  8. 顧客 H。男生,170 cm,消費能力中等。
  9. 顧客 I。女生,150 cm,消費能力中等。
  10. 顧客 J。男生,90 cm,消費能力低。但是顧客 H & I 的兒子。

如果你是餐廳經理的話,我相信『消費能力』是你唯一的排序評價:

  1. 顧客 A。男生,190 cm,消費能力高。
  2. 顧客 C。男生,170 cm,消費能力高。
  3. 顧客 G。男生,180 cm,消費能力高。
  4. 顧客 D。女生,150 cm,消費能力高。
  5. 顧客 E。女生,140 cm,消費能力中等。顧客 D 的女兒。
  6. 顧客 F。男生,120 cm,消費能力低。顧客 D 的兒子。
  7. 顧客 B。女生,160 cm,消費能力中等。
  8. 顧客 H。男生,170 cm,消費能力中等。
  9. 顧客 I。女生,150 cm,消費能力中等。
  10. 顧客 J。男生,90 cm,消費能力低。但是顧客 H & I 的兒子。

如果你是餐廳服務人員,你會如何安排坐上電梯呢?你總不會一一量體重吧?你可以能作法是運用過往的經驗『依身高來安排電梯』。

依過往經驗體重跟身高的級距為:

  1. 顧客 A。男生,190 cm,消費能力高。80~110 KG
  2. 顧客 C。男生,170 cm,消費能力高。60~90 KG
  3. 顧客 G。男生,180 cm,消費能力高。60~95 KG
  4. 顧客 D。女生,150 cm,消費能力高。40~60 KG
  5. 顧客 E。女生,140 cm,消費能力中等。顧客 D 的女兒。20~35 KG
  6. 顧客 F。男生,120 cm,消費能力低。顧客 D 的兒子。15~25 KG
  7. 顧客 B。女生,160 cm,消費能力中等。40~65 KG
  8. 顧客 H。男生,170 cm,消費能力中等。60~90 KG
  9. 顧客 I。女生,150 cm,消費能力中等。40~60 KG
  10. 顧客 J。男生,90 cm,消費能力低。但是顧客 H & I 的兒子。10~20 KG。

故事點數

在 Scrum 中的『衝刺計畫會議』我們常用故事點數來估計一個『衝刺』(Sprint)階段中開發團隊能負荷的『故事總量』。『故事總量』是開發團隊從過往經驗觀察得出『每一次衝刺能承受的估計總量』,就如同電梯最大總限重 200 KG,就是過往經驗得到的『估計總量』。

因為有了『過往經驗』,餐廳服務人員可能為第一梯次的電梯安排『顧客 A + 顧客 C』(總重可能是考量 110 + 90 ≤ 200)或『顧客 A + 顧客 C + 顧客 G』(總重可能是考量 80 + 60 + 60 ≤ 200)。因為這只是估計,所以這時候的決定沒有對錯,不同的服務人員(團隊)就可能會有不同的選擇與考量。

如果選擇的是『顧客 A + 顧客 C + 顧客 G』(總重可能是考量 80 + 60 + 60),後來發現『電梯發出警報』該如何處理嗎?這就像是常常有人問『如果 Sprint 中拿的 Story 後來沒做完該如何?』一樣,你會如何處理呢?你可能請顧客 G 稍後下一班電梯,或者無視警報(如果電梯還會動的話)!

思考一下

我們可能分為下面幾個梯次:

  1. 『顧客 A + 顧客 C + 顧客 G』(總重可能是考量 80 + 60 + 60)。但電梯發出警報。顧客 G 就順延到下一梯次。
  2. 『顧客 G + 顧客 D + 顧客 E + 顧客 F』。因為前一梯次考慮太樂觀,這一梯次考慮保守一點(總重可能是考量 95 + 60 + 35+ 25 = 215 ≥200)。可能會超過,但因為顧客 D、E、F 有相關程度,還是想嘗試一下。結果是順利上電梯。
  3. 考慮『顧客 B + 顧客 H + 顧客 I』(總重可能是考量 65 + 90 + 60 ≥ 200),但是『顧客 J』與『顧客 H + 顧客 I』有相依性(同一家庭,顧客 J 是小孩無法單獨坐電梯),所以將『顧客 B』調整優先序。讓『顧客 H + 顧客 I + 顧客 J』(總重可能是考量 90 + 60 + 20 ≤ 200)。
  4. 剩下的『顧客 B』(體重 40~65 kg)可以自行做一班電梯。

計畫撲克

一般來說,Scrum 計畫撲克有幾種,用於粗估工作量的大小。估計是用來增加可預估性,而不是一種硬性的承諾!本篇只是初探『計畫撲克』,所以不打算談太多理論。

費氏數列

運用費氏數列『1』、『2』、『3』、『5』、『8』、『13』、『20』、『40』、『100』來表示。

T-Shirt Size

運用 T-Shirt Size 『S』、『M』、『L』、『XL』、『XXL』來表示。

動物大小

運用動物『吉娃娃』、『山羊』、『小馬』、『長頸鹿』、『大象』。

【請用你的掌聲來投票與支持】
感謝你認真的讀完這篇文章,你的支持會是我持續寫作的動力
如果你還喜歡這篇文章請給我 1~4 個『掌聲』
如果這篇文章對你有幫助請給我 5 個以上『掌聲』
文思不藏私 Facebook 粉絲專頁
如果你對我這一系列文章有興趣歡迎『Follow』我或『分享』給你的朋友
也歡迎你將你的看法『回覆』給我
2018 書坑待辦清單
誰是文思?

--

--

Vince Huang
【文思不藏私】

A Product Owner in software company, interests include agile/scrum, machine learning and mobile design. https://www.linkedin.com/in/kuoyuhuang/