勿以器御心 ——Scrum和Kanban

工具=用于完成任务或达成目的的任何东西

过程=工作方式

Scrum 和看板都是过程工具,它们讲的是做哪些事情能够在一定程度上帮助你提高工作效率。Java 也是工具,它让编程更加简单。牙刷也是工具,它让你够得到牙齿,方便清洁。

比较是为了更好地理解,而不是评判优劣

刀叉哪样更好?

这个问题很没意思,不是么?上下文不一样,答案也就不一样。吃肉丸最好用叉子;切蘑菇最好用刀子;敲桌子用哪个都行;吃牛排就得同时上阵;吃米饭的话……唔……有人喜欢用叉子,有人就更喜欢用筷子。所以在比较工具的时候得谨慎一些。比较是为了更好地理解,而不是评判优劣。

工具都不是全面的,也都不是完美的

跟所有的工具一样,Scrum 和看板既不完美,也不全面。它们没有把需要做的事情全都告诉你,只是给了一些明确的约束和指导。比如说,Scrum 的约束是固定时长的迭代和跨功能团队,看板的约束是要有可见的板,队列大小要有限制。

有意思的是,工具的价值恰恰在于它限制了你的选择。如果有一款过程工具,让你什么事情都能做,那它就没多大用了。我们管这种工具叫做“做啥都行”,或者美其名曰“做正确的事”。“做正确的事”这个过程肯定管用。它就是银弹!要是没生效,那肯定是因为你没按照这个过程工作 :o)

使用恰当的工具可以帮助你成功,但不能确保成功。人们很容易把项目成败跟工具成败弄混。

• 有一款伟大的工具,项目可能成功。

• 有一款差劲的工具,项目可能成功。

• 有一款差劲的工具,项目可能失败。

• 有一款伟大的工具,项目可能失败。

Scrum 比看板更规范

我们可以从每个工具都有哪些规则的角度来进行比较。规范性指的是“要遵守更多的规则”,适应性指的是“要遵守的规则较少”。在100%规范性的情况下,你就根本不用动脑子了,不管做什么事情都按规则行事;而100%的适应性就意味着做什么都行,没有任何规则约束。你肯定能看出来,这两种极端都是很荒谬的。

敏捷方法有时被称作轻量级方法,主要原因就在于它们不如传统方法那么规范。敏捷宣言的第一条就是“个体和交互胜过过程和工具”。

Scrum 和看板都是适应性很强的,但相对而言,Scrum 更规范一些。Scrum 多了些约束,少了些选择。比如Scrum 要求使用有固定时长的迭代,但看板没有。

下面从规范性和适应性的角度来比较一些工具:

勿以器御心 ——Scrum和Kanban_第1张图片

RUP 的规范性相当强──它有30 多种角色,20 多种活动,70 多种工件;需要学习的东西不胜枚举。当然,你肯定不会全都用上,为自己的项目选一个合适的子集就行了。但不幸的是,操作起来可是颇有难度。“唔,我们会需要配置审计决定这个工件么?我们会需要变更控制经理的角色么?还定不下来啊,最好还是先留着吧。”这可能就是为什么RUP 比起敏捷方法来──例如Scrum 和XP──用到最后往往令人不堪重负了。

XP(极限编程)比Scrum 又规范一些。它囊括了Scrum 的大部分内容,还多了很多相当具体的工程实践,例如测试驱动开发和结对编程。

Scrum的规范性比XP 弱,因为它没有规定任何具体的工程实践。但它又比看板规范,因为它规定了迭代和跨功能团队之类的东西。

Scrum 和RUP 的主要区别在于,RUP 给你的东西太多了,你得自己把不需要的东西去掉;而Scrum 给你的东西太少了,你得自己把需要的东西加进来。

看板几乎对任何做法都是开放的。它仅有的约束就是将流程可视化限制在制品。它离做什么都行只有几步之遥,但仍有令人惊异的力量。

别把自己绑在一种工具上!

把工具搭配着用,用在合适的地方!我无法想象几乎不用XP 的Scrum 团队还能成功。很多看板团队也在做每日立会(Scrum 实践)。有些Scrum 团队也把backlog 条目写成用例(RUP 实践),还会限制队列大小(看板实践)。只要有用就行。

宫本武藏曾说过(17 世纪的著名武士,以二刀流闻名于世):

勿以器御心 ——Scrum和Kanban_第2张图片

不过我们还是要关注每样工具有哪些约束的。假如你在用Scrum,又决定不用固定时长的迭代(或是其他任一款Scrum 的要素),就不要说你在用Scrum 了。Scrum 本身已经足够浓缩了,如果你去掉一些东西,然后还叫它Scrum,那这个词就失去了意义,只会带来困扰。你可以给它起个别的名字,比如“Scrum 衍生品”,或者“Scrum 子集”,要不就“Scrum 似是而非”也行。:o)

【be_slow点评】工具是死的,人是活的,敏捷开发中最重要的是人而不是工具,过分迷信工具就犯了机械教条主义错误。不管你用不用工具,用什么样的工具,还是自创工具,还是从各种工具中都偷出一点来搞个大杂烩,只要能又快又好的完成项目,这些都不重要。

你可能感兴趣的:(勿以器御心 ——Scrum和Kanban)