SlideShare a Scribd company logo
1 of 17
約耳趣談軟體Joel on Software chapter 1-6 導讀 2010/5/17 mclee
Who is Joel? 美國出生,念大學之前回以色列當傘兵 退伍後回美國念大學,耶魯大學CS學位 1991畢業後即進微軟開發Excel (VBA之父) 1995年離開微軟替另外兩家公司工作 2000年起創業 2 ©2010 Meng-chiu Lee
作者自己定義這本書 工程師 -> 管理階層 不喜歡/不熟悉/不知道如何管理軟體專案/團隊 包含技術以外的範圍 VP問:「為何不用Java取代Oracle,我聽說它比較一致」 新技術快速入手 (在2000年時) .NET,  Unicode 處理問題的竅門與哲學 邊開火邊移動 非常主觀 – 但均來自經驗 3 ©2010 Meng-chiu Lee
Part 1. 程式設計實務 由 blog 上零散的文章集結而成 Part 2 = 如何管理RD Part 3 = 其它主題 Part 4 = 微軟 .NET Part 6 = Q&A Part 1 包括了: 程式語言、演算法、QA、Charset & Unicode 如何寫規格 daily build, debug, prototyping, framework … 「實務」就是實際做的時候會碰到的鳥事一堆事 = 如何處理 Real World 中的軟體開發 4 ©2010 Meng-chiu Lee
導讀? 5 ©2010 Meng-chiu Lee
Ch 1. 選擇一種語言 程式語言 依用途選擇 語法 批評 .NET  (反對票: ch. 1 & 43  vs.  贊成票: ch. 44 & 45) 6 ©2010 Meng-chiu Lee
Ch 2. 回歸原點 油漆工的故事 (請讀 p.7 灰色方塊) char OP_empl[1000]; OP_empl[0] = ‘’; strcat (OP_empl, “Ivan “); strcat (OP_empl, “Phantom “); strcat (OP_empl, “John “); strcat (OP_empl, “John “); 記憶體配置 演算法 反對 Java 做為電腦科系新生的入門語言 7 ©2010 Meng-chiu Lee
Ch 3. 約耳測試 簡單的「12個步驟」讓程式更好 每一步只要回答 Yes/No,全部只要花 3 分鐘 全做好不保證產品大賣… 產品還是得有人要 :P 目標:建立穩定交出產品、交出穩定產品的紀律團隊 「約耳測試」的用法 給自己的組織評分 確保或幫助自己的開發團隊在最佳狀態工作…manager 可專心負責其它事 評估未來的團隊、想投資的公司 發布 4 年後讀者回饋… RD拒絕到分數太低的團隊裡工作 :o 做得太超過 – 例如微軟?! 8 ©2010 Meng-chiu Lee
12 Steps to Better Code 9 ©2010 Meng-chiu Lee
Ch 4. 絕對要會的 Unicode 和字元集知識 2003年撰寫 寫得又清楚又簡單的 Charset & Unicode 解說文章適合給新人、相關(非工程師)團隊成員閱讀 10 ©2010 Meng-chiu Lee
Ch 5. 無痛功能規格 1 of 4: 何必呢?   史快手和羅傑的故事 p. 46 ~ 47 負責自家新產品的向後相容(舊版也可以用) 第一個想法:讀舊版檔案,存成新版檔案 在 Word 裡改掉一段 vs. 改程式 (在 RD 的抗拒下) 11 ©2010 Meng-chiu Lee 11
為什麼要先寫規格? 上一頁說明了:省時間 有效溝通、節省 RD 之外的人的時間 (p. 48 ~ 49) QA 是照 RD 口頭的話 (在他被打斷很不耐煩時) 測試… 無意義的 online help / manual 因為寫文件的人不懂… 詳細規格才能事先訂出時程而且可以容易解決一些設計上的爭論 alert 的方式和用詞,討論完畢、標出來,RD放心做下去 RD 如果先做沒有爭議的項目,最後只會造成把最難的押到最後,造成失敗 不喜歡寫規格的原因 不喜歡/不會寫作文 沒看過什麼功能規格書 12 ©2010 Meng-chiu Lee
Ch 6. 無痛功能規格 2 of 4: 規格是什麼? 「功能規格」 vs. 「技術規格」 功能規格 (functional specifications)由使用者的角度描述產品如何運作 (不管怎麼做出來的) 技術規格 (technical specifications)程式內部實作: 資料結構、DB Schema、程式語言或工具、演算法 確認「使用者體驗」是最重要的 p. 54 ~ 61 一份範例 (WhatTimeIsIt.com) 很多笑點… 例:首頁的Shockwave動畫會發包給某家紐約蘇活區二樓的、貴得要死的工作室,動畫右下角必須在大於十秒後才會淡入浮現「Skip」但是非常非常難點到…  13 ©2010 Meng-chiu Lee
建議放在功能規格裡的項目 聲明:文件狀態說明:像介紹主講者出來前,給聽眾的背景說明 「一個」作者 :表示負責,如果規格很大就分段發給不同人 情境 – 真實世界裡的需求及人們使用這系統的方式 選好客戶族群 完全虛構又完全典型、用很典型的方式使用產品 狀況儘可能清楚又真實 (描述細節)  這樣設計出來才會很讚 不包含的項目 – 刪掉的功能、這版本不處理的事故意把它們曝露出來 概要 / 目錄 / 流程圖 / 架構 細節 錯誤時要怎麼做:非常重要,因為重視「使用者的體驗」…寫規格時會幫助我們幫助 user、設計更好的體驗 14 ©2010 Meng-chiu Lee
記得也放入規格的項目 還沒定義好的項目 特別標示以便於找出來修改 給特定角色看的註解 技術註解、測試註解 行銷註冊 規格必須是活的 大的 milestone 時,印出來、加上修訂標記,讓大家重新讀過但不用全部重讀 討論:規格變動怎麼辦?  討論:規格何時要凍結? (p. 65) 15 ©2010 Meng-chiu Lee
To be Continued … 16 ©2010 Meng-chiu Lee
原文連結 ©2010 Meng-chiu Lee 17 無痛功能規格 Painless Functional Specifications:  Part 1: Why Bother? http://www.joelonsoftware.com/articles/fog0000000036.html Part 2: What's a Spec? #35 Part 3: But... How? #34 Part 4: Tips #33 約耳測試 The Joel Test: 12 Steps to Better Code http://www.joelonsoftware.com/articles/fog0000000043.html 書中未收錄的中文翻譯文章 程式師的使用介面設計手冊 第 1 章 讓 錯的程式看得出錯2005年5月11日  無 痛錯誤追蹤2000年11月8日

