l

2012年12月27日 星期四

Story與Task的估算單位為什麼不同?

Dec. 17 22:16~23:30

螢幕快照 2012-12-17 下午11.04.56

圖片來源:Google Map

經常有鄉民會問Teddy一個問題:為什麼在Scrum中,估算story(需求)要採用story point這種沒有單位的「相對大小」估算方法,而估算task(工作)卻是用小時為單位?

這個問題Teddy在《如何估算 story point?》與《Story point 為何沒有單位:相對論篇》裡面有討論過。這幾天想到一個更容易理解的例子,在此介紹給鄉民參考看看。

估算相對距離

用所謂的「相對大小」來估算需求,有一個前提是假設人類對於估算相對數據比估算絕對數據來的擅長。舉個例子,請參考上面這張地圖,請問台北到上海的直線距離有幾公分?台北到東京的直線距離有幾公分?台北到青海的直線距離有幾公分?相信鄉民們很難答得出來。

現在換一個方式來問:假設我們把台北到上海的直線距離訂為1,請為台北到東京的直線距離應該訂為多少?台北到青海的直線距離應該訂為多少。

鄉民內心獨白:我哪知道啊?

現在大家來「推理一下」,從地圖上看起來,台北到東京的直線距離大概是台北到上海的3倍再多一點點,至於台北到青海的直線距離大概是台北到上海的4倍左右。這就是story point相對大小的概念:

  • 台北到上海:Story point 1
  • 台北到東京:Story point 3
  • 台北到青海:Story point 4

用小時來估算到達目的地所需時間

既然story的大小是用story point這種相對值來估算,那為什麼task的時間估算要採用小時哩?答案很簡單,舉剛剛估算距離的例子。台北到上海、台北到東京、台北到青海的相對距離,不管是誰來估,基本上估出來的相對數值不會相差太大。但是,等到真正要從台北出發,來到這三個地點的時候(真正實作某個story的時候),所採用的交通方式認領工作者個能力與合作模式)將會影響實際到達的時間。舉個例子,雖然台北到青海的距離是台北到上海的4倍,但是假設鄉民A搭飛機從台北到青海,花了6個小時,但是鄉民B搭船從台北到上海,也是花了6個小時。另外鄉民C更神勇,游泳從台北到東京,花了2個月挑眉質疑。所以,一個story的大小,並不必然與完成這個story所需的時間成正比,而是與完成這個story的人(更精確地來講,應該是完成這個story的團隊)有關。

Velocity

看到這邊鄉民們可能會想:如果story point只代表相對大小,而完成每個story所需時間最後又是用小時來估算(把這個story的所有task的時間加總,就是完成這個story所需的時間),那…要怎麼知道專案多久才可以做完啊?關於這個問題請參考《Scrum 是什麼(18):到底為什麼要估算Story Point哩?》與《我在第二次Certified ScrumMaster課程學到的事(4)》。

***

友藏內心獨白:距離的例子好像比割草要來的好耶。

沒有留言:

張貼留言