对于敏捷软件开发的实践,我最想推荐这三本书:

  1. 《Scrum 精髓》,作者是 Kenneth Rubin
  2. 《用户故事与敏捷方法》,作者是 Mike Cohn
  3. 《敏捷整洁之道:回归本源》,作者是 Robert C. Martin

1. 《Scrum 精髓》

这是一本七分实践、三分原理的书。对新手很友好,介绍了一套明确的活动,让团队可以快速进入 Scrum 敏捷的实战之中。

我猜会有人会对此不认同或者嗤之以鼻:Scrum 规定了具体的活动,这不成了形式主义了吗?

我的观点是:

  1. 就像刚学骑自行车一样,我们肯定会全身绷紧、如临大敌,时刻做好摔倒规避和防护。这些都让我们的动作僵硬、刻板。但唯有这样的训练,我们才能最终实现熟练的骑行。在那之后我们可以玩花活,比如双手离把。但在这之前,我们需要学习如何启动、如何避让、如何停下来等等这些具体的动作。
  2. 敏捷实际上是一种强调纪律性的软件开发方法。它要求测试先行、重构、持续集成、完整团队、以可持续节奏在短循环周期内工作、每个周期都产出可运行的软件、客户可以根据这些产出提出反馈意见等等。

所以,我推荐《Scrum 精髓》,因为它既清晰地介绍了关键的敏捷活动,比如需求梳理、迭代规划、迭代评审,同时又深入浅出地讲解了背后的逻辑。

我建议在进行敏捷实践的准备阶段和初期阅读,也推荐把它当作手册放在案头按需查阅。

2. 《用户故事与敏捷方法》

这本书的重点是指导产研团队通过用户故事这种形式,实现和用户、客户、业务方的沟通,弄清楚客户到底要的是什么、我们到底要交付什么样的价值产出。

避免陷入勤勤恳恳完成了详尽的需求调研和文档编写工作、完完整整记录了要做什么,却淡忘了为什么要做它们的困境。

我建议在进行敏捷实践的准备阶段和初期阅读。

这本书已经绝版了,前两年新出了另一个译本叫做《用户故事实战》,翻译质量不如原译本。

3. 《敏捷整洁之道:回归本源》

如其名,这是一本讲“道”的书。我建议在实践了几个迭代后、对 Scrum 方法有一点心得体会了再读这本书。

如果没有实践过 Scrum 或 XP,我也推荐阅读,但我认为可能效用不大。

我的体会是,在具备两种开发模式的实践经验、遇到并解决了不少团队问题后再来读这本书会更有收获。这两种开发模式是:

  1. 传统软件开发模式,比如迷你瀑布、迭代增量式、想当然尔“敏捷”。
  2. 有纪律的敏捷开发模式,比如在项目管理上用 Scrum 的同时把 XP 应用在软件工程实践中。