【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

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

  • 2011-03-29
  • 本文字数:3924 字

    阅读完需:约 13 分钟

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 社区编辑 晁晓娟

2011-03-29 21:392518
用户头像

发布了 109 篇内容, 共 39.7 次阅读, 收获喜欢 13 次。

关注

评论

发布
暂无评论
发现更多内容

React循环DOM时为什么需要添加key

beifeng1996

React

vue为什么v-for的优先级比v-if的高?

bb_xiaxia1998

Vue

【LeetCode】使括号有效的最少添加Java题解

Albert

LeetCode 10月月更

【SSM】SpringMVC系列——SpringMVC概述

胖虎不秃头

spring ssm 10月月更

2022前端培训学习过程中需要掌握哪些技术点?

小谷哥

大数据培训靠谱吗?

小谷哥

【Nacos源码之配置管理 一】阅读源码第一步,本地启动Nacos

石臻臻的杂货铺

10月月更 nacso

基于kube-scheduler-simulator编写自己的调度程序

琦彦

k8s 调度 kube-scheduler 10月月更

前端培训怎么系统学习开发技术呢?

小谷哥

React源码解读之任务调度

flyzz177

React

react的useState源码分析

flyzz177

React

Docker下的Nacos环境开发

程序员欣宸

Docker nacos spring cloud alibaba 10月月更

Angular 内容投影出现 No provider for TemplateRef found 错误的单步调试

Jerry Wang

typescript Web 前端开发 angular 10月月更

React的useLayoutEffect和useEffect执行时机有什么不同

beifeng1996

React

Collections之Arraylist源码解读(四)

知识浅谈

ArrayList 10月月更

【SSM】Spring系列——AOP面向切面编程

胖虎不秃头

spring ssm 10月月更

从React源码来学hooks是不是更香呢

goClient1992

React

Vue.$nextTick的原理是什么-vue面试进阶

bb_xiaxia1998

Vue

【SSM】Spring系列——Spring集成MyBatis

胖虎不秃头

spring ssm 10月月更

react源码中的hooks

flyzz177

React

vue面试之Composition-API响应式包装对象原理

bb_xiaxia1998

Vue

web前端开发技术培训机构怎么选

小谷哥

几个常见的js手写题,你能写出来几道

helloworld1024fd

JavaScript

Baklib知识分享|企业文档管理的一些策略

Baklib

深入React源码揭开渲染更新流程的面纱

goClient1992

React

你是怎样解决跨域问题的?-面试必问

loveX001

JavaScript

同事嫌我改Bug慢,原来是没掌握这些代码Debug技巧

慕枫技术笔记

debug 后端 10月月更

手写现代前端框架diff算法-前端面试进阶

helloworld1024fd

JavaScript

Goland嗖嗖的: 快捷键,自动生成代码等效率小技巧

琦彦

Go goland 10月月更 live template

java开发技术培训应该怎么学习呢

小谷哥

【Nacos源码之配置管理 二】Nacos中的事件发布与订阅--观察者模式

石臻臻的杂货铺

nacos 10月月更

阅读者(八):硝烟中的Scrum和XP_研发效能_张逸_InfoQ精选文章