14. 先講結論
Let’s work backwards
• 要估就估,不估就不估
Estimate them if you want. Don’t Estimate if you don’t want.
• 持續完成價值最⾼高的事情
Always work on the most valuable things.
• 在各層級調整要做的事情的多寡/ ⼤大⼩小
Do scope management at all levels
15. ⼤大綱
outline
1. 為什什麼估計?
why do we need estimate?
2. 什什麼是估計?
What is “estimate”?
3. 敏捷團隊做估計的原則
How to estimate like an agile team?
4. 可是...?
But…?
5. Terry,你腳踏實地⼀一點
Terry, could you come back to earth?
6. 結論
Conclusion
16. 1. 為什什麼估計?
why do we need estimate?
2. 什什麼是估計?
What is “estimate”?
3. 敏捷團隊做估計的原則
How to estimate like an agile team?
4. 可是...?
But…?
5. Terry,你腳踏實地⼀一點
Terry, could you come back to earth?
6. 結論
Conclusion
⼤大綱
outline
23. 因為 ROI,所以公司需要做出決定
The business need to make a decision base on ROI (Return on Investment)
因為 ROI,公司需要知道什什麼時候可以得到什什麼成果
The business need to know what they will get, and when.
因為 ROI,公司不知道要做多久,所以請教專家(也就是你)
The business just don’t know, so they consult you, the experts.
schedule by krishna from the Noun Project
$
?
26. 越晚估計越準
The later you estimate,
the more accurate it could be.
0.2
4.0
2.0
Relativecostrange
1.0
1.5
1.2
0.5
0.6
0.8
Feasibility Concept of
Operation
Requirements
spec
Product Design
spec
Accepted
software
Detail Design
spec
Ref: Todd Little, Landmark Graphics, “Schedule Estimation and Uncertainty Surrounding the Cone of Uncertainty.” IEEE Software May/June 2006
27. ⼤大綱
outline
1. 為什什麼估計?
why do we need estimate?
2. 什什麼是估計?
What is “estimate”?
3. 敏捷團隊做估計的原則
How to estimate like an agile team?
4. 可是...?
But…?
5. Terry,你腳踏實地⼀一點
Terry, could you come back to earth?
6. 結論
Conclusion
36. Man by fahmionline from the Noun Project
Woman by Evgeni Moryakov from the Noun Project
老婆啊,我現在在 agile summit,講
咕唧咕唧
My love, I am now sharing “estimate” at agile summit.
37. Man by fahmionline from the Noun Project
Woman by Evgeni Moryakov from the Noun Project
恩,幾點回來來?
OK. When will you come back?
老婆啊,我現在在 agile summit,講
咕唧咕唧
My love, I am now sharing “estimate” at agile summit.
38. Man by fahmionline from the Noun Project
Woman by Evgeni Moryakov from the Noun Project
恩,幾點回來來?
OK. When will you come back?
老婆啊,我現在在 agile summit,講
咕唧咕唧
My love, I am now sharing “estimate” at agile summit.
議程五點結束,順利利的話...
回家⼤大概要⼀一個⼩小時吧。
The conference concludes at 17:00.
It takes about an hour, depending on the traffic.
39. Man by fahmionline from the Noun Project
Woman by Evgeni Moryakov from the Noun Project
恩,幾點回來來?
OK. When will you come back?
恩,我有煮飯,六點開飯
OK, Dinner is at six.
老婆啊,我現在在 agile summit,講
咕唧咕唧
My love, I am now sharing “estimate” at agile summit.
議程五點結束,順利利的話...
回家⼤大概要⼀一個⼩小時吧。
The conference concludes at 17:00.
It takes about an hour, depending on the traffic.
40. Man by fahmionline from the Noun Project
Woman by Evgeni Moryakov from the Noun Project
恩,幾點回來來?
OK. When will you come back?
你如果六點沒有準時到家,飯菜
涼了了,你就死定了了
Be on time. Or be dead.
老婆啊,我現在在 agile summit,講
咕唧咕唧
My love, I am now sharing “estimate” at agile summit.
恩,我有煮飯,六點開飯
OK, Dinner is at six.
議程五點結束,順利利的話...
回家⼤大概要⼀一個⼩小時吧。
The conference concludes at 17:00.
It takes about an hour, depending on the traffic.
41. Man by fahmionline from the Noun Project
Woman by Evgeni Moryakov from the Noun Project
恩,幾點回來來?
OK. When will you come back?
你如果六點沒有準時到家,飯菜
涼了了,你就死定了了
Be on time. Or be dead.
……
老婆啊,我現在在 agile summit,講
咕唧咕唧
My love, I am now sharing “estimate” at agile summit.
恩,我有煮飯,六點開飯
OK, Dinner is at six.
議程五點結束,順利利的話...
回家⼤大概要⼀一個⼩小時吧。
The conference concludes at 17:00.
It takes about an hour, depending on the traffic.
47. 1. 為什什麼估計?
why do we need estimate?
2. 什什麼是估計?
What is “estimate”?
3. 敏捷團隊做估計的原則
How to estimate like an agile team?
4. 可是...?
But…?
5. Terry,你腳踏實地⼀一點
Terry, could you come back to earth?
6. 結論
Conclusion
⼤大綱
outline
48. ⽤用相對的⽅方法做估計
Estimate the items by comparing them.
⼩小的比⼤大的好估計
Smaller items are easier to estimate than the bigger ones.
由開發團隊做估計
Development team estimates. Not PO, nor tech leaders.
team by Gan Khoon Lay from the Noun Project
Rubik's Cube by my name is mud from the Noun Project
Scale by Dinosoft Labs from the Noun Project
不⽤用⼈人天做單位
No “Man-Day”
⼈人天
Man-DayX
49. 怎麼把事情切⼩小?
How to divide things into small chunks?
• ⽤用 end-to-end 的 user story 為單位
Use end-to-end user stories
• ⼩小的 end-to-end 的 user story 才能讓開發團隊⼀一起估計
Small, end-to-end user stories are estimable by the dev team.
• ⼩小的 end-to-end 的 user story 才能⽤用相對的⽅方式做比較
Estimate by Comparing between small, end-to-end stories.
• ⽤用什什麼單位估計?點數、⼈人天?
In what unit? Points or man-day?
52. • 點數:0, 1, 2, 3, 5, 8, 13, 20, 40, 100, ?, 無限⼤大, 咖啡
Points: 0, 1, 2, 3, 5, 8, 13, 20, 40, 100, ?, infinity, coffee
• T shirt size:XS, S, M, L, XL
剛剛⼀一開始我們好像玩過了了?
• 藉由出牌,增加溝通與互相之間的理理解
Increase the communications and the shared understandings during the process.
Planning Poker
… 就 planning poker 啊...
53. 其他估計單位
Other units
• ⽔水果:葡萄、棗⼦子、蘋果、⽊木瓜、⻄西瓜
Fruit: grape, jujube, apple, papaya, watermelon
• 狗點:吉娃娃、臘腸狗、⻄西施狗、牧⽺羊⽝犬、黃⾦金金獵⽝犬、⼤大丹丹
Dog point: Chihuahua, dooooooog, Cisco Shih Tzu dog, Shepherd dog, Golden Retriever, Great Dane
• 三元估計法: Small/ Uncertain/ Large
• 不論哪種單位,都可以有機會得到 Velocity
We can have some kind of velocity whatever unit is used.
55. PO 啊,現在進度怎樣?
PO, how are we doing?
報告老闆,我們上個 Sprint 做了了兩兩個葡萄、
⼀一個⽊木瓜
Sir, we made two grapes and one papaya last sprint.
56. PO 啊,現在進度怎樣?
PO, how are we doing?
報告老闆,我們上個 Sprint 做了了兩兩個葡萄、
⼀一個⽊木瓜
Sir, we made two grapes and one papaya last sprint.
蛤?你說什什麼?
What?
57. PO 啊,現在進度怎樣?
PO, how are we doing?
報告老闆,我們上個 Sprint 做了了兩兩個葡萄、
⼀一個⽊木瓜
Sir, we made two grapes and one papaya last sprint.
蛤?你說什什麼?
What?
就兩兩個葡萄、⼀一個⽊木瓜啊。
這個 Sprint 正在做⼀一個葡萄、三個蘋果
I said, 2 grapes and 1 papaya. And we are working on a grape
and three apples this sprint.
58. PO 啊,現在進度怎樣?
PO, how are we doing?
報告老闆,我們上個 Sprint 做了了兩兩個葡萄、
⼀一個⽊木瓜
Sir, we made two grapes and one papaya last sprint.
蛤?你說什什麼?
What?
就兩兩個葡萄、⼀一個⽊木瓜啊。
這個 Sprint 正在做⼀一個葡萄、三個蘋果
I said, 2 grapes and 1 papaya. And we are working on a grape
and three apples this sprint.
給我滾出我的公司
Get the fxxk outta here!
59. PO 啊,現在進度怎樣?
PO, how are we doing?
報告老闆,我們上個 Sprint 做了了兩兩個葡萄、
⼀一個⽊木瓜
Sir, we made two grapes and one papaya last sprint.
蛤?你說什什麼?
What?
就兩兩個葡萄、⼀一個⽊木瓜啊。
這個 Sprint 正在做⼀一個葡萄、三個蘋果
I said, 2 grapes and 1 papaya. And we are working on a grape
and three apples this sprint.
給我滾出我的公司
Get the fxxk outta here!
別這樣啦...
Come on…
60. PO 啊,現在進度怎樣?
PO, how are we doing?
報告老闆,我們上個 Sprint 做了了兩兩個葡萄、
⼀一個⽊木瓜
Sir, we made two grapes and one papaya last sprint.
蛤?你說什什麼?
What?
就兩兩個葡萄、⼀一個⽊木瓜啊。
這個 Sprint 正在做⼀一個葡萄、三個蘋果
I said, 2 grapes and 1 papaya. And we are working on a grape
and three apples this sprint.
給我滾出我的公司
Get the fxxk outta here!
別這樣啦...
Come on…
如果我說我們在做⼀一隻吉娃娃、三隻臘腸狗
會不會比較好懂?
Is it better if I tell you we are working on 1 Chihuahua and 3
doooooooooogs?
67. PO 啊,現在進度怎樣?
PO, how are we doing?
報告老闆,在七⽉月初的 deadline 前我們還
有 3 個 sprint
Sir, we have 3 sprints before deadline.
68. PO 啊,現在進度怎樣?
PO, how are we doing?
報告老闆,在七⽉月初的 deadline 前我們還
有 3 個 sprint
Sir, we have 3 sprints before deadline.
我打算先排折價卷跟會員管理理兩兩個 feature,
六⽉月中應該沒問題,做完會先上線
I am confident to deliver the first two features within a month.
69. PO 啊,現在進度怎樣?
PO, how are we doing?
報告老闆,在七⽉月初的 deadline 前我們還
有 3 個 sprint
Sir, we have 3 sprints before deadline.
我打算先排折價卷跟會員管理理兩兩個 feature,
六⽉月中應該沒問題,做完會先上線
I am confident to deliver the first two features within a month.
⼆二階 SKU 比較複雜、⼯工比較多,七⽉月初我們
可能先進 phase 1,等 phase 2 做完就⼀一起
release
The third feature will take a bit longer, so I plan to deliver
phase 1 of that feature before deadline.
70. PO 啊,現在進度怎樣?
PO, how are we doing?
報告老闆,在七⽉月初的 deadline 前我們還
有 3 個 sprint
Sir, we have 3 sprints before deadline.
不⾏行行。想辦法⼀一起上。
No. You cannot. Figure out how to deliver
them altogether.
⼆二階 SKU 比較複雜、⼯工比較多,七⽉月初我們
可能先進 phase 1,等 phase 2 做完就⼀一起
release
The third feature will take a bit longer, so I plan to deliver
phase 1 of that feature before deadline.
我打算先排折價卷跟會員管理理兩兩個 feature,
六⽉月中應該沒問題,做完會先上線
I am confident to deliver the first two features within a month.
73. 在各層調整 scope
scope management at all levels
• Epic:這個客⼾戶⼀一定要接嗎?這個 feature ⼀一定要現在做嗎?
Epic: Do we have enough resources for this customer? Do we have to implement this feature now?
• Story:這些 Story 是為了了完成什什麼⽬目標?少做點能不能⼀一樣完成那個
⽬目標?在先把功能完成的前提下,畫⾯面可以醜⼀一點嗎?
Story: Can we achieve the same goal with less stories? Can we focus on the functionalities first, and UI later?
• Task:先把某些值寫死,以後再回來來開放給⼤大家輸入可以嗎?⼀一定要
開影片嗎?圖片可不可以?
Can we just put default value here and change it later? Can we use the image first, and video later?
74. 在各層調整 scope
scope management at all levels
• Epic:這個客⼾戶⼀一定要接嗎?這個 feature ⼀一定要現在做嗎?
Epic: Do we have enough resources for this customer? Do we have to implement this feature now?
• Story:這些 Story 是為了了完成什什麼⽬目標?少做點能不能⼀一樣完成那個
⽬目標?在先把功能完成的前提下,畫⾯面可以醜⼀一點嗎?
Story: Can we achieve the same goal with less stories? Can we focus on the functionalities first, and UI later?
• Task:先把某些值寫死,以後再回來來開放給⼤大家輸入可以嗎?⼀一定要
開影片嗎?圖片可不可以?
Can we just put default value here and change it later? Can we use the image first, and video later?
在各層次做
Scope management
才是重點
Key: Scope management at all levels.
78. 1. 為什什麼估計?
why do we need estimate?
2. 什什麼是估計?
What is “estimate”?
3. 敏捷團隊做估計的原則
How to estimate like an agile team?
4. 可是...?
But…?
5. Terry,你腳踏實地⼀一點
Terry, could you com back to earth?
6. 結論
Conclusion
⼤大綱
outline
83. Product backlog
…etc
• 產品待辦清單前⾯面那堆,應該被精煉的很
不錯了了,反正你下個 sprint ⼤大概都⼀一定要
做了了,幹嘛估計?
The first bunch of PBIs are supposed to be refined well. And you are
probably going to implement those anyway. Why bother estimating?
為什什麼不估計?
Why not estimate?
86. Product backlog
…etc
怎麼開始不估計?
Steps towards #NoEstimates
1. 拆 task,但不估 Task
Stop Estimating Tasks
2. 把⼀一個 Story 在數天內完成
Limit the calendar duration of stories.
3. 把 Planning poker 的選項變少
Remove some planning poker card options
4. 持續的追蹤、紀錄每個 Story 的時間
Build histograms. Keep track of your average duration of stories.
5. ⽤用平均的 cycle time 做預測
Forecast by the average cycle time for Stories.
Product backlog
87. 我們來來估計 Product Backlog 前⾯面這
些就好...
Let’s estimate the PBIs in the front.
Product backlog
…etc
104. 當下最有價值
的 feature 是什什麼?
Identify the most valuable feature at the moment.
把它給做了了
Just do it.
蒐集反饋與 data
Collect feedbacks and data
105. 當下最有價值
的 feature 是什什麼?
Identify the most valuable feature at the moment.
把它給做了了
Just do it.
蒐集反饋與 data
Collect feedbacks and data
下⼀一個迭代開始
Iterate
106. 當下最有價值
的 feature 是什什麼?
Identify the most valuable feature at the moment.
把它給做了了
Just do it.
蒐集反饋與 data
Collect feedbacks and data
下⼀一個迭代開始
Iterate
直接就做了了
還估計個屁
Just do it.
You are going to do it anyway.
Why bother estimating?
107. 1. 為什什麼估計?
why do we need estimate?
2. 什什麼是估計?
What is “estimate”?
3. 敏捷團隊做估計的原則
How to estimate like an agile team?
4. 可是...?
But…?
5. Terry,你腳踏實地⼀一點
Terry, could you come back to earth?
6. 結論
Conclusion
⼤大綱
outline
114. 你有很多⼯工具
There are tools to help you.
幫助你不⽤用做估計
To help you not to estimate
還可以給老闆⼀一個交代
while having a projection on the delivery.
這些⼯工具你⽤用了了嗎?
Did you use any of them?
116. PERT 法
Program Evaluation and Review Technique
• 對⼀一個事情給三個預估值,O: 極樂觀的, P: 極悲觀的, N: ⼀一般的
Give 3 estimate values for the thing you are estimating. Optimistic, Pessimistic, Nominal.
• 求平均值與標準差:
avg = (O + 4N + P) / 6
std_dev = (P - O) / 6
• 這件事可能會在 avg 完成,也可能會 avg + std_dev 才完成
This can be completed from avg to avg + std_dev
117. • 對每件事情給三個預估值,O: 極樂觀的, P: 極悲觀的, N: ⼀一般的,並算出
各⾃自的平均值與標準差
Give 3 estimate values for the thing you are estimating. Optimistic, Pessimistic, Nominal. And calculate each avg and std_dev.
• 求全部的平均值與全部的標準差:
avg_total = sum(avg1, avg2, avg3, …avgN)
std_dev_total = Geometric_mean (std_dev1, …std_devN)
• 這件事可能會在 avg_total 完成,也可能會 avg_total + std_dev_total 才完
成
This can be completed from avg_total to avg_total + std_dev_total
PERT 法
Program Evaluation and Review Technique
118.
119. 注意不確定錐
Mind the Cone of Uncertainty.
0.2
4.0
2.0
Relativecostrange
1.0
1.5
1.2
0.5
0.6
0.8
Feasibility Concept of
Operation
Requirements
spec
Product Design
spec
Detail Design
spec
Ref: Todd Little, Landmark Graphics, “Schedule Estimation and Uncertainty Surrounding the Cone of Uncertainty.” IEEE Software May/June 2006
Accepted
software
120. 1. 為什什麼估計?
why do we need estimate?
2. 什什麼是估計?
What is “estimate”?
3. 敏捷團隊做估計的原則
How to estimate like an agile team?
4. 可是...?
But…?
5. Terry,你腳踏實地⼀一點
Terry, could you com back to earth?
6. 結論
Conclusion
⼤大綱
outline
126. Terry,假如你的團隊在這次 refinement 看到
了了上次估過的 Story
你會要他們再估⼀一次嗎?
Terry, in this refinement meeting, your team sees a story with an estimate value. Will you ask the team to update the value?