More Related Content

Viewers also liked

فاطمة بيان سرمد العدل, The "Secret Treasure" Letter
فاطمة بيان سرمد العدل, The "Secret Treasure" Letterفاطمة بيان سرمد العدل, The "Secret Treasure" Letter
فاطمة بيان سرمد العدل, The "Secret Treasure" Letter
Bayan Waleed Shadaideh
 
Chris Thorngate evaluation
Chris Thorngate evaluationChris Thorngate evaluation
Chris Thorngate evaluation
guestd7608fd
 
Estudio Del Movimiento Por Jose Manuel Berrio
Estudio Del Movimiento Por Jose Manuel BerrioEstudio Del Movimiento Por Jose Manuel Berrio
Estudio Del Movimiento Por Jose Manuel Berrio
jombe403
 
生命的本質與策略 上傳版
生命的本質與策略  上傳版生命的本質與策略  上傳版
生命的本質與策略 上傳版
andreahc
 
Green Venue Zone
Green Venue ZoneGreen Venue Zone
Green Venue Zone
Carol Moxam
 
Element Design Final Presentation3
Element Design Final Presentation3Element Design Final Presentation3
Element Design Final Presentation3
guestdf2bf9
 
Final State Of Schools Presentation 081208
Final State Of Schools Presentation 081208Final State Of Schools Presentation 081208
Final State Of Schools Presentation 081208
biferguson
 
Certified Sales and Marketing Professional Program
Certified Sales and Marketing Professional ProgramCertified Sales and Marketing Professional Program
Certified Sales and Marketing Professional Program
Bayan Waleed Shadaideh
 

Viewers also liked (19)

Presentación Programa Superior de #ContactCenter
Presentación Programa Superior de #ContactCenterPresentación Programa Superior de #ContactCenter
Presentación Programa Superior de #ContactCenter
 
Verksamhetsberättelse 2010
Verksamhetsberättelse 2010Verksamhetsberättelse 2010
Verksamhetsberättelse 2010
 
فاطمة بيان سرمد العدل, The "Secret Treasure" Letter
فاطمة بيان سرمد العدل, The "Secret Treasure" Letterفاطمة بيان سرمد العدل, The "Secret Treasure" Letter
فاطمة بيان سرمد العدل, The "Secret Treasure" Letter
 
Chris Thorngate evaluation
Chris Thorngate evaluationChris Thorngate evaluation
Chris Thorngate evaluation
 
Openrules prez ipt2
Openrules prez ipt2Openrules prez ipt2
Openrules prez ipt2
 
