Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
The Clean Coder - 預估與壓力 (書摘)
Search
SJ Chou
December 24, 2013
Programming
180
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
The Clean Coder - 預估與壓力 (書摘)
SJ Chou
December 24, 2013
Transcript
13 slides
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
預估 (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:
[email protected]
Blog: http://blog.toright.com
More Decks by SJ Chou
See All by SJ Chou
LangChain Framework 與 RAG 實做教學
samejack
1
35
LLM RAG 擷取增強生成介紹 - 3 種 RAG/Self-RAG/CRAG 全解析
samejack
1
170
NVIDIA Omniverse Kit Introduction
samejack
1
130
用 Keras 玩 Machine Learning
samejack
1
210
2020 MLaaS 產業介紹
samejack
1
140
Linux Container Introduction
samejack
1
81
Cloud Foundry Introduction
samejack
1
140
WordPress Blog SEO 兩三事
samejack
1
130
小猴子也會的 Ubuntu Desktop 14.04 安裝教學
samejack
1
130
Other Decks in Programming
See All in Programming
エラーチャンネルのボールを拾い続けて鍛えるエンジニアの地力 / phpcon-niigata2026
meihei3
1
140
プロジェクトコードをキレイキレイしよう!暗黙的な参照を読み解く静的解析
ostk0069
0
210
コード生成時代のAPI定義を支えるRequest Spec移行
pvcresin
0
130
はじめてのPLATEAU
nokonoko1203
1
650
そのデザイントークン、Flutterでも同じ見た目になりますか?
nakamizu
0
350
Spec-driven Development with AI
simas
PRO
0
2.3k
Engineering Biometric UX Across Android Versions | DroidKnights 2026
ryunen344
1
210
AWS CDKを理解するために公式の定義を深掘って解説してみる / Understanding AWS CDK by Digging into Its Official Definition
akihisaikeda
3
310
SFCで実現する病院・医療システムの動的組み立て式UI
koukimiura
1
180
Modernizing iOS Apps
seyfoyun
0
150
Getting Started with Vibe Coding
miccheng
0
220
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
4
3.9k
Featured
See All Featured
First, design no harm
axbom
PRO
2
1.4k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
430
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.5k
Everyday Curiosity
cassininazir
0
400
Building an army of robots
kneath
307
47k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
520
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
660
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.2k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
610
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
340
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k