敏捷史話(七):從程序員、作家到搖滾樂手——Andy Hunt的多面人生
- 2021 年 2 月 23 日
- 筆記
與其說 Andy Hunt 是敏捷宣言的創始人,不如說他是一名專業作家來得更為合適。他的《實用程序員》《程序員修鍊之道:從小工到專家》《編程 Ruby:實用程序員指南》都是口碑極佳的程序員讀物。50多歲的他從未離開敏捷,但又沒有把自己的人生與敏捷綁在一起,他的精神生活豐富而充實:搞音樂、做木工、寫科幻小說……
Andy 的職業生涯經歷了很多階段,從財富100強公司的在職程序員,到在「真正精英、有趣的高科技軟件公司」工作,再到擔任上述所有公司的顧問,再到一些公司,再到作家,再到出版商,目前穩定在創業者這一頭銜。
程序員 Andy
2020年初的一場演講,他是這樣自我介紹的:「我的名字是 Andy Hunt,從事商業編程已經38年了。」所以還是從老本行程序員說起吧,安迪在 Heathkits 和無線電的 CP/M(微機操作系統)及 S-100 bus 的 DIY 時代開始了自己的事業。安迪為一位俄亥俄科學挑戰者編寫了他第一個真正的程序——一個文本編輯器和數據庫管理器的組合。Andy開始入侵6502彙編程序,修改操作系統,並在1981年編寫了他的第一個商業程序(一個製造資源規劃系統)。
此後,他自學了 Unix 和 C 語言,並開始設計和構建更大、更互聯的系統。在大公司工作時,安迪密切關注 Usenet,並通過直接訪問 ihnp4 開始了他早期的電子郵件習慣。接下來,他開始從事電子印前處理和計算機圖形學的研究,並致力於鑽研賞心悅目的硅圖形機器。就這樣,從 BSD 到 System V,Andy 對 Unix 的幾種風格都了如指掌。
作家 Andy
經驗日漸豐富的他遇到了一個「瘋狂的」項目:在時間緊迫的截止日期內完成500萬行代碼以完成項目。接手這個項目團隊後,他在其中結識了 Dave Thomas,二人採取的工作方式不謀而合,竟然按時完成了任務並讓項目順利進展。二人共同意識到許多項目共同存在的問題:團隊成員通常不進行測試、沒有交流、需求不一致、甚至沒人知道如何構建軟件……於是他們想通過這次經歷和其他諮詢案例積累的經驗,來將這些程序員、軟件團隊、行業如何工作的哲學分享給更多團隊。
許多年之後,面對 the Pragmatic Bookshelf 系列書籍,二位作者將會回想起,將手稿發給出版商那個遙遠的下午。一開始,他們並沒有規劃之後的宏圖壯志,也並不打算將它當成教科書或者專著,而只是作為一種個人經驗總結的筆記或者對工作有幫助性質的小冊子。但隨着內容越來越完善,稿件越來越多,Andy 接受了親友的建議,選擇了一家軟件書籍的優質出版商。他們希望出版社的拒信會指出無法出版的原因,來據此調整、優化稿件。但這個「狡猾的計劃」失敗了,出版商直接接受稿件,告知二人可以出版,這就是於1999年秋天出版的第一版《程序員修鍊之道》。

2000年,在邁阿密,Andy 遇上了 Bob 大叔,二人就軟件公司的輕量級 項目管理交換了觀點。這年秋,Bob 和 Martin Fowler 萌生了讓各種相互競爭的輕量級流程倡導者聚集在一起,形成一個統一的宣言的想法,並向 Andy 發出了邀請。最終,Andy 和其他16位參與者在雪鳥滑雪場度過了觀點碰撞的三天,產生了《敏捷宣言》這一成果。
出版商 Andy
敏捷的普遍適用性使其可以擴展到軟件開發之外,這之後 Andy 和 Dave Thomas 合作日漸緊密。2003年,他們運用敏捷原則建立了 the Pragmatic Bookshelf 出版公司。
這個出版公司的與眾不同之處在於:
- 他們是針對開發者的出版者;
- 作者可以直接用標記語言寫作;
- 出版流程更短;
- 在可以自動化的地方都自動化;
- 作者可以隨時更新自己的書,創建新的電子版;
- 付給作者的版稅更高(普通的3-4倍);
- 為讀者提供 DRM-free 的電子書;
- 開放尚未正式出版的電子書。