Unenclosable
UnenclosableUnenclosable
Unenclosable
 
Estudio Del Movimiento Por Jose Manuel Berrio
Estudio Del Movimiento Por Jose Manuel BerrioEstudio Del Movimiento Por Jose Manuel Berrio
Estudio Del Movimiento Por Jose Manuel Berrio
 
Content Strategy
Content StrategyContent Strategy
Content Strategy
 
Sr sastav znachenie
Sr sastav znachenieSr sastav znachenie
Sr sastav znachenie
 
生命的本質與策略 上傳版
生命的本質與策略  上傳版生命的本質與策略  上傳版
生命的本質與策略 上傳版
 
Business Intelligence Meets Big Data Variety
Business Intelligence Meets Big Data VarietyBusiness Intelligence Meets Big Data Variety
Business Intelligence Meets Big Data Variety
 
Green Venue Zone
Green Venue ZoneGreen Venue Zone
Green Venue Zone
 
Zorgloket
ZorgloketZorgloket
Zorgloket
 
Proforma Branded Apps
Proforma Branded AppsProforma Branded Apps
Proforma Branded Apps
 
Element Design Final Presentation3
Element Design Final Presentation3Element Design Final Presentation3
Element Design Final Presentation3
 
Tema 1 dp resumen optimizado
Tema 1 dp resumen optimizadoTema 1 dp resumen optimizado
Tema 1 dp resumen optimizado
 
Защита данных и непрерывная доступность
Защита данных и непрерывная доступностьЗащита данных и непрерывная доступность
Защита данных и непрерывная доступность
 
Final State Of Schools Presentation 081208
Final State Of Schools Presentation 081208Final State Of Schools Presentation 081208
Final State Of Schools Presentation 081208
 
Certified Sales and Marketing Professional Program
Certified Sales and Marketing Professional ProgramCertified Sales and Marketing Professional Program
Certified Sales and Marketing Professional Program
 

Similar to Joel of Software 中文版 1~6章導讀

邏輯思考的技術
邏輯思考的技術邏輯思考的技術
邏輯思考的技術
Johnson Gmail
 
Ood启思录01
Ood启思录01Ood启思录01
Ood启思录01
yiditushe
 
腾讯大讲堂05 面向对象应对之道
腾讯大讲堂05 面向对象应对之道腾讯大讲堂05 面向对象应对之道
腾讯大讲堂05 面向对象应对之道
areyouok
 
00 簡報使用經驗分享 970625
00 簡報使用經驗分享 97062500 簡報使用經驗分享 970625
00 簡報使用經驗分享 970625
Jacky Tsai
 
《Linux运维趋势》2012年5月号 总第19期
《Linux运维趋势》2012年5月号 总第19期《Linux运维趋势》2012年5月号 总第19期
《Linux运维趋势》2012年5月号 总第19期
51CTO
 

Similar to Joel of Software 中文版 1~6章導讀 (20)

ML.NET 在遷移式學習的應用與挑戰
ML.NET 在遷移式學習的應用與挑戰ML.NET 在遷移式學習的應用與挑戰
ML.NET 在遷移式學習的應用與挑戰
 
邏輯思考的技術
邏輯思考的技術邏輯思考的技術
邏輯思考的技術
 
Ood启思录01
Ood启思录01Ood启思录01
Ood启思录01
 
F2E&RGBA Design - 如何導入設計師文化 - 171026
F2E&RGBA Design - 如何導入設計師文化 - 171026F2E&RGBA Design - 如何導入設計師文化 - 171026
F2E&RGBA Design - 如何導入設計師文化 - 171026
 
2013 10-05 由電子產品的演進來看產品開發
2013 10-05 由電子產品的演進來看產品開發2013 10-05 由電子產品的演進來看產品開發
2013 10-05 由電子產品的演進來看產品開發
 
用 C# 與 .NET 也能打造機器學習模型:你所不知道的 ML.NET 初體驗
用 C# 與 .NET 也能打造機器學習模型:你所不知道的 ML.NET 初體驗用 C# 與 .NET 也能打造機器學習模型:你所不知道的 ML.NET 初體驗
用 C# 與 .NET 也能打造機器學習模型:你所不知道的 ML.NET 初體驗
 
腾讯大讲堂05 面向对象应对之道
腾讯大讲堂05 面向对象应对之道腾讯大讲堂05 面向对象应对之道
腾讯大讲堂05 面向对象应对之道
 
腾讯大讲堂05 面向对象应对之道
腾讯大讲堂05 面向对象应对之道腾讯大讲堂05 面向对象应对之道
腾讯大讲堂05 面向对象应对之道
 
