敏捷史話(七):從程式設計師、作家到搖滾樂手——Andy Hunt的多面人生
與其說 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”。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69982050/viewspace-2758594/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 敏捷之終結?by Andy Hunt敏捷
- Andy Hunt:音樂和程式設計,都是想象力在現實世界的宣言(圖靈訪談)程式設計圖靈
- [英]Andy Hunt:音樂和程式設計,都是想象力在現實世界的宣言(圖靈訪談)程式設計圖靈
- 程式設計師的人生程式設計師
- 《火星救援》一名程式設計師的作家夢程式設計師
- 程式設計師漫畫系列(1):程式設計師人生程式設計師
- 從程式設計師到CEO(轉)程式設計師
- 程式設計師生存定律--程式人生的出口程式設計師
- 樂觀的程式設計師程式設計師
- 敏捷史話(五):敏捷已逝 —— Dave Thomas敏捷
- 程式設計師不是砌磚工人,他們是作家程式設計師
- 程式設計師:從打工到創業?程式設計師創業
- [軟體人生]老程式設計師的轉型問題——老話重彈程式設計師
- [軟體人生]程式設計師的壽命和工作(一句話回答)程式設計師
- 敏捷史話(八):敏捷的破局之道——Martin Fowler敏捷
- 程式設計師的奮鬥史(四十一)——大學斷代史(五)——我的娛樂方式程式設計師
- 程式設計師的快樂生活程式設計師
- 樂觀的程式設計師們程式設計師
- 程式設計師必看的書(七)程式設計師
- 從程式設計師升級到工程師 (轉)程式設計師工程師
- 《快樂碼農》第5期 大話程式設計師面試程式設計師面試
- 魔都 3 年,從程式設計師到 CTO程式設計師
- 從學生到程式設計師(二) (轉)程式設計師
- 從程式設計師到架構師的方法與邏輯程式設計師架構
- 程式設計師豐富個人生活程式設計師
- 從學生到程式設計師(一) 關於程式設計 (轉)程式設計師
- 從前端到“錢”端,前端程式設計師的出路前端程式設計師
- 程式設計師的幽默笑話程式設計師
- 五年程式設計師人生的點點滴滴程式設計師
- 資料說話:怎樣的程式設計師最搶手?程式設計師
- 編輯手記之《一個程式設計師的奮鬥史》程式設計師
- 敏捷史話(四):敏捷是人的天性 —— Arie van Bennekum敏捷
- 敏捷史話(十一):敏捷宣言“間諜”——Steve Mellor敏捷
- 程式設計師節快樂程式設計師
- 程式設計師從教女友寫程式碼中學到的程式設計師
- 從程式設計師到架構師,有捷徑嗎?程式設計師架構
- 做程式設計師的苦於樂程式設計師
- 左手程式設計師,右手作家:你必須會的Jupyter Notebook程式設計師