the clean coder - 預估與壓力 (書摘)

13
The Clean Coder 預估與壓力 (書摘) 2013/12/12 SJ http://www.amazon.com/The-Clean-Coder-Professional-Programmers/dp/0137081073 Email: [email protected] Blog: http://blog.toright.com

Upload: sj-chou

Post on 18-Jun-2015

790 views

Category:

Technology


2 download

TRANSCRIPT

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

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

2013/12/12 SJ

http://www.amazon.com/The-Clean-Coder-Professional-Programmers/dp/0137081073

Email: [email protected]: http://blog.toright.com

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

預估 (Estimate) 的定義

什麼是「預估」?

● 業務:是承諾!● 開發者:是猜測!● SJ:撈錢的籌碼,或是一場鬧劇的開幕典禮

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

該死的承諾與預估

承諾● 承諾不能兌現也是一種欺騙● 避免對「不確定」的事情進行承諾

預估● 沒有承諾色彩● 因為不知道要花多少時間,所以叫「預估」

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

該怎麼「預估」?

話說在前頭● 墨菲定律 - 凡是可能出錯的事就必定會出錯● 除非你已經做過這件事,否則皆無法有效預估時程

預估方法● PERT (計畫評審技術)● Delphi (德爾菲法)

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

PERT (Program Evaluation and Review Technique)

三元分析法O: 樂觀預估 (Optimistic Estimate)N: 常規預估 (Nominal Estimate)P: 悲觀預估 (Pessimistic Estimate)

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

機率分佈標準差σ = ( P - O ) / 6

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

數學時間

這三件任務的預估值:14 天, 17 天 (σ), 20 天 (2σ)

任務 樂觀預估 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

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

德爾菲法

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

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

討論與結論

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

德爾菲法● 耗時,不容易聚集一群專業人士

大數定理 (切分工作)● 問題:經驗不夠的我們,如何掌握開發範圍?

關於預估● 預估這項工作需要時間與經驗,有效的預估比隨便估好的多

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

殘酷的事實官:請幫我看一下做這個要多久?

Me:大約兩個月可以完成部分比較確定的功能 (回答的相當保守)

官:我們只有兩週,可否用簡單的方法搞定?

Me:...(OS:那你幹嘛還問我)

Me:好吧,那我們挑些重要的功能來做!

官:這些、這些、還有那些、順便做這個

Me:...(OS:這不就全部了嗎)

Me:太多了,我還要進行測試與整合,兩週內絕對無法完成!

官:那麼只做這些、這些、還有那些,這以前做過,直接拿來改應該很快!

Me:...

Me:...

官:如何?

官:不管品質,先求有再求好!

Me:我好像也不能說不好...

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

這故事的結果是...一場災難

● 開發期間,功能一再增加,品質持續下滑● 兩週後,想「求有」的功能,一項也沒出來● 兩個月後,一個充滿 Bug 且奇怪的系統誕生了● 兩年後,新的工程師加班罵髒話改 Code

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

避免壓力

● 最有效的方法就是「規避壓力」● 別輕易承諾

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

● 保持整潔○ 「快速但髒亂」是矛盾的說法

● 危機中的紀律○ 足夠的「信念」讓我們遵循紀律

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

應對壓力(逃不了,就面對它!)

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

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

The EndThanks

Email: [email protected]: http://blog.toright.com