吳明展的履歷表 My Resume 2009 (pdf)
吳明展的履歷表 My Resume 2009 (pdf)吳明展的履歷表 My Resume 2009 (pdf)
吳明展的履歷表 My Resume 2009 (pdf)
 
2011 Taiwan UX Summit_Workshop A
2011 Taiwan UX Summit_Workshop A2011 Taiwan UX Summit_Workshop A
2011 Taiwan UX Summit_Workshop A
 
2012/05/23 AU Talk - 讓事情發生
2012/05/23 AU Talk - 讓事情發生2012/05/23 AU Talk - 讓事情發生
2012/05/23 AU Talk - 讓事情發生
 
團隊開發永遠的痛 談導入團隊開發的共同規範(Final)
團隊開發永遠的痛   談導入團隊開發的共同規範(Final)團隊開發永遠的痛   談導入團隊開發的共同規範(Final)
團隊開發永遠的痛 談導入團隊開發的共同規範(Final)
 
将bug尽可能扼杀在开发阶段
将bug尽可能扼杀在开发阶段将bug尽可能扼杀在开发阶段
将bug尽可能扼杀在开发阶段
 
Compact Framework 3.5 Mobile
Compact Framework 3.5 MobileCompact Framework 3.5 Mobile
Compact Framework 3.5 Mobile
 
Pair Programming (结对编程)
Pair Programming (结对编程)Pair Programming (结对编程)
Pair Programming (结对编程)
 
Trading bot演算法與軟工在程式交易上的實踐
Trading bot演算法與軟工在程式交易上的實踐Trading bot演算法與軟工在程式交易上的實踐
Trading bot演算法與軟工在程式交易上的實踐
 
00 簡報使用經驗分享 970625
00 簡報使用經驗分享 97062500 簡報使用經驗分享 970625
00 簡報使用經驗分享 970625
 
App design process part III
App design process part IIIApp design process part III
App design process part III
 
《Linux运维趋势》2012年5月号 总第19期
《Linux运维趋势》2012年5月号 总第19期《Linux运维趋势》2012年5月号 总第19期
《Linux运维趋势》2012年5月号 总第19期
 
程式交易面面觀
程式交易面面觀程式交易面面觀
程式交易面面觀
 

