Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
The Clean Coder - 預估與壓力 (書摘)
Search
SJ Chou
December 24, 2013
Programming
0
150
The Clean Coder - 預估與壓力 (書摘)
SJ Chou
December 24, 2013
Tweet
Share
More Decks by SJ Chou
See All by SJ Chou
LLM RAG 擷取增強生成介紹 - 3 種 RAG/Self-RAG/CRAG 全解析
samejack
0
20
NVIDIA Omniverse Kit Introduction
samejack
0
20
用 Keras 玩 Machine Learning
samejack
0
140
2020 MLaaS 產業介紹
samejack
0
50
Linux Container Introduction
samejack
0
34
Cloud Foundry Introduction
samejack
0
49
WordPress Blog SEO 兩三事
samejack
0
70
小猴子也會的 Ubuntu Desktop 14.04 安裝教學
samejack
0
110
軟體品質與持續整合
samejack
1
93
Other Decks in Programming
See All in Programming
Amazon Bedrockマルチエージェントコラボレーションを諦めてLangGraphに入門してみた
akihisaikeda
1
180
DevNexus - Create AI Infused Java Apps with LangChain4j
kdubois
0
150
Datadog Workflow Automation で圧倒的価値提供
showwin
1
330
Go 1.24でジェネリックになった型エイリアスの紹介
syumai
2
320
CSS Linter による Baseline サポートの仕組み
ryo_manba
1
160
Goで作るChrome Extensions / Fukuoka.go #21
n3xem
0
170
kintone開発を効率化するためにチームで試した施策とその結果を大放出!
oguemon
0
390
はじめてのIssueOps - GitHub Actionsで実現するコメント駆動オペレーション
tmknom
5
1.5k
自力でTTSモデルを作った話
zgock999
0
130
技術を改善し続ける
gumioji
0
180
Generating OpenAPI schema from serializers throughout the Rails stack - Kyobashi.rb #5
envek
1
450
フロントエンドオブザーバビリティ on Google Cloud
yunosukey
0
110
Featured
See All Featured
Embracing the Ebb and Flow
colly
84
4.6k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.5k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
40
2k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.7k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
Designing on Purpose - Digital PM Summit 2013
jponch
117
7.1k
Building Adaptive Systems
keathley
40
2.4k
Fontdeck: Realign not Redesign
paulrobertlloyd
83
5.4k
A designer walks into a library…
pauljervisheath
205
24k
How STYLIGHT went responsive
nonsquared
99
5.4k
Scaling GitHub
holman
459
140k
Transcript
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