Joel on Software 中文版 Ch13-18

2,032 views

Published on

Joel on Software 中文版 Ch13-18

Published in: Education, Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,032
On SlideShare
0
From Embeds
0
Number of Embeds
19
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Joel on Software 中文版 Ch13-18

  1. 1. 約耳趣談軟體Joel on Software<br />Chapter 13-18<br />2010/5/17 Honesty Huang<br />
  2. 2. Ch 13. 紙上原型製作<br />花整個夏天做Excel某拖拉功能的可用性測試原型結果:花一星期就實作完成完整功能<br />用 Asymetrix Toolbook 花一年替使用介面製作原型結果:廢棄<br />很荒謬,原型的唯一意義就是要「節省時間」<br />基本上已經放棄軟體原型,不如直接做產品<br /><ul><li>更好的點子:紙上原型 (Ex: Hanmail Paper Prototype )</li></ul>一張紙,用鉛筆畫出使用介面原型,越潦草越好<br />畫好之後給幾個人看,詢問他們會如何完成某件事<br />因為沒花多少精力,不會怕傷感情而手下留情<br />準備好橡皮擦,修改快速,馬上繼續測試<br />2<br />©2010 Honesty Huang<br />
  3. 3. Ch 13. 紙上原型製作 (討論)<br />Prototyping 的用意?<br />及早確認認知問題,越早發現、越節省成本<br />…… ?<br />Prototyping 有沒有哪些準則?<br />在 Growing Software 裡甚至提更多其他準則:<br />快速<br />丟棄、不重用<br />…… ?<br />Prototyping 善用工具? (以前做 prototyping 工具可能不夠好)<br />Balsamiq Mockups<br />AxureRP<br />Wireframe, Mockup, Prototype (投影片)<br />3<br />©2010 Honesty Huang <br />
  4. 4. Ch 14. 別讓架構太空人嚇到你 <br />偉大的思想家思考問題時會看出模式:<br />傳送檔案、Browser 傳送 Request 、Method 傳遞 Message<br />全都可以抽象成訊息傳送 (Messaing)嘛~<br />架構太空人 (Architecture Astronauts) (活在外太空一直想到架構)<br />有時候,這些聰明的思想家就是停不下來!<br />不斷創造出一堆荒唐又無所不包的高層次宇宙景象<br />這些東西什麼都好,就是完全沒有實際意義!<br />Ex: Napster- 用於音樂下載的點對點服務<br />架構太空人:執著點對點,建造自以為更廣泛的點對點運用<br />實際上:只要能輸入歌名就能聽歌,就一堆人搶著用!<br />圍繞在那些架構的驚人超級宣傳 (Ex: .NET, HailStorm, Jini, Java)<br />誇大言詞、完全缺乏真實感,但大家就是吃這套!<br />4<br />©2010 Honesty Huang<br />
  5. 5. Ch 14. 別讓架構太空人嚇到你 (討論)<br />沈浸於自以為的技術,忽略了使用者需求的本質<br />印象中還有哪些「架構太空人」?<br />CORBA ? SOAP ?<br />Cloud Computing ? XD<br />…… ?<br />一切不過就是Data?! 上層只是提供不同思維方式Data 的存放 (Disk, Memory)、處理 (Algo)、傳送 (Messaging)<br />宣傳用語的意義?<br />重新定義市場?<br />就是會有篇幅?<br />媒體、客戶就是吃這套? XD<br />…… ?<br />5<br />©2010 Honesty Huang<br />
  6. 6. Ch 15. 邊開火邊移動 (1)<br />進入 Flow 的狀態<br />微軟暑期實習時:<br />只有 12 ~ 17 在工作,扣掉午餐時間大約只有兩三小時<br />但團隊還是相當開心,因為工作表現還是比平均好很多<br />職業生涯產能最強大的時候:搬進一間豪華的新辦公室<br />大幅如畫的窗景、窗外是石頭庭院、還能看到櫻花盛開<br />那幾個月不停地工作,打造出 Excel Basic 細部規格的基本規範<br />Peopleware和 eXtreme Programming 都堅持不加班因為他們有把握這樣做並不會降低團隊的產出<br />生產力的關鍵:開始就對了!<br />靜者恆靜,不過一旦全速滾動,要繼續就毫不費力<br />Pair Programming 其實也等於強迫彼此開始工作<br />6<br />©2010 Honesty Huang<br />
  7. 7. Ch 15. 邊開火邊移動 (2)<br />以色列傘兵的戰略小講座:邊開火邊移動<br />步兵戰鬥時只有一個戰略:一邊射擊一邊向敵人移動<br />對敵人開火會讓對方繼續低著頭,因此就無法對你射擊<br />移動會讓你攻佔領土並且更靠近敵人,就更容易命中<br />應用到寫程式: (應該是在已經毫無產能的前提下)<br />不論寫的程式再差、問題再多、或是完全沒人要都無妨<br />只要每天前進一點點,只要持續寫程式並修正問題<br />時間就會站到你這邊<br />應用到產品策略:<br />對手向你開火可能只是想讓你窮於應付彈幕、無法前進(暗指:其實對手也未必有啥強大秘密武器)<br />大企業的業務團隊都很懂得掩護射擊競爭對手只能疲於追趕規格,根本毫無力量與眾不同了<br />7<br />©2010 Honesty Huang<br />
  8. 8. Ch 15. 邊開火邊移動 (討論)<br />生產力瓶頸? 如何扭轉的經驗? 如何進入 Flow ?<br />如何保持前進、先發制人?<br />不要等敵方開火?對客戶洗腦,先洗先贏?<br />創造新 Buzzword? 重新定義其實一樣的市場?<br />…… ?<br /> 如何反制? 如何扭轉惡性循環?<br />先丟手榴彈?<br />敢死隊犧牲品? 先來個玉石俱焚?<br />…… ?<br />反向思考:<br />只是引誘敵人前進? 已埋好陷阱,就等著敵人向前衝吧~<br />Board Game: Burn Rate,業務弱就可以陷害爛案子 XD<br />8<br />©2010 Honesty Huang<br />
  9. 9. Ch 16. 工匠技藝 <br />軟體製作是一種…<br />生產線量產製造過程? 工匠技藝?<br />設計:價值比成本增加得快的模糊區域<br />工匠技藝例子:檔案匯入程式 - 將檔案複製到資料庫<br />小檔案完全沒問題,速度快連進度列也不用考慮<br />120 MB 的檔案就開始會停頓一分鐘,畫面完全沒反應<br />要解的話,就要 10 倍的 code,複雜度也可能隨之上升<br />(趁機扯了 multi-thread 和 multi-process …XD)<br />談談「工匠技藝」 (Craftsmanship)<br />最後 1% 程式用掉 90% 時間<br />修正一個 1% 的問題可能會用掉 500% 的功夫<br />會投入更多時間處理罕見狀況,不只讓程式會動而已<br />當然是昂貴的,但對套裝軟體公司或許是長期優勢<br />9<br />©2010 Honesty Huang<br />
  10. 10. Ch 16. 工匠技藝 (討論)<br />軟體製作是一種… ?<br />能動就好? 完美無瑕? Trade-Off ? 其他作法?<br />Time-to-Market ?<br />強大到又快又好?<br />列為 limitation ?<br />…… ?<br />如何及早發現、及早設計,而不用重新修正改寫?<br />10<br />©2010 Honesty Huang<br />
  11. 11. Ch 17. 電腦科學中三個錯誤的想法<br />搜尋的困難之處在於是否能找到足夠的結果?<br />真正的問題在:如何將結果排序  Google Page Rank<br />去鋸齒的文字比較好看?<br />去鋸齒處理:利用灰階產生解析度的幻覺,看起來平順<br />但坦白說來,去鋸齒的文字就是不好閱讀<br />微軟另外專門打造的字型:Georgia, Verdana<br />放棄了先創造高解析度字型再塞入像素格的作法<br />把像素形成的方格視為先天限制,依照限制設計相符合的字型<br />網路軟體應該讓網路資源的行為和本地資源一樣?<br />接下頁…<br />11<br />©2010 Honesty Huang<br />
  12. 12. Ch 17. 電腦科學中三個錯誤的想法<br />網路軟體應該讓網路資源的行為和本地資源一樣?<br />Network Transparency: 網路運算的「聖杯」<br />RPC<br />DCOM<br />但網路資源和本地資源有三項非常大的差異<br />Availability:該機器或網路可能無法使用<br />Latency:網路通訊過程可能耗時過久或甚至斷線<br />Reliability:網路遠端執行的可能是不可靠軟體 Orz<br />若有人聲稱可以讓你存取網路資源有如本機資源請儘速往反方向逃離!<br />12<br />©2010 Honesty Huang<br />
  13. 13. Ch 17. 電腦科學中三個錯誤的想法<br />關於搜尋<br />Semantic ?<br />關於文字顯示<br />很高興有人跟我當初想的一樣:ClearType Sucks !<br />關於 Network Transparency<br />為什麼我第一個想到 NAS ?! XDrz為什麼客戶們都不儘速往反方向逃離?! XDrz<br />時代或許演進了……? 還是什麼都沒變? XD<br />13<br />©2010 Honesty Huang<br />
  14. 14. Ch 18. 雙文化主義<br />UNIX 和 Windows 差別主要還是在文化差異<br />UNIX 重視對程式人員有用的程式<br />創造之時 1969,一般使用者並不存在,只有程式人員使用電腦<br />Windows 重視對非程式人員有用的程式<br />每個家庭的每張桌上都會有一台電腦,盡量賣更多套<br />OSX:給一般使用者的 UNIX<br />單文化 (monocultural)<br />說不出文化價值和人類核心價值間的差異<br />嘲笑 Windows 程式設計的 UNIX 程式設計人員<br />UNIX 文化感覺自己被圍困在伺服器和愛好者的小眾市場<br />The Art of UNIX Programming<br />這篇列舉很多章節都很有趣~<br />14<br />©2010 Honesty Huang<br />
  15. 15. Ch 18. 雙文化主義<br />UNIX<br />重視由命令列呼叫的程式,欣賞保持文字介面的程式<br />用參數控制、輸出純文字格式<br />「沈默是金」:當程式成功完成,不應該有任何輸出<br />先建立一命令列或文字介面核心,事後才寫 GUI 呼叫核應用程式的主要功能可以讓其他程式人員使用<br />文件會寫得簡潔完整,假設讀者很積極,一件事很少說兩遍<br />open source,遇問題最差還有 source 可看<br />/etc/passwd<br />Windows<br />重視 GUI,怕使用者搞不清程式沒有輸出的情況<br />由 GUI 開始,事後才加上 script 讓 GUI 操作自動化<br />瞭解一般使用者不太閱讀文件,不斷重複解釋每個主題都必須讓一般讀者能直接看懂,不必先瞭解其他<br />沒有 open source,一些問題可能得實驗或猜測或者有秘技<br />CSV<br />15<br />©2010 Honesty Huang<br />
  16. 16. Ch 18. 雙文化主義 (討論)<br />UNIX 文化有什麼好處?<br />重視文字介面,function testability?<br />Windows 重視使用者文化?<br />OS X 雙文化?Ubuntu ?<br />對雙文化的感想?<br />16<br />©2010 Honesty Huang<br />
  17. 17. To be Continued …<br />17<br />©2010 Honesty Huang<br />
  18. 18. 原文連結<br />©2010 Honesty Huang<br />18<br />Ch 13. Paper prototyping2003/05/16<br />Hanmail Paper Prototype<br />Balsamiq Mockups<br />Wireframe, Mockup, Prototype (投影片)<br />Ch14. Don't Let Architecture Astronauts Scare You2001/04/21<br />Ch15. Fire And Motion2002/01/06<br />Burn Rate<br />Ch 16. Craftsmanship2003/12/01<br />Ch 17. Three Wrong Ideas From Computer Science2000/08/22<br />Ch18. Biculturalism2003/12/14<br />CSV format is inferior to the /etc/passwd format<br />

×