敏捷史话(七):从程序员、作家到摇滚乐手——Andy Hunt的多面人生
Andy Hunt,相比《敏捷宣言》合著者的身份,他作为《程序员修炼之道》的作者身份更为大家所熟知,除了与编程相关的工作。写科幻小说、做木工、搞音乐……他的丰富生活看似与敏捷毫不相干,但又确实不可分离。
与其说 Andy Hunt 是敏捷宣言的合著者,不如说他是一名专业作家来得更为合适。他的《实用程序员》《程序员修炼之道:从小工到专家》《编程 Ruby:实用程序员指南》都是口碑极佳的程序员读物。50多岁的他从未离开敏捷,但又没有把自己的人生与敏捷绑在一起,他的精神生活丰富而充实:搞音乐、做木工、写科幻小说……
Andy 的职业生涯经历了很多阶段,从财富100强公司的在职程序员,到在“真正精英、有趣的高科技软件公司”工作,再到担任上述所有公司的顾问,再到作家,再到出版商,目前稳定在创业者这一头衔。
2020年初的一场演讲,他是这样自我介绍的:“我的名字是 Andy Hunt,从事商业编程已经38年了。”所以还是从老本行程序员说起吧,安迪在 Heathkits 和无线电的 CP/M(微机操作系统)及 S-100 bus 的 DIY 时代开始了自己的事业。安迪为一位俄亥俄科学挑战者编写了他第一个真正的程序——一个文本编辑器和数据库管理器的组合。之后,Andy开始尝试入侵6502汇编程序,修改操作系统,并在1981年编写了他的第一个商业程序(一个制造资源规划系统)。
此后,他自学了 Unix 和 C 语言,并开始设计和构建更大、更互联的系统。在大公司工作时,安迪密切关注 Usenet,并通过直接访问 ihnp4 形成了他早期的电子邮件习惯。接下来,他开始从事电子印前处理和计算机图形学的研究,并致力于钻研赏心悦目的硅图形机器。就这样,从 BSD 到 System V,Andy 对 Unix 的几种风格都了如指掌。
经验日渐丰富的他遇到了一个“疯狂的”项目:在时间紧迫的截止日期内编写数百万行代码以完成项目。接手这个项目团队后,他在其中结识了 Dave Thomas,二人采取的工作方式不谋而合,最终按时完成了任务,让项目得以顺利进行。二人意识到许多项目共同存在的问题:团队成员通常不进行测试、没有交流、需求不一致、甚至没人知道如何构建软件……于是他们想通过这次经历和其他咨询案例积累的经验,来将这些程序员、软件团队、行业如何工作的哲学分享给更多团队。
许多年之后,面对 the Pragmatic Bookshelf 系列书籍,二位作者将会回想起,将手稿发给出版商那个遥远的下午。一开始,他们并没有什么规划,也并不打算出版教科书或者专著,只是将这些内容当作个人经验总结的笔记或者对工作有帮助性质的小册子。但随着内容越来越完善,稿件越来越多,Andy 接受了亲友的建议,选择了一家优质出版商来完成书籍出版工作。他们希望出版社的拒信能够指出无法出版的原因,并据此调整、优化稿件。但这个“狡猾的计划”失败了,出版商直接接受了稿件,告知二人可以出版。于是,在1999年的秋天,《程序员修炼之道》出版了。
2000年,在迈阿密,Andy 遇上了 Bob 大叔,二人就软件公司的轻量级项目管理交换了观点。同年秋,Bob 和 Martin Fowler 萌生了让各种相互竞争的轻量级流程倡导者聚集在一起,形成一个统一的宣言的想法,并向 Andy 发出了邀请。Andy 和其他16位参与者在雪鸟滑雪场度过了观点碰撞的三天,最终发布《敏捷宣言》这一成果。
敏捷的普遍适用性使其可以扩展到软件开发之外,这之后 Andy 和 Dave Thomas 合作日渐紧密。2003年,他们运用敏捷原则建立了 the Pragmatic Bookshelf 出版公司。
这个出版公司的与众不同之处在于:
- 他们是针对开发者的出版公司;
- 作者可以直接用标记语言写作;
- 出版流程更短;
- 在可以自动化的地方都自动化;
- 作者可以随时更新自己的书,创建新的电子版;
- 付给作者的版税更高(是平均版税的3-4倍);
- 为读者提供 DRM-free 的电子书;
- 开放尚未正式出版的电子书。
对于既是出版商又是作者的 Andy,除了大名鼎鼎的《程序员修炼之道》,他跟 Thomas 还合著、出版了十几本软件开发书籍,如《单元测试之道 Java 版》《使用 CVS 进行实用的版本控制》,还通过《Ruby 编程:实用程序员指南》这一书籍向西方世界介绍了这种来自日本的新语言。
作为创业者或者说企业家的 Andy,常在家办公。拥有多项技能的他思维活跃,很容易站在不同的角度看待问题,将其他行业的知识与软件开发融会贯通。比如,他认为,一个公司的组织结构对工作安全有影响,开发人员因为维护人员的存在而重数量轻质量,只想拿到更多工资。究其原因,这类组织失调的根本原因在于会计准则。工作方式上,他也不拘一格,自称电脑桌面“既不是一尘不染,也不是乱糟糟的猪圈”。他会分类并批量处理文件。Andy 认为,如果将文件分解为颗粒度更细的分类的话,会比较浪费时间,但是不分类又会找不到所需的文件,所以他一般会将文件归为几个简单的主题,这种方法像桶排序,可以通过快速的线性搜索找到正确的存储桶,这是 Andy 可以分享给大家适度提高效率的好方法。
面对工作和家庭的平衡,他的回应是“同样的挑战有不同的转折点”。所以,戴上了创业者这顶帽子后,工作、家庭、休息就不再是完全独立的元素,它们是一个整体。孩子也是公司的一部分:他们会帮去演讲的父亲收拾行李,为即将归家的父亲准备好马提尼酒,或者在游泳池旁玩耍。Andy 则带着笔记本电脑编写代码、撰写文章、为出版社制定销售计划……一家人都在为同一个目标做出努力。在家办公时,对于陪孩子还是去工作,他认为这是一项优先级排序的问题。对工作和家庭的平衡是一项双向的给予和索取,如果小朋友有学校表演、活动等可预知的事情,工作会为此让路;如果是晚上或者周末必须处理某些工作问题,孩子们也会自觉尊重、不打扰父亲。
敏捷之外的 Andy 还写小说,他的书籍《Conglommora》是一本以瑰丽的想象勾勒未来世界的科幻小说:古老的绿色地球早已荡然无存。人们打造了一艘艘“诺亚方舟”逃离灾难,试图寻找宜居的星球。但人类并没有找到合适的行星,于是人们在宇宙中将自己的船舰聚集在一起,形成了 Conglommora:一个位于深空数百光年的巨大的、静止的、临时的、自给自足的世界。直到来自“死土”的神秘散乱者使他们陷入横跨银河的惊人旅程,以面对过去并威胁未来。这本小说也是以敏捷的方法完成,Andy 还为此阅读了许多量子物理的书籍,学习了不少天文学知识。
Andy透露,《Conglommora》的续集已经出版,叫《Conglommora Found》 。他还准备发布一本名为《Weatherly Hall》的恐怖小说。故事以鬼屋为题材,设定时间是未来,所以无人机等高科技元素也会融合进来,听起来会是一本非同寻常又妙趣横生的恐怖小说。
除了写小说,小号、键盘手、摇滚乐、木工……他作为一个程序员转行作家和出版商的背后,还隐藏着这一系列技能。可以说,从《敏捷宣言》发布时就拥有多项技能的的“斜杠青年”,到现在不限于敏捷的“斜杠中年”,他的灵魂一直充盈而丰富。他的最新音乐专辑是以复古和现代合成器为特色的电子氛围音乐,适宜编程时听;他的木工工作间日程井井有条,目前在研究燕尾榫;而取得良好口碑的小说写作也正在筹备下一部。
关于如何能在各项身份中转换并怡然自乐,他自称简短而甜美的人生目标可以与大家共勉:“To understand”。