一些讀者對《構(gòu)建之法》引用過的參考書也感興趣,因此我把所有參考書單獨(dú)列出來。其實(shí)人大部分的思想都是受某些外部信息的啟發(fā)影響而來,很多道理看似新穎,其實(shí)別人早就講過了??。這個(gè)參考書列表大致按照 類別 - 字母/拼音 的順序排列。有些參考書是第三版加入的,第一、二版并沒有:
Dealers of Lightning: Xerox PARC and the Dawn of the Computer Age
'玩閃電的牛人們' ... 施樂公司PARC 研究院的故事,可歌可泣可嘆。1970 - 80 年代天才們的創(chuàng)新, 在PARC 這個(gè)溫床上孕育, 發(fā)展并被公司忽視。但是這些創(chuàng)新深深地影響了之后的計(jì)算機(jī)行業(yè) - 包括 Apple 和 Microsoft.
Dreaming in Code by Scott Rosenberg, 中文版 《夢斷代碼》
一個(gè)有技術(shù)大牛,有資金,有宏大目標(biāo)的團(tuán)隊(duì),為何7年做不出一個(gè)好軟件?
Fumbling the Future: How Xerox Invented, then Ignored, the First Personal Computer
施樂公司的Parc 研究院如何發(fā)明了第一個(gè)PC (以及其他先進(jìn)技術(shù)), 施樂公司的領(lǐng)導(dǎo)如何又錯(cuò)過了這個(gè)浪潮。
Hard Drive by James Wallace, Jim Erickson
Bill Gates 的成長和微軟的前15 年。 You got to drive hard.
In Search of Stupidity: Over 20 Years of High-Tech Marketing Disasters by Merrill R. Chapman
中文版 《IT 大敗局》
很多精彩的IT 行業(yè)失敗的故事和分析,大多是20世紀(jì)80年代 - 90年代PC 浪潮中的事件, 字處理軟件,瀏覽器,網(wǎng)絡(luò)計(jì)算機(jī)(NC)等。故事有些老,但是經(jīng)驗(yàn)教訓(xùn)是非常類似的。
Information Rules: A Strategic Guide to the Network Economy by Carl Shapiro, Hal R. Varian
信息時(shí)代的產(chǎn)品和競爭和以往的競爭不同, 有一些特殊的規(guī)律, 這本書通過不少實(shí)例, 描述了這些規(guī)律。一個(gè)領(lǐng)域的先行者,就能制定規(guī)范,這是先發(fā)優(yōu)勢的一個(gè)例子。
Inside Intuit by Suzanne Taylor , Kathy Schroeder , John Doerr
Intuit 的創(chuàng)始人分析了市場上所有個(gè)人財(cái)務(wù)軟件的情況,發(fā) 現(xiàn)市場上已存在46家公司,他們自嘲說自己有 47th Mover Advantage. 結(jié)果就是這第 47 個(gè)競爭者最后成為市場的老大,打敗了包括微軟公司在內(nèi)的諸多對手。 微軟在2009年宣布停止其個(gè)人財(cái)務(wù)軟件 Money 項(xiàng)目,退出這個(gè)市場。
Intuit 早期的兩個(gè)工程師還留下了最早的結(jié)對編程的記錄(見第三章 兩人合作)
浪潮之巔 作者:吳軍
科技公司在各次浪潮中的命運(yùn),科技、商業(yè)、資本的結(jié)合。
Revolution in The Valley: The Insanely Great Story of How the Mac Was Made by Andy Hertzfeld
作者Andy 就是Mac 團(tuán)隊(duì)的一員,他也在這個(gè)書單中的 'Programmers At Work', 'Dreaming in Code', 'Steve Jobs' 出現(xiàn)過。
盛田昭夫 日本制造精神是這樣創(chuàng)造的 作者 [日] 江波戶哲夫 馬英萍 翻譯
Walkman 的故事被收錄在創(chuàng)新一節(jié)中。這本書(三冊)有很多值得技術(shù)人員和企業(yè)家學(xué)習(xí)的地方。
《喬布斯傳》
這個(gè)傳記里有很多關(guān)于創(chuàng)新,項(xiàng)目管理,企業(yè)成長的經(jīng)驗(yàn)教訓(xùn)。
Where Wizards Stay Up Late: The Origins of the Internet by Matthew Lyon , Katie Hafner
互聯(lián)網(wǎng)在美國怎么建起來的過程,很多計(jì)算機(jī)科學(xué)和工程的早期人物在此中出現(xiàn),很多我們現(xiàn)在習(xí)以為常的規(guī)矩 (例如email 中的 @ 符號(hào))就是那時(shí)候出現(xiàn)的。
Competing Against Luck Clayton M. Christensen
這本書提出了 'Jobs To Be Hired' 理論,來指導(dǎo)如何提高創(chuàng)新產(chǎn)品的成功率,而不是只靠運(yùn)氣。
Cross the Chasm by Geoffery A. Moore
著名的early adopter 和 early majority 之間的鴻溝(chasm) 就來自于這本書,非常有洞察力的分析方法。 2014年更新的第三版有很多新的案例分析。
Death by Meetings: A Leadership Fable, by Patrick Lencioni
如果說交流是團(tuán)隊(duì)合作的重要途徑,那么,要開多少會(huì),怎么開好會(huì),很值得研究。 Lencioni 很會(huì)講故事,故事之余他提供了一個(gè) “以什么節(jié)奏開什么會(huì),解決什么問題” 的框架。
Driven by Difference: How Great Companies Fuel Innovation Through Diversity by David Livermore
怎樣讓背景和思路各異的團(tuán)隊(duì)成員凝聚在同一目標(biāo)下,達(dá)成最終結(jié)果?
書中提出很多獨(dú)到的解決辦法,其中 pre-postmortem 做法, 讓團(tuán)隊(duì)成員想象現(xiàn)在就是產(chǎn)品發(fā)布后一個(gè)月, 但是產(chǎn)品失敗了,讓團(tuán)隊(duì)成員列出可能的原因。這樣能促使團(tuán)隊(duì)成員討論目前項(xiàng)目的風(fēng)險(xiǎn)在哪里,如何面對。
Escape Velocity: Free Your Company's Future from the Pull of the Past by Geoffrey A. Moore
大家都在類似的軌道中打轉(zhuǎn),你怎么調(diào)整動(dòng)能和勢能,獲得 “逃離速度”, 讓你的產(chǎn)品比別人好一個(gè)等級? Geoffrey 的分析方法獨(dú)具一格,從這個(gè)視頻也能看出他的洞察力和激情?!稑?gòu)建之法》的創(chuàng)新一章中引用了其分析方法。
The Five Dysfunctions of a Team: A Leadership Fable by Patrick Lencioni
通過講故事的形式,描述了領(lǐng)導(dǎo)團(tuán)隊(duì)崩潰的五個(gè)特征,以及怎么去解決這些問題。
Hackers and Painters by Paul Graham
黑客與畫家,第一章描寫了書呆子,和對書呆子不利的學(xué)校環(huán)境,事實(shí)上一個(gè)碌碌無為的大企業(yè),也會(huì)培養(yǎng)類似的環(huán)境。這對于學(xué)校和公司里鉆研編程的同學(xué)是一個(gè)很好的啟發(fā)。 作者比較推崇LISP 語言,但是他的創(chuàng)業(yè)系統(tǒng)也只有他負(fù)責(zé)的部分是用LISP 寫的,其他的模塊都不是。但是一些讀者認(rèn)為,這說明了 LISP 就是比其他語言都高大上的語言! 這告訴我們,不教條是多么的不容易。
The Hard Thing About Hard Things: Building a Business When There Are No Easy Answers by Ben Horowitz
創(chuàng)立一個(gè)企業(yè)是為什么? Build To Win.
很多人覺得創(chuàng)業(yè)公司都很忙,沒時(shí)間搞什么培訓(xùn)。作者在書里引用了Andy Grove 的計(jì)算培訓(xùn)價(jià)值的公式:
假設(shè)公司花了12小時(shí)的時(shí)間備課并給10個(gè)員工培訓(xùn)四小時(shí)。總共花費(fèi)12 + 10*4 = 52 小時(shí)。在培訓(xùn)后的一年中,這10個(gè)員工會(huì)有20,000 個(gè)小時(shí)的工作時(shí)間,如果培訓(xùn)能提高1% 的效率,那么公司將會(huì)節(jié)約200 小時(shí)。
In Search of Excellence: Lessons from America's Best-Run Companies by Thomas J. Peters , Robert H., Jr. Waterman
中文版《追求卓越》
這本1980 年代的書調(diào)查了當(dāng)時(shí)美國優(yōu)秀公司的管理經(jīng)驗(yàn),總結(jié)了卓越管理的幾大要素,我大約是在1993年讀到的,里面關(guān)于HP 公司的故事給我留下很深印象:
HP 的創(chuàng)始人看到公司管理人員下班時(shí)把儀器庫房都鎖起來了,就命令讓庫房都不上鎖,這樣員工可以拿儀器回家做各種實(shí)驗(yàn)。
當(dāng)年的在這個(gè)書上作為正面例子的公司如HP、IBM都碰到了新挑戰(zhàn),有些公司已經(jīng)不存在了(如王安電腦),是舊的管理原則不起作用了,還是新的領(lǐng)導(dǎo)層不再追求卓越?下面是這本書總結(jié)的管理原則:
(1) 崇尚行動(dòng) 實(shí)施“走動(dòng)管理”,到問題現(xiàn)場去;鼓勵(lì)試驗(yàn)。(2) 貼近顧客 (3) 自主創(chuàng)新
(4) 以人促產(chǎn)
用交流、培訓(xùn)、保障和獎(jiǎng)勵(lì)代替死板的員工手冊;高層主管實(shí)行“不關(guān)門制度”,任何人都可以上門交流。
(5) 價(jià)值驅(qū)動(dòng)
有效的價(jià)值體系應(yīng)該致力于激勵(lì)公司基層員工。
(6) 不離本行
不進(jìn)行多元化,或只進(jìn)行相關(guān)行業(yè)的多元化,盡量避免大規(guī)模的并購。
(7) 精兵簡政
控制管理層規(guī)模;切分大的部門避免管理的復(fù)雜度。
(8) 寬嚴(yán)并濟(jì)
寬松的工作氛圍,嚴(yán)格的價(jià)值觀體系。
Innovation: The Five Disciplines for Creating What Customers Want by Curtis R. Carlson, William W. Wilmot
SRI 的專家總結(jié)了創(chuàng)新的方法,NABC,《構(gòu)建之法》中的NABCD 就是來自這里。
The Innovators Dilemma, by Clayton M. Christensen
中文版《創(chuàng)新者的窘境》
成功的大公司, 能聽取用戶的意見,把精力投入增量改進(jìn)現(xiàn)有產(chǎn)品中;成熟的價(jià)值鏈從多方面阻止公司去冒險(xiǎn)嘗試新興領(lǐng)域; 同時(shí)公司為了爭取更高的利潤率,不得不忽視萌芽階段的小市場;專家對新興市場的分析往往基于現(xiàn)有經(jīng)驗(yàn),結(jié)論往往大錯(cuò)特錯(cuò)! 就這樣,往往有一些名不見經(jīng)傳的小公司從薄利的小市場切入,使用比較粗糙的顛覆式技術(shù),慢慢掀翻了大公司。
The Innovator's Solution, by Clayton M. Christensen
Kiss Theory Goodbye, Bob Prosen
一本實(shí)話實(shí)說的領(lǐng)導(dǎo)力手冊。每一本類似書籍都會(huì)提到分析問題并改進(jìn),大部分團(tuán)隊(duì)在實(shí)施改進(jìn)計(jì)劃后一段時(shí)間,又會(huì)人走燈滅,舊毛病又回來了。我欣賞他強(qiáng)調(diào)的是 ICA: Irreversible Corrective Action,怎樣保證這個(gè)改進(jìn)措施不會(huì)隨著時(shí)間和人事的變動(dòng)而消失?
The Myths of Innovation by Scott Burken
創(chuàng)新的迷思。《構(gòu)建之法》中創(chuàng)新的很多內(nèi)容受到這本書的影響。
Secret of Software Success by by Cyriac R. Roeding, Gert Purkert, Sandro K. Kindner, Ralph Muller, Deltiv J. Hoch
中文版《軟件業(yè)的成功奧秘》
1999 年出版。 麥肯錫的商業(yè)顧問們采訪了全世界很多軟件團(tuán)隊(duì),總結(jié)經(jīng)驗(yàn)并展望未來。成功的奧秘之一是: 每天都有成功的構(gòu)建 - have working daily build.
Six Thinking Hats by Edward De Bono
六頂不同顏色的思維帽子,非常有效的工具,能幫助團(tuán)隊(duì)思考問題,解決問題。
The Tipping Point by Malcolm Gladwell
中文版 《引爆點(diǎn)》為什么有些產(chǎn)品能迅速擴(kuò)張?有什么產(chǎn)品之外的因素?
The Wisdom of Teams by Jon R. Katzenbach
什么是團(tuán)隊(duì)?一群各自行事,沒有依賴關(guān)系的人可以叫 “工作組”, 而不是團(tuán)隊(duì)。 強(qiáng)行把一群人命名為團(tuán)隊(duì),只會(huì)得到效率低下的假團(tuán)隊(duì)。 (構(gòu)建之法第17章團(tuán)隊(duì)一節(jié))
After The Gold Rush by Steve McConnell
這是Steve McConnell 另一本著作 Professional Software Development 的beta 版本。
Agile Project Management with Scrum by Ken Schwaber
敏捷開發(fā)的專家解釋敏捷和SCRUM。
Agile Software Development, Principles, Patterns, and Practices by Robert C. Martin
中文版 《敏捷軟件開發(fā) 原則、模式和實(shí)踐》
從實(shí)踐出發(fā),講解了敏捷方法,OO設(shè)計(jì)原則和設(shè)計(jì)模式。這本書并不是靜態(tài)地羅列并贊美 N 種設(shè)計(jì)原則和模式,而是分析原則和模式產(chǎn)生的必要性和使用的時(shí)機(jī)。 例如對于 Single Responsiblity Principle, Open-Close Principle, 作者寫到:
變化的軸線僅當(dāng)變化實(shí)際發(fā)生時(shí)才具有真正的意義。如果沒有征兆,那么去應(yīng)用 SRP,或者其他原則都是不明智的。
遵循OCP 的代價(jià)也是昂貴的……顯然,我們希望把OCP的應(yīng)用限定在可能會(huì)發(fā)生的變化上?!?… 最終,我們會(huì)一直等到變化發(fā)生時(shí)才采取行動(dòng) 。
回頭看看我們在軟件工程課上給學(xué)生布置的作業(yè),有“變化的軸線么”? 有需求的變化么?沒有! 那既然不用任何考慮變化,為何不把所有的功能放在一個(gè)大類里面,或者就寫在main()函數(shù)里面,盡快實(shí)現(xiàn)就交作業(yè)了,管他什么SRP , OCP原則,什么內(nèi)聚,耦合,信息隱藏?! 這說明我們的學(xué)生恰恰是明智地完成了老師布置的作業(yè)。沒有足夠復(fù)雜性,易變性的軟件工程作業(yè)要求,反而讓學(xué)生陷入 “我有銀彈”, '軟件工程的要求沒啥用' 的誤區(qū):
“哎,你看我搞了一通宵,就寫好了程序,得了高分。也不用啥軟件設(shè)計(jì)的原則,事先也不用需求說明書,也不留什么文檔,就搞定了!軟件工程對我沒用!”
Art of Project Management, by Scott Burken (后續(xù)版本叫 Make Things Happen)
Scott 在1994 到 2003 在微軟 IE 等團(tuán)隊(duì)做Program Manager, 后來又做了內(nèi)部培訓(xùn)工作。他對以微軟為代表的項(xiàng)目管理有很深的見解。(我參加了他離開微軟前做的最后一次講座,他喝了啤酒,彈起吉他...)
Behind Closed Doors: Serects of Great Management by Johanna Rothman, Esther Derby
通過一個(gè)虛擬的項(xiàng)目,幾個(gè)經(jīng)理和員工交流的各種場景一個(gè)來串聯(lián)很多關(guān)于交流和管理的建議。
Best Kept Secrets of Peer Code Review by Jason Cohen
很多關(guān)于代碼復(fù)審的心得,同時(shí)還清晰地描述了 PSP, TSP, CMMI 的關(guān)系。
Code Complete (2nd Ed)Steve McConnell ISBN: 9780735619678
中文版 代碼大全 (第二版)斯蒂夫·邁克康奈爾 ISBN: 7121022982
大道至簡 軟件工程實(shí)踐者的思想 作者 周愛民
Debugging the Development Process: Practical Strategies for Staying Focused, Hitting Ship Dates, and Building Solid Teams by Steve Maguire
這本1994年出版的書總結(jié)了微軟鼎盛時(shí)期的軟件工程實(shí)踐心得。
Engineering—An Endless Frontier by Sunny Y. Auyang
中文版《工程學(xué) 無盡的前沿》 作者 歐陽瑩之。 作者論證了:當(dāng)今的工程學(xué)不僅是科學(xué)的合作者,而且兩者同等重要。
譯者之一李嘯虎的解讀:
哲學(xué)家的宗旨是:“我思,故我在。”
科學(xué)家的宗旨是:“我發(fā)現(xiàn),故我在?!?/span>
而工程活動(dòng)主體(工程師和企業(yè)家)的宗旨則是:“我構(gòu)建,故我在。”
Engineering Software as a Service: An Agile Approach Using Cloud Computing by Armando Fox and David Patterson
UC Berkeley 的軟件工程+云計(jì)算課程
Facts and Fallacies of Software Engineering by Robert Glass
幾十個(gè)軟件行業(yè)的傳說,和一些謬論。作者從1954年(?。╅_始在軟件行業(yè)工作,輾轉(zhuǎn)工業(yè)界和學(xué)術(shù)界,1999 年成為 ACM Fellow.
The Mythical Man-Month: Essays on Software Engineering by Fred Brooks Jr.
中文版《人月神話》
中文版 快速軟件開發(fā)斯蒂夫·邁克康奈爾 著 譯者: 席相霖 等 ISBN 9787505372856
Refactoring: Improving the Design of Existing Code by Martin Fowler
中文版 《重構(gòu) 改善既有代碼的設(shè)計(jì)》
Make it work, make it right, make it fast, make it extensible. 這本書提供了許多在OO 開發(fā)模式下 “make it right', 'make it extensible' 的建議。
重構(gòu)是 ”不改變軟件可觀察行文的前提下改善其內(nèi)部結(jié)構(gòu)”。 如果軟件的行文不變,為啥要折騰代碼? 因?yàn)槲覀兿氚殉绦虻慕Y(jié)構(gòu)變好,這樣方便程序員理解,測試,維護(hù)(right),也方便將來的擴(kuò)展(extensible). 大學(xué)生們交了軟工大作業(yè)之后,還會(huì)有人去理解、測試、維護(hù)、擴(kuò)展它么? 如果沒有,那就解釋了為何在大學(xué)里沒有人理解重構(gòu)的意義。
Software Engineering: The Current Practice by Rajlich Vaclav
作者是資深的軟件工程教授,對于程序理解(Program Comprehension)和軟件重用很有研究。
Writing Solid Code by Steve Maguire
歷久彌新的指南。
走出軟件作坊 作者 阿朱
深入分析中國軟件企業(yè)和員工的常見毛病,給出很多好的建議。
About Face: The Essentials of Interaction Design by Alan Cooper, et al.
中文版:《軟件觀念革命》
Design of Everyday Things by Donald Norman
茶壺嘴和茶壺把手在同一邊的茶壺就出自這本書。
Emotional Design: Why We Love (Or Hate) Everyday Things by Donald A. Norman
在彩色顯示器剛出現(xiàn)的時(shí)候,作者借了一個(gè)回家試用, 他總結(jié)彩色并沒有給他的工作效率帶來什么提升,但是他卻不舍得把顯示器還回去,為什么?
The Inmates Are Running the Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity by Alan Cooper
對以“技術(shù)人員為主導(dǎo)” 的設(shè)計(jì)給予辛辣的諷刺和鞭笞 (就像瘋子在管理瘋?cè)嗽海?。給出了怎么從普通用戶出發(fā)做設(shè)計(jì)的辦法。
Microinteractions: Full Color Edition: Designing with Details by Dan Saffer
在小小的移動(dòng)設(shè)備上,怎么做人機(jī)交互?
Success through Failure: The Paradox of Design by Henry Petroski
從PowerPoint的前生, 到各種橋梁的演化,設(shè)計(jì)思想也在各種失敗中演進(jìn)。
Subject To Change by Peter Merholz , Todd Wilkens , Brandon Schauer, David Verba
怎么樣從用戶體驗(yàn)出發(fā) (而不是從產(chǎn)品團(tuán)隊(duì)本身的技術(shù)出發(fā))來設(shè)計(jì)產(chǎn)品。
Tog on Software Design by Bruce Tognazzini
人機(jī)交互專家 Tognazzini 在1995年對未來軟件設(shè)計(jì)的展望。
《全程軟件測試》 作者 朱少民
對測試的理論,技術(shù)和最佳實(shí)踐有全面的覆蓋,主張軟件測試工作應(yīng)貫穿軟件開發(fā)整個(gè)生命周期 , 比較結(jié)合實(shí)際。
Coders At Work Peter Siebel, ISBN-13: 978-1430219484
對15 位頂級程序員的采訪, 總共600頁,非常多的心得可以在軟件工程的實(shí)踐中借鑒。我也寫了一個(gè)讀后感。
Eric Sink on the Business of Software by Eric Sink
如果把軟件開發(fā)沿著某個(gè)維度推到一個(gè)極致:一個(gè)人搞定軟件開發(fā)過程和相關(guān)的商業(yè)活動(dòng),能行么?這是最早的關(guān)于“全?!?的探索。 作者 Eric Sink 開發(fā)過Internet Explorer 的前身和 SourceGear.
I.M. Wright's Hard Code: A Decade of Hard-Won Lessons from Microsoft by Eric Brechner
微軟的開發(fā)經(jīng)理以幽默的風(fēng)格談?wù)撛诰薮蟮能浖咀鰪?fù)雜的軟件的各種經(jīng)驗(yàn)教訓(xùn), 同時(shí)也覆蓋了在這些公司的職業(yè)道路。
The Old New Thing by Raymond Chen
微軟Windows 資深工程師 Raymond Chen 用親身經(jīng)歷講述Windows 設(shè)計(jì),發(fā)展,編程和debugging 的種種趣事和 “秘訣”.
Showstopper!: The Breakneck Race to Create Windows NT and the Next Generation at Microsoft by C. Pascal Zachary
Windows NT 和創(chuàng)建它的團(tuán)隊(duì)的故事,其中描寫了Dave Cutler 的職業(yè)生涯和獨(dú)特性格
The Soul of a New Machine by Tracy Kidder
這是一本小說,講述一個(gè)軟件團(tuán)隊(duì)為成功發(fā)布一個(gè)新的小型計(jì)算機(jī)奮斗的故事,這本書和 Showstopper! 剛好對應(yīng), 講的分別是虛擬和現(xiàn)實(shí)的故事。
Art & Fear Observations on the perils (and Rewards) of ARTMAKING by David Bayles & Ted Orland
除了莫扎特那樣的天才,普通人能創(chuàng)造高質(zhì)量的藝術(shù)品么?
這本薄薄的小書很受藝術(shù)愛好者歡迎,它的 29 頁講了這個(gè)故事:
陶藝課的老師在第一堂課宣布,坐在教室左半邊的學(xué)生將以作品的數(shù)量和重量來考察,期末評價(jià)就以學(xué)生做了多少重量的陶器來衡量;教室右邊的學(xué)生將以質(zhì)量來衡量,期末只看一個(gè)完美的作品。
你猜高質(zhì)量的作品是從哪一邊出來的多?軟件工程的教育和陶藝課類似么?
What the Best College Teachers Do by Ken Bain
這本書研究了優(yōu)秀美國大學(xué)老師的教學(xué)經(jīng)驗(yàn)(這些老師絕大多數(shù)都不是在名校教書)??偨Y(jié)的關(guān)鍵是 Natural Critical Learning Environment. 在《構(gòu)建之法》中 “給老師和助教的建議” 可以看到詳情。
聯(lián)系客服