Joel of Software 中文版 1~6章導讀

  • 1. 約耳趣談軟體Joel on Software chapter 1-6 導讀 2010/5/17 mclee
  • 2. Who is Joel? 美國出生,念大學之前回以色列當傘兵 退伍後回美國念大學,耶魯大學CS學位 1991畢業後即進微軟開發Excel (VBA之父) 1995年離開微軟替另外兩家公司工作 2000年起創業 2 ©2010 Meng-chiu Lee
  • 3. 作者自己定義這本書 工程師 -> 管理階層 不喜歡/不熟悉/不知道如何管理軟體專案/團隊 包含技術以外的範圍 VP問:「為何不用Java取代Oracle,我聽說它比較一致」 新技術快速入手 (在2000年時) .NET, Unicode 處理問題的竅門與哲學 邊開火邊移動 非常主觀 – 但均來自經驗 3 ©2010 Meng-chiu Lee
  • 4. Part 1. 程式設計實務 由 blog 上零散的文章集結而成 Part 2 = 如何管理RD Part 3 = 其它主題 Part 4 = 微軟 .NET Part 6 = Q&A Part 1 包括了: 程式語言、演算法、QA、Charset & Unicode 如何寫規格 daily build, debug, prototyping, framework … 「實務」就是實際做的時候會碰到的鳥事一堆事 = 如何處理 Real World 中的軟體開發 4 ©2010 Meng-chiu Lee
  • 5. 導讀? 5 ©2010 Meng-chiu Lee
  • 6. Ch 1. 選擇一種語言 程式語言 依用途選擇 語法 批評 .NET (反對票: ch. 1 & 43 vs. 贊成票: ch. 44 & 45) 6 ©2010 Meng-chiu Lee
  • 7. Ch 2. 回歸原點 油漆工的故事 (請讀 p.7 灰色方塊) char OP_empl[1000]; OP_empl[0] = ‘’; strcat (OP_empl, “Ivan “); strcat (OP_empl, “Phantom “); strcat (OP_empl, “John “); strcat (OP_empl, “John “); 記憶體配置 演算法 反對 Java 做為電腦科系新生的入門語言 7 ©2010 Meng-chiu Lee
  • 8. Ch 3. 約耳測試 簡單的「12個步驟」讓程式更好 每一步只要回答 Yes/No,全部只要花 3 分鐘 全做好不保證產品大賣… 產品還是得有人要 :P 目標:建立穩定交出產品、交出穩定產品的紀律團隊 「約耳測試」的用法 給自己的組織評分 確保或幫助自己的開發團隊在最佳狀態工作…manager 可專心負責其它事 評估未來的團隊、想投資的公司 發布 4 年後讀者回饋… RD拒絕到分數太低的團隊裡工作 :o 做得太超過 – 例如微軟?! 8 ©2010 Meng-chiu Lee
  • 9. 12 Steps to Better Code 9 ©2010 Meng-chiu Lee
  • 10. Ch 4. 絕對要會的 Unicode 和字元集知識 2003年撰寫 寫得又清楚又簡單的 Charset & Unicode 解說文章適合給新人、相關(非工程師)團隊成員閱讀 10 ©2010 Meng-chiu Lee
  • 11. Ch 5. 無痛功能規格 1 of 4: 何必呢? 史快手和羅傑的故事 p. 46 ~ 47 負責自家新產品的向後相容(舊版也可以用) 第一個想法:讀舊版檔案,存成新版檔案 在 Word 裡改掉一段 vs. 改程式 (在 RD 的抗拒下) 11 ©2010 Meng-chiu Lee 11
  • 12. 為什麼要先寫規格? 上一頁說明了:省時間 有效溝通、節省 RD 之外的人的時間 (p. 48 ~ 49) QA 是照 RD 口頭的話 (在他被打斷很不耐煩時) 測試… 無意義的 online help / manual 因為寫文件的人不懂… 詳細規格才能事先訂出時程而且可以容易解決一些設計上的爭論 alert 的方式和用詞,討論完畢、標出來,RD放心做下去 RD 如果先做沒有爭議的項目,最後只會造成把最難的押到最後,造成失敗 不喜歡寫規格的原因 不喜歡/不會寫作文 沒看過什麼功能規格書 12 ©2010 Meng-chiu Lee
  • 13. Ch 6. 無痛功能規格 2 of 4: 規格是什麼? 「功能規格」 vs. 「技術規格」 功能規格 (functional specifications)由使用者的角度描述產品如何運作 (不管怎麼做出來的) 技術規格 (technical specifications)程式內部實作: 資料結構、DB Schema、程式語言或工具、演算法 確認「使用者體驗」是最重要的 p. 54 ~ 61 一份範例 (WhatTimeIsIt.com) 很多笑點… 例:首頁的Shockwave動畫會發包給某家紐約蘇活區二樓的、貴得要死的工作室,動畫右下角必須在大於十秒後才會淡入浮現「Skip」但是非常非常難點到… 13 ©2010 Meng-chiu Lee
  • 14. 建議放在功能規格裡的項目 聲明:文件狀態說明:像介紹主講者出來前,給聽眾的背景說明 「一個」作者 :表示負責,如果規格很大就分段發給不同人 情境 – 真實世界裡的需求及人們使用這系統的方式 選好客戶族群 完全虛構又完全典型、用很典型的方式使用產品 狀況儘可能清楚又真實 (描述細節)  這樣設計出來才會很讚 不包含的項目 – 刪掉的功能、這版本不處理的事故意把它們曝露出來 概要 / 目錄 / 流程圖 / 架構 細節 錯誤時要怎麼做:非常重要,因為重視「使用者的體驗」…寫規格時會幫助我們幫助 user、設計更好的體驗 14 ©2010 Meng-chiu Lee
  • 15. 記得也放入規格的項目 還沒定義好的項目 特別標示以便於找出來修改 給特定角色看的註解 技術註解、測試註解 行銷註冊 規格必須是活的 大的 milestone 時,印出來、加上修訂標記,讓大家重新讀過但不用全部重讀 討論:規格變動怎麼辦? 討論:規格何時要凍結? (p. 65) 15 ©2010 Meng-chiu Lee
  • 16. To be Continued … 16 ©2010 Meng-chiu Lee
  • 17. 原文連結 ©2010 Meng-chiu Lee 17 無痛功能規格 Painless Functional Specifications: Part 1: Why Bother? http://www.joelonsoftware.com/articles/fog0000000036.html Part 2: What's a Spec? #35 Part 3: But... How? #34 Part 4: Tips #33 約耳測試 The Joel Test: 12 Steps to Better Code http://www.joelonsoftware.com/articles/fog0000000043.html 書中未收錄的中文翻譯文章 程式師的使用介面設計手冊 第 1 章 讓 錯的程式看得出錯2005年5月11日 無 痛錯誤追蹤2000年11月8日