推荐序二
我很喜欢本书的中文书名——高效程序员的45个习惯,比直译成“敏捷开发者实践”含蓄多了。敏捷不是目的,只是手段。只要某个手段适合某个场景,有助于提升质量,提高交付能力,提高开发者水平……总而言之,有好处的事情,我们尽管做就是了,何必冠以敏捷之名?
记得第一次读本书还是两年前。这时又细细读来,越来越觉得“习惯”一词比“实践”更有味道。所谓“流水不腐,户枢不蠹”,厨房脏了就擦一下,总比满墙都是油烟以后再去清理的代价小得多。有价值的东西——比如回顾、测试、重构,一切有利于团队建设、提高生产力的实践都应该频繁且持续做,然后日积月累就养成了习惯。
有些习惯很容易养成,有些则很难。我们大都常常许愿,做计划,比如要做一个至少100人同时在线的成熟应用,参加义工活动,每周至少一篇博客……然后在计划落空的时候,用各种理由来安慰自己。
李笑来老师在《把时间当作朋友》一书中提到:“所有学习上的成功,都只靠两件事:策略和坚持,而坚持本身就应该是最重要的策略之一。”那么,为什么我们会在某些事情上坚持不下去?或者换个角度来看,哪些事情是容易坚持下去的?
以前我是标准的宅男,CS、网络小说、魔兽世界几乎是休闲的全部,等到后来得了腰肌劳损,又得了颈椎病,这才痛定思痛,开始游泳锻炼身体。每天游两千米,一个月以后,游泳就成了习惯。再举个例子,我老婆生完孩子以后体型变化很大,立志想要减肥。为了坚持下去,她把怀孕前的照片放在电脑桌面上,时时督促自己。后来,减肥也就变成了一种生活方式。
从我的个人体验来看,难以坚持下去的事情,基本都是因为没有迫切的欲望和激情。单说锻炼身体,无论是为了减肥、祛病,还是塑形美体等,做这些事情至少都有明确的目的,这样才能驱使着人们一直坚持下去。没有动机,没有欲望,哪里来的毅力呢?
那么,当我们决定做一件事情的时候,首先就要多问问自己:为什么要做这件事情?它所带来的好处是什么?如果不做它又会有哪些坏处?有了清晰的目的和思路后再去做事,遇到变化时就知道孰轻孰重,该怎么调整计划,同时也不至于被重复和乏味消磨了一时的意气。翻开本书之后,你同样也该对自己提问:“为什么要有自动验收测试,有了足够的单元测试是不是就能保证质量了?”“写自动验收测试有哪些成本,会带来哪些收益?”只有明白了“为什么做”,才能够解决“如何做”的问题。
本书的两名译者与我都是故交。钱安川是我的同事,是ThoughtWorks资深咨询师,有丰富的敏捷实施经验。郑柯与我同是InfoQ中文站敏捷社区的编辑,一起翻译过数十篇稿件。他翻译的《项目管理修炼之道》也即将由图灵公司出版。这次二人联手的作品,定会给读者以赏心悦目的阅读体验。我有幸已经从样章中感受到了这一点。
希望你能够带着问题,踏上愉快的阅读之旅。
希望你能够养成好习惯。
李 剑
ThoughtWorks咨询师
2009.10.10