SlideShare a Scribd company logo
1 of 13
Download to read offline
The Clean Coder
預估與壓力 (書摘)
2013/12/12 SJ
Email: sj@toright.com
Blog: http://blog.toright.com
http://www.amazon.com/The-Clean-Coder-Professional-Programmers/dp/0137081073
預估 (Estimate) 的定義
什麼是「預估」?
● 業務:是承諾!
● 開發者:是猜測!
● SJ:撈錢的籌碼,或是一場鬧劇的開幕典禮
該死的承諾與預估
承諾
● 承諾不能兌現也是一種欺騙
● 避免對「不確定」的事情進行承諾

預估
● 沒有承諾色彩
● 因為不知道要花多少時間,所以叫「預估」
該怎麼「預估」?
話說在前頭
● 墨菲定律 - 凡是可能出錯的事就必定會出錯
● 除非你已經做過這件事,否則皆無法有效預估時程

預估方法
● PERT (計畫評審技術)
● Delphi (德爾菲法)
PERT (Program Evaluation and Review Technique)
三元分析法
O: 樂觀預估 (Optimistic Estimate)
N: 常規預估 (Nominal Estimate)
P: 悲觀預估 (Pessimistic Estimate)

期望值
μ = ( O + 4N + P) / 6

機率分佈標準差
σ=(P-O)/6
數學時間
任務

樂觀預估 O

常規預估 N

悲觀預估 P

期望值 μ

標準差 σ

Alpha

1

3

12

4.2

1.8

Beta

1

1.5

14

3.5

2.2

Gamma

3

6.25

11

6.5

1.3

這三件任務的預估值:14 天, 17 天 (σ), 20 天 (2σ)
德爾菲法
●
●
●
●

先定好規則(乘以二 / 平方)
亮手指大家一起參與預估
討論偏離值發生的原因(取得共識)
好處是避免別人的預估影響到自己的判斷
討論與結論
PERT 法
●

科學量化,但有工具輔助會更好

德爾菲法
●

耗時,不容易聚集一群專業人士

大數定理 (切分工作)
●

問題:經驗不夠的我們,如何掌握開發範圍?

關於預估
●

預估這項工作需要時間與經驗,有效的預估比隨便估好的多
殘酷的事實
官:請幫我看一下做這個要多久?
Me:大約兩個月可以完成部分比較確定的功能 (回答的相當保守)
官:我們只有兩週,可否用簡單的方法搞定?
Me:...(OS:那你幹嘛還問我)
Me:好吧,那我們挑些重要的功能來做!
官:這些、這些、還有那些、順便做這個
Me:...(OS:這不就全部了嗎)
Me:太多了,我還要進行測試與整合,兩週內絕對無法完成!
官:那麼只做這些、這些、還有那些,這以前做過,直接拿來改應該很快!
Me:...
Me:...
官:如何?
官:不管品質,先求有再求好!
Me:我好像也不能說不好...
這故事的結果是...一場災難
●
●
●
●

開發期間,功能一再增加,品質持續下滑
兩週後,想「求有」的功能,一項也沒出來
兩個月後,一個充滿 Bug 且奇怪的系統誕生了
兩年後,新的工程師加班罵髒話改 Code
避免壓力
● 最有效的方法就是「規避壓力」
● 別輕易承諾
○
○

避免對沒有把握的事情進行承諾
主動幫助業務找到方法兌現承諾,但絕不能接受承諾

● 保持整潔
○

「快速但髒亂」是矛盾的說法

● 危機中的紀律
○

足夠的「信念」讓我們遵循紀律
應對壓力(逃不了,就面對它!)
●
●
●
●

不要驚慌失措
溝通
依靠你的紀律原則
尋求幫助
The End
Thanks

Email: sj@toright.com
Blog: http://blog.toright.com

More Related Content

Viewers also liked

從五個小故事看敏捷開發精神
從五個小故事看敏捷開發精神從五個小故事看敏捷開發精神
從五個小故事看敏捷開發精神
teddysoft
 

Viewers also liked (7)

從五個小故事看敏捷開發精神
從五個小故事看敏捷開發精神從五個小故事看敏捷開發精神
從五個小故事看敏捷開發精神
 
[演講] Scrum導入經驗分享
[演講] Scrum導入經驗分享[演講] Scrum導入經驗分享
[演講] Scrum導入經驗分享
 
敏捷軟體開發方法與 Scrum 簡介
敏捷軟體開發方法與 Scrum 簡介敏捷軟體開發方法與 Scrum 簡介
敏捷軟體開發方法與 Scrum 簡介
 
MOPCON 2015 - 軟體、測試、程式設計家
MOPCON 2015 - 軟體、測試、程式設計家MOPCON 2015 - 軟體、測試、程式設計家
MOPCON 2015 - 軟體、測試、程式設計家
 
REST to RESTful Web Service
REST to RESTful Web ServiceREST to RESTful Web Service
REST to RESTful Web Service
 
Adobe Digital Insights: Mobile Landscape A Moving Target
Adobe Digital Insights: Mobile Landscape A Moving TargetAdobe Digital Insights: Mobile Landscape A Moving Target
Adobe Digital Insights: Mobile Landscape A Moving Target
 
Digital Advertising Report 2017
Digital Advertising Report 2017Digital Advertising Report 2017
Digital Advertising Report 2017
 

More from 家弘 周 (7)

2020 MLaaS 產業介紹.pdf
2020 MLaaS 產業介紹.pdf2020 MLaaS 產業介紹.pdf
2020 MLaaS 產業介紹.pdf
 
用 Keras 玩 Machine Learning
用 Keras 玩 Machine Learning用 Keras 玩 Machine Learning
用 Keras 玩 Machine Learning
 
Linux Container Introduction
Linux Container IntroductionLinux Container Introduction
Linux Container Introduction
 
Cloud Foundry Introduction
Cloud Foundry IntroductionCloud Foundry Introduction
Cloud Foundry Introduction
 
區塊鏈共識機制與 EOS
區塊鏈共識機制與 EOS區塊鏈共識機制與 EOS
區塊鏈共識機制與 EOS
 
簡單線性回歸 & K-Means (Machine learning)
簡單線性回歸 & K-Means (Machine learning)簡單線性回歸 & K-Means (Machine learning)
簡單線性回歸 & K-Means (Machine learning)
 
WordPress Blog SEO 兩三事
WordPress Blog SEO 兩三事WordPress Blog SEO 兩三事
WordPress Blog SEO 兩三事
 

The Clean Coder - 預估與壓力 (書摘)