阅读者(八):硝烟中的 Scrum 和 XP

  • 张逸

2011 年 3 月 29 日

话题:敏捷Book Review架构文化 & 方法

InfoQ 中文站推出的迷你书《硝烟中的 Scrum 和 XP》(电子版,免费下载),或许是获得最多赞誉的一本。书中作者 Henrik Kniberg 讲述了他在一年的时间里,带领 40 人的团队实施 Scrum 的过程。正是这种结合项目实践讲述敏捷的方式,使得 Scrum 的实施真正落到了实处,具有良好的实践价值与现实意义。在 QCon 2009 北京,本书作者 Henrik Kniberg 亲临会场,分享了他实施 Scrum 的真知灼见,而本书的迷你版也在会场受到了广泛追捧。在广大读者的强烈要求,以及 InfoQ 中文站的推进下,本书的纸质彩版现已由清华大学出版社出版(原价 28 元,折扣价 21.75 元,当当网卓越亚马逊互动出版网)。为此,我们组织了 InfoQ 中文站的编辑,对本书发表了自己的阅读意见。


书名很酷炫,内容更精彩。在运用 Scrum 的时候,我发现有此书在手,犹如迷途中的一点灯光,再也不害怕我们的 Scrum 过程会走在错误的道路上。当我们对 Sprint 计划的制定而争执不休时,翻阅此书,总能得到恰如其分的指导。例如,遵循本书的建议,我们在会议室的墙上粘贴了标识了各自重要程度的索引卡,我们像一群手艺人一般,一边讨论或者争执,一边运动着双手,挪动着索引卡的顺序。

在我第一次担任敏捷教练时,本书给了我足够多的信心。我觉得 Henrik 讲出了在我心中处于混沌状态的敏捷方法。我似有所悟,却又说不清道不明,美其名曰“只可意味不可言传”,不过是抓不住本质的说辞而已。当我阅读本书时,看到精彩之处,常常会赞叹“妙哉,妙哉,我也是这样想的。”细细思索,才发觉我之所想其实还停留在朦胧的意识,说不出来,是因为自己缺乏足够多的敏捷实践。例如,书中提到“把测试人员放到 Scrum 团队来提高质量”,Henrik 写道:

在 Sprint 计划会议中,进行到拆分故事阶段,团队会把注意力放在编程性任务上,但一般在 sprint 计划阶段花上一些时间来找出非编程性任务,测试先生就有机会来做出大量贡献,即使他不会编程,当前也没有测试工作要做。”



妙啊!在我们实施 Scrum 的项目中,因为公司人员组织安排的缘故,我们不是经常看到测试部的那帮家伙们在项目开始之初无所事事么。就这么干!Henrik 教会了我们一个妙方。

我在尝试实施 Scrum 的过程中,总感觉 Scrum 过程的定义更偏向项目管理,缺乏足够具体的实践方法。它是一个开放的管理框架,重心在于项目管理,而不是指导团队成员如何进行开发。这既是 Scrum 的优点,因为它很灵活,能够适应大多数场景,也可以兼容并包地引入其他方法学所提倡的实践;同时也是 Scrum 存在的固有缺陷,使得它难以被实践。如果没有一位优秀的 Scrum Master,而团队成员又缺乏自我组织和管理的能力,就会让开发过程变得一团糟,团队成员将会无所适从。在实施 Scrum 时,我曾尝试着将敏捷建模和 XP 结合在 Scrum 过程中,取得了不错的效果。这一结合理念正来自于本书的触发。Henrik 在本书第 13 章中介绍了如何组合使用 Scrum 和 XP。XP 中很多好的实践,例如结对编程、测试驱动开发、持续集成等,被有机地融合在 Scrum 中,每日的开发工作开始变得更加有效。或许,这并非 Henrik 的独家创意,但我却是在本书中发现了各种敏捷方法相互融合的可能。

说到本书,不得不提本书的译者。李剑的翻译,可谓行云流水,绝妙好辞如行山阴道,应接不暇。文字亦庄亦谐,收放自如。让我们来看看这段或许是史上最强的一段翻译:

我已经能听到你的抱怨了:“那不是闲的蛋疼么?你丫想想,得有多少事影响生产率啊?有那么一群傻拉吧唧的程序员、原始估算能错到姥姥家去、范围变化了连个响都听不到,还有,鬼知道从哪个旮旯里就能出来个东西影响我们,这种事不是太多了么!”

卖糕的,真是很操蛋的翻译哦。是哗众取宠么?或许是,可是纵观全书,文字实在太流畅了,没有西化的痕迹,只有中国风的意趣。行文绝无生涩之感,没有那种“隔”的感觉。我曾经与本书的作译者都有过交流。在我的印象中,Henrik 先生就好像敏捷世界中的绝世侠客,善于斩妖除魔,而李剑呢?委实是个妙人。他的“獠牙”和魔女一般的白发造型雷倒了 InfoQ 的一片编辑,最重要的是他的谈吐总是那么的妙趣横生——而本书就是这样的绝妙组合!

InfoQ 中文站架构社区编辑  张逸


作为一位致力于推广敏捷的培训师和咨询师,在向别人解释敏捷的时候,最常见的问题就是“有没有具体实例?”敏捷是一些价值观和原则,Scrum 是简单的软件开发框架。在了解了敏捷是什么和 Scrum 是什么之后,很容易产生“这个东西如何用到我的实际情况当中”的疑问。其实,Scrum 的本意是“不提供解决方案”。对于那些 Scrum 没有定义清楚的地方,需要使用者自己根据实际情况去定义。每个人可以有自己填充 Scrum 的方法,而 Scrum 本身希望使用者在不断的循环中发现问题和解决问题。

