
說在前頭先申報利益﹐這本書在Amazon原價二十大洋﹐我那本是去科技會議免費送的。一百頁也不到薄薄的一本書﹐要花二十美元實在太貴﹐不過不用錢看看又無妨。這本書的題材可說是前無古人只此一家﹐目標讀者是科技人員﹐特別是參與制定標準技術規格的人。這是一本很實用常識性的書﹐在科技行業工作了一段時間﹐接觸過無數的技術規格後﹐不多不少也會懂得書中的內容﹐只是這本書很方便地以十戒方式列舉出來。
作者任職半導體科技公司Synopsys﹐參加過很多標準技術規格的委員會﹐見盡不少成功和失敗的技術規格。她綜合多年的工作經驗中﹐寫成這本小書回饋科技界。公司出錢印製﹐當成禮物送給客戶﹐反正客戶全都工程師﹐工作與技術規格息息相關。一來作者可以出書成名﹐公司好過送無用的螢光筆拍子簿﹐書中的資料對讀者也有著實用﹐真是一箭三鵰的高招宣傳手法。
標準技術規格的重要性﹐相信不用多費唇舌介紹了。沒有技術規格﹐不同公司的科技產品東西互不相容﹐市場混亂消費者不知所措。簡單如供電插頭和電話線﹐到電腦USB或DVD的格式﹐甚至無線電話訊號﹐整個互聯網本身﹐也是因為有通用的技術規格﹐我們日常生活才能運作正常。試想如果完全沒有技術規格﹐Nokia的電話只能打給Nokia的電話﹐會是一個怎麼樣的世界。當不同公司的產品需要相容時﹐就必需要制定一個技術規格。通常在幾間大公司帶頭下﹐在不同的委員會機制如ITU﹐IEEE﹐ISO下﹐組成一個規格委員會。然後各公司在技術或市場考慮上磋商﹐開發一套大家共同認可的技術規格。
不是所有技術規格都必然成功﹐也有很多沒有人用沒有人理﹐被歷史遺棄的技術規格。作者總結多年觀察﹐寫成技術規格十戒﹐預防失敗的技術規格﹐以免浪費人力物力。
第一戒﹕在規格上合作﹐在產品上競爭﹐做大市場塊餅
第二戒﹕要小心把專利和規格分清楚﹐不然會有很多法律問題﹐甚至喪失專利權
第三戒﹕要知道何時停止﹐若技術走入死胡同﹐便不要再浪費時間
第四戒﹕規格要真正公開透明﹐不然沒有第三者廠商會支持
第五戒﹕規格委員會中﹐沒有完全中立的委員﹐說到底技術規格是因應市場需求﹐廠商最終目標是賣產品賺錢
第六戒﹕借用現行有效的規格委員會機制﹐一來公信力高消費者有信心﹐二來不用浪費時間決定機制
第七戒﹕技術規格是要解決真實的問題﹐一開始沒有問題根本就不需要規格
第八戒﹕製定規格有很多不同方法﹐要懂得每個方法的優劣
第九戒﹕不要從頭造起﹐採用並改良廠商捐出來的技術規格。正所謂萬事起頭難﹐再者如廠商沒有興趣﹐大慨這個規格也不會有市場
第十戒﹕要明白技術規格中﹐除了技術考慮外﹐更重要的還有商業考慮﹐說到為什麼會有技術規格﹐還是因為廠商要賣產品賺錢啊﹗
除蟲(Debug)是每個寫程式或做設計的人也必須要懂的基本求生技巧。沒有人可以落筆永不犯錯﹐所以去找出錯誤並加以修正是必經的階段。這個除蟲的過程很多時間痛苦而漫長﹐特別是那隻蟲在別人的傑作裏面。我自小玩寫程式和砌電腦﹐大學時讀工程系﹐出來做時是當工程師﹐無不是和蟲打交道。不是自賣自跨﹐我對抗蟲害經驗豐富﹐除蟲快而準。很多時候我覺得除蟲不單要腦筋好﹐還要有點除蟲的藝術才能夠有效率。但說起來我除蟲好像沒有什麼特別方法﹐也沒有什麼可靠的系統可言。就像語文那樣是與生俱來的能力﹐自己懂如何去做﹐但很難教別人如何除蟲。Debugging這本書正好填補這個空位﹐很有系統地歸納出除蟲九大定律。
這書的作者畢業於MIT﹐在科技行業工作多年﹐是很有經驗的工程師。他見市面上完全沒有關於除蟲的書﹐於是把多年的除蟲心得整理寫下來﹐希望可以幫助後輩掌握除蟲技巧。書中依次例出除蟲九大定律﹐每一定律也有詳細解說﹐並且附以作者經驗的真實案例去說明應用。最後幾章將所有定律融會貫通﹐展視給讀者由發現問題到找出錯誤﹐如何把定律綜合整個除蟲過程。最後一章很特別﹐從helpdesk的角度出發﹐把定律在他們的眼中演譯一次。對在helpdesk當技術支援的人故然有用﹐對打電話去helpdesk救助的人﹐即是其他所有人也有幫助。知道helpdesk如何運作﹐配合他們想要的資料﹐才能更快解決問題。
我把除蟲九大定律翻譯出來﹐給大家作一個簡介﹕
1. 徹底明白系統的運作。如不明白﹐請先把使用手冊由頭到尾讀一次。
2. 讓系統失靈。系統失靈是除蟲的第一條線索﹐看不見失靈就找不到蟲。
3. 不要靠估﹐要看清楚那兒出錯。除蟲的精髓不在於要估得準﹐
而是如何去減少估錯的機會﹐一估錯就會浪費很多時間行錯路。
4. 分而攻之。把蟲出沒的笵圍收窄﹐如是者就會找到蟲的位置。
5. 每次只改一樣。一次過改太多﹐不單不能除蟲﹐還有可能產生新的蟲。
6. 所有事也要有記錄。沒有詳細的記錄﹐就沒有足夠的資料去除蟲
7. 看看有沒有插電掣。最安全的地方就是最危險的地方﹐
最白痴最顯眼的錯誤﹐往往最容易被忽略看不見。
8. 不要鑽牛角尖﹐想不到就要虛心問人。
9. 試清楚修正是否有效。很多時候以為找到蟲錯誤修正好就完工﹐
只不過恰巧那些好彩沒有遇上問題﹐蟲還是好端端在那兒等下次再咬人。
雖然我在看這本書時﹐不禁想這除蟲九大定律只不過是簡單常識﹐任何寫過程式的人也必定無師自通學會。可是回顧一下我的除蟲經驗﹐久不久我自己也會一時大意違反這些定律﹐弄得團團轉不知如何去解決。現在有人很有系統地寫了出來﹐不單讓我更深刻記得這些除蟲定律﹐還可以讓我很精確地把除蟲技巧教人﹐不會自己懂但找不到言語形容的煩惱。這本書奉送除蟲九大定律的海報﹐我特別印了出來貼在我的工作間。當自己找不到蟲毫無頭緒時﹐抬頭細看這九大定律﹐回想自己違反了那條﹐警惕自己改過﹐很快就可以找到害蟲。當別人問我有關除蟲的問題時﹐我可以很省氣力地著其中一條回答他。不論是除蟲新仔還是經驗老手﹐這本書應被奉為除蟲寶典﹐任何設計程式或硬件的人也應該要讀一遍。
這書本不是為興趣而讀﹐而是因工作上的需要而讀。我在新的工程企劃中﹐要領導一個得幾個新人的小組﹐負責開發計劃中的其一個子系統。我出來做事這幾年來一直也是做細的那個。雖然在技術專長上受到肯定﹐也做過些獨立完成的工作﹐但要話事還第一次﹐可以說毫無管理經驗。我老細也是工程司出身﹐明白我適應上的難處﹐於是借了這本書給我看﹐他說這是他的管理天書。這不是一般的管理書藉﹐而是特別寫給軟件開發管理。雖然我們公司是做硬件不是做軟件﹐但在電腦搞鍵盤的工作性質也很相同。這本書的適合科技公司的中下管理層看﹐熟讀書中的理論和應用實例﹐可以增加幾個人至幾十個人團隊的工作效率。整本書有五百多頁﹐反正計劃開始時很清閑﹐我在公司有空時看幾章﹐不到一個星期就看完了。
以前在大學時也有上過管理課﹐不過課本上的東西﹐早在畢業時還了給教授。很多時候只記得大慨意思卻忘記細節﹐讀這本書正好重溫不少有用的知識﹐這本書很有系統地由最基本的理論開始﹐由計劃議案﹐團隊組成﹐風險評估﹐死線時限﹐對外對內的溝通方法﹐到市場部對開發部間的政治也有詳細解說。書後的附錄還有一系列的工具箱﹐詳細列出有什麼管理手段可以增加效率﹐並每種手段的優劣和適合在什麼時候用。每章隨了理論外還有生動的例子﹐是作者跟據他多年的工作經驗改篇﹐我讀到的時候也有點身同感受﹐那些情況好像似層相悉。
看這本書的最大收獲﹐是學懂了那套管理語言﹐才能夠有效地思考計劃的問題。很多時候有直覺告訴我不對路﹐但沒有理論基礎就無法清楚地指出問題所在。看完書我還可以現學現賣﹐引用書中的理論﹐告訴老細若計劃遲已經有延誤﹐假話可以後來追上進度是不切實際。一個開發工程有三項要求可以互相交換﹐一是省人手﹐二是多功能﹐三是快完成﹐但在三項中只可以同時選擇兩項﹐若要三項全選則連是神仙也無能為力。對上老細的老細也是明事理的人﹐為要保存原本的功能和死線﹐只好增加人。這本書只有一點我十分不認同﹐就是作者好像常常有意無意提及加班。我認為加班不是應該是常態﹐在趕死線前趕幾個星期沒有問題﹐計劃完了通常可以放回補了的時間。一個職員如果在工時內做不完要做事﹐要長時間要加班趕工﹐只可以說明這個人的能力出了問題。若他的能力沒有問題﹐而是管理層不停把過量的工作硬塞給他﹐則是管理層的管理能力有問題。但如果計劃剛剛開始時﹐就已經把加班計算入開發所需的時間內﹐那這個計劃一定不能準時完工。這是妄想三個要求也同時想選擇﹐如果死線不能改﹐就要多加點人手或減點功能﹐面對現實是成功的第一步。
這好本書我當然要還給老細﹐不過我認為這是一本很有用的參考書﹐每次開計劃期也應該拿來翻翻﹐重溫一下基礎理論避免幹蠢事﹐所以我自己上網買了本二手放在書架。若他日我升多一級有兩層手下﹐我也會推薦這本書給剛剛升上去的小組長看。不過如果再升上去﹐這本以開發工作實戰為主的書則沒有太大用了。行政人員才不會去理﹐這些雞毛蒜皮的要落手落腳做的事呢。
蘋果日報作者 – 陳馬:書評,影評,動漫,旅行,哲學筆記