對於既是出版商又是作者的 Andy,除了大名鼎鼎的《程序員修鍊之道》,他跟 Thomas 還合著、出版了十幾本軟件開發書籍,如《單元測試之道 Java 版》《使用 CVS 進行實用的版本控制》,還通過《Ruby 編程:實用程序員指南》這一書籍向西方世界介紹了這種來自日本的新語言。
父親Andy
作為創業者或者說企業家的 Andy,常在家辦公。擁有多項技能的他思維活躍,很容易站在不同的角度看待問題,將其他行業的知識與軟件開發融會貫通。比如,他認為,一個公司的組織結構對工作安全有影響,開發人員因為維護人員的存在而重數量輕質量,只想拿到更多工資。究其原因,這類組織失調的根本在於會計準則。工作方式上,他也不拘一格,自稱電腦桌面「既不是一塵不染,也不是亂糟糟的豬圈」。他會分類並批量處理文件。他認為,如果將文件分解為顆粒度更細的分類的話,會比較浪費時間,但是不分類又會找不到所需的文件,所以他一般會將文件歸檔為簡單的幾個主題,這種方法像桶排序,可以通過快速的線性搜索找到正確的存儲桶,這是 Andy 可以分享給大家適度提高效率的好方法。

面對工作和家庭的平衡,他的回應是「同樣的挑戰有不同的轉折點」。所以,戴上了創業者這頂帽子,工作、家庭、休息就不再是完全獨立的元素,它們是一個整體。孩子也是公司的一部分,他們會幫去演講的父親收拾行李,為即將歸家的父親準備好馬提尼酒,或者在游泳池旁玩耍,而 Andy 則帶着筆記本電腦編寫代碼、撰寫文章、為出版社制定銷售計劃……一家人都處在統一戰線上。在家辦公時,對於陪孩子還是去工作,他認為這是一項優先級排序的問題。對工作和家庭的平衡是一項雙向的給予和索取,如果小朋友有學校表演、活動等可預知的事情,工作會為此讓路;而如果是晚上或者周末必須處理某些工作問題,孩子們也會自覺尊重、不打擾父親。
「斜杠中年」Andy
敏捷之外的 Andy 還寫小說,他的新書《Conglommora》是一本以瑰麗的想像勾勒未來世界的科幻小說:古老的綠色地球早已蕩然無存。人們打造了一艘艘「諾亞方舟」逃離災難,試圖尋找宜居的星球。但人類並沒有找到合適的行星,於是人們在宇宙中將自己的船艦聚集在一起,形成了 Conglommora:一個位於深空數百光年的巨大的、靜止的、臨時的、自給自足的世界。直到來自「死土」的神秘散亂者使他們陷入橫跨銀河的驚人旅程,以面對過去並威脅未來。這本小說也是以敏捷的方法完成,Andy 還為此閱讀了許多量子物理的書籍,學習了不少天文學知識。

除了寫科幻小說,拉丁語、笛子、小號、鍵盤手、搖滾樂、木工……他作為一個程序員轉行作家和出版商的背後,還隱藏着這一系列技能。可以說,從《敏捷宣言》發佈時就擁有多項技能的「斜杠青年」,到現在不限于敏捷的「斜杠中年」,他的靈魂一直充盈而豐富。他不久前發佈了一張音樂專輯《Far Flung Thoughts》,是綴以爵士和藍調的搖滾樂,適宜編程時聽;他的木工工作間日程井井有條,目前在研究燕尾榫;而取得良好口碑的小說寫作也正在籌備下一部。
關於如何能在各項身份中轉換並怡然自樂,他自稱簡短而甜美的人生目標可以與大家共勉:「To understand」。