这些东西说起来容易。对没有经验的人来说,如何开始实施始终会是个问题。XP 的一些实践对 Scrum 框架是很好的补充,但也无法直接指导初学者上手。

《硝烟中的 Scrum 和 XP》一书,几乎完全是基于实践的!作者用自己丰富的实施经验告诉大家他使用 Scrum 的做法。看起来感觉是一个接一个的实战故事,把理论化的东西融入了日常工作中。从 Sprint 前的准备,到一个 Sprint 的具体实施,乃至发布计划和异地团队,都有着非常细节化的描述。这样的细节,在大部分敏捷和 Scrum 图书中是很少看到的。当然,作者也说了,这本书所描述的,不是使用 Scrum 的唯一方法,但是有这样一系列的实例,着实能够很好的帮助初学者更好地理解敏捷、Scrum 和 XP。

那这本书是不是只适合刚刚了解了敏捷理论但想学习具体实践的初学者?不尽然。我本人是在摸索了一年 Scrum 之后才遇到这本书的。书中一些的实例与我之前的想法有共鸣,让我自信我所做的是合理的。比如,如何使用并更新任务板,以及 Scrum 团队中如何做测试。也有许多其他做法让我对当前的做法产生了新的思考。比如,对 Sprint 计划的准备。我在看到这本书之前,并没有对 Sprint 计划有正规的准备时间,所以每次都在计划中碰到这样那样的不和谐因素。在看完之后,我和团队一起专门在 Sprint 计划之前安排了一个小会讨论 Backlog 的内容。还有一些东西,是我之前没有想到的。比如,如何处理固定价格合同。总之,实践过 Scrum 的人,也能从这本书中受益良多。结合自己和别人的经验,更能理解敏捷的本质!

其次,我也曾经向一个对敏捷一无所知的人推荐的这本书。他当时只是觉得当时的开发不高效,希望有更好的方法。当他看完这本书的时候,他完全理解并完全被倾倒了,这就是他在寻找的开发方法!之后,他立马开始使用书里的实践开始 Scrum,之后也逐渐摸索出了很多自己的实践。即使在慢慢接触别的书籍和读物后,《硝烟中的 Scrum 和 XP》始终是他最中意的,简单,好用!

总的说来,《硝烟中的 Scrum 和 XP》是一本对所有敏捷爱好者和实践者都推荐的书,而且它已经使无数人从中受益。在再版之际,希望有更多人能加入到敏捷实战的硝烟中来!

InfoQ 中文站敏捷社区编辑  鲍央舟


上一次看这本书是电子书, 大概是一年以前,从 infoq 网站上下载到我的手机,在城铁上一气呵成像小说一样没几天就看完了,这一来归功于书的内容有意思,但是也要感谢李剑的翻译,能把原汁原味的内容和风格带给国内的读者也是我们的幸运。

当时我的状态是:知道敏捷想实施,也参加了相关的培训,但到底每一步如何去做,实际展开中遇到问题如何选择?真有点摸不清,完全按自己的想法做又不知道对不对;当然敏捷教练是个好方法,非常重要,也能事半功倍,但是在最开始就能拿到预算批准找教练可能有点难,我相信这是很多中小公司的现状,而且请不到好的教练可能结果会更糟糕呢。

这本书解决了我的大部分实际问题:特别是:

  • 我们怎样编写产品 backlog
  • 我们怎样准备 sprint 计划
  • 我们怎样制定 sprint 计划
  • 我们怎样进行每日例会
  • 我们怎样进行 sprint 演示
  • 我们怎样做 sprint 回顾

这些都是实实在在的指引,拿制定 sprint 计划来讲:书中告诉我们,Sprint 计划会议会产生一些实实在在的成果:

  • sprint 目标。
  • 团队成员名单(以及他们的投入程度,如果不是 100% 的话)。
  • sprint backlog(即 sprint 中包括的故事列表)。
  • 确定好 sprint 演示日期。
  • 确定好时间地点,供举行每日 scrum 会议。

看了这一段,在每个 sprint 的开始,对 sprint 计划会如何召开,以及会议的产出一目了然。

再比如一个典型的问题:



如果没有任何事情需要测试,那测试人员该做什么?

这个问题会常常出现。测试先生会说:“嘿,Scrum master,目前没有什么东西需要测试了,那我该做什么呢?”也许团队需要一个星期才能完成第一个故事,那这段时候测试人员该做什么呢?

相信对于无论是测试 / 开发分开的矩阵式团队还是想要成为全功能的团队,都会有这样的问题,在我们怎样做测试这一章里你可以找到作者是如何进行的来参考。

今天本书的中文印刷版拿到手的时候,我刚刚到一个新的地方带新的团队从零开始尝试敏捷。这里之前是传统的矩阵式结构,我希望能通过敏捷帮助团队以及开发的系统进行改善,因为 Scrum 本身是一个非常好的学习模型,每一个 sprint 回顾会议团队都会一起找到要改善的地方并在下一个 sprint 来提高。在给团队里的一些成员进行了敏捷 /Scrum 的培训后,大家看起来有很高的热情,但是仍然用迷惑的眼神看着我,并且直截了当的打断我“请告诉我怎么做!”

如何落地是一个执行力的问题,但也非常需要一个敏捷教练,现在的我也许可以作为教练带着团队来实施,来基于自己的理论和实践经验回答大家的问题,但是一本很好的指引的书,例如本书,我更愿意把它推荐为团队必读。

本书是作者在实施敏捷中遇到了各种问题并且一一解决后逐步丰富经验的结晶,所以如果你的团队实施敏捷中有类似的问题,或者你有了热情和想法还不知道怎么执行,那就赶快去翻翻这本书吧!

InfoQ 中文站 SOA 社区编辑  晁晓娟

敏捷Book Review架构文化 & 方法