Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
The Clean Coder - 預估與壓力 (書摘)
SJ Chou
December 24, 2013
Programming
0
130
The Clean Coder - 預估與壓力 (書摘)
SJ Chou
December 24, 2013
Tweet
Share
More Decks by SJ Chou
See All by SJ Chou
用 Keras 玩 Machine Learning
samejack
0
58
Linux Container Introduction
samejack
0
11
Cloud Foundry Introduction
samejack
0
33
WordPress Blog SEO 兩三事
samejack
0
35
小猴子也會的 Ubuntu Desktop 14.04 安裝教學
samejack
0
70
軟體品質與持續整合
samejack
1
61
Android_Day_2013_-_Mobile_Web_App_Design.pdf
samejack
0
64
REST to RESTful Web Service
samejack
2
170
Caching in HTTP
samejack
0
76
Other Decks in Programming
See All in Programming
このタイミングで知っておきたい 開発生産性の高いエンジニア組織の特徴とは / dev-sumi-20220721-productivity-features
findyinc
7
2.6k
一口目から美味しいReactのスルメ本🦑
taro28
1
380
プロダクトの成長とSREと
takuyatezuka
0
120
ZOZOTOWNにおけるDatadogの活用と、それを支える全社管理者の取り組み / 2022-07-27
tippy
1
3.3k
Rに管理されてみる
kazutan
0
260
Cloudflare WorkersでGoのHTTPサーバーを動かすライブラリを作った話
syumai
0
150
MLOps勉強会_20220810
strsaito
1
370
FutureCon 2022 FlutterアプリのPerformance測定
harukafujita
0
140
Amazon Lookout for Visionで 筆跡鑑定してみた
cmnakamurashogo
0
160
Better Angular Architectures: Architectures with Standalone Components @DWX2022
manfredsteyer
PRO
1
410
FullStack eXchange, July 2022
brucel
0
200
Records の使い方はこれでいいの? をみんなで考えたい / Java DO #20
gishi_yama
0
120
Featured
See All Featured
GitHub's CSS Performance
jonrohan
1020
420k
Happy Clients
brianwarren
89
5.6k
Build The Right Thing And Hit Your Dates
maggiecrowley
19
1.2k
How New CSS Is Changing Everything About Graphic Design on the Web
jensimmons
213
11k
Imperfection Machines: The Place of Print at Facebook
scottboms
253
12k
What's new in Ruby 2.0
geeforr
335
30k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
12
940
Build your cross-platform service in a week with App Engine
jlugia
219
17k
Reflections from 52 weeks, 52 projects
jeffersonlam
337
17k
Designing on Purpose - Digital PM Summit 2013
jponch
106
5.7k
Pencils Down: Stop Designing & Start Developing
hursman
113
9.8k
Streamline your AJAX requests with AmplifyJS and jQuery
dougneiner
127
8.5k
Transcript
The Clean Coder 預估與壓力 (書摘) 2013/12/12 SJ http://www.amazon.com/The-Clean-Coder-Professional-Programmers/dp/0137081073 Email: sj@toright.com
Blog: http://blog.toright.com
預估 (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
數學時間 這三件任務的預估值: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
德爾菲法 • 先定好規則(乘以二 / 平方) • 亮手指大家一起參與預估 • 討論偏離值發生的原因(取得共識) •
好處是避免別人的預估影響到自己的判斷
討論與結論 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