Scrum 无法产生预期收益的最常见原因之一,是组织过于随意地打断 Sprint。
我理解为什么会发生这种情况: “客户提出了一个重要需求。竞争对手有了新动作。领导者有了一个新想法。生产环境出现了问题。两周前看起来很重要的事情,现在似乎不如今天早上突然出现的事情重要。”
敏捷方法帮助组织响应变化,但敏捷并不意味着变化是没有成本的。
想象一下在餐厅点晚餐: 你对服务员说:“我要鸡肉。”十秒后,你看到另一桌上了一道鱼,于是说:“其实,我想换成鱼。”
这没什么大不了。这个变化可能几乎没有成本。但假设你的沙拉已经上桌,厨房也已经开始做你的鸡肉了。现在改成鱼,可能就会有成本。如果服务员已经把鸡肉端到你面前,而你说:“不,我要鱼。”这时成本就很明显了。鸡肉已经做好了。有人已经完成了工作。餐厅可能不会高兴。你可能无论如何都需要为它买单。
Sprint 中也会发生同样的事情:早期改变方向,成本可能很低。后期改变方向,成本就会更高。当团队已经完成了大量工作之后再改变方向,成本可能会非常高。而且,如果这种情况反复发生,被丢弃的工作是成本的一部分。
团队会“有意的”开始等待被打断:他们会犹豫是否要全身心投入当前工作,因为他们已经学会了:工作随时可能变化。他们会开始怀疑产品负责人是否已经把 Sprint 中需要承诺的事情想清楚。他们会失去对 Sprint 目标的信任。最终,他们会失去对 Scrum 本身的信任。
这时,你就会听到人们说:“如果所有事情反正都会变,那我们为什么还要做这些 Scrum 会议?”这是一个合理的问题。
Scrum 应该让变化的取舍变得可见。当一个真正紧急的变化需要进入 Sprint 时,要把它摆到台面上来。产品负责人、团队和 Scrum Master 应该进行一次对话,即使这次对话只需要两分钟。
可以问:“我们能否在不影响 Sprint 目标的情况下容纳这个变化?”
如果可以,就继续推进。如果不可以,这个变化仍然可能值得做。但此时,取舍就需要被明确说清楚。可能需要把其他事项拿出来。可能需要告知利益相关者:原本预期交付的某个事项将无法交付。Sprint 目标可能需要重新协商。在少数情况下,Sprint 甚至可能需要被取消。
这些都是合理的选择。假装紧急的新工作可以在没有任何后果的情况下被加入,只会破坏信任。
你可以尝试这样做:在下一个 Sprint 中,把每一个重大的 Sprint 中途变化都明确化。不要争论是否允许变化,而是询问这个变化的成本是什么,以及团队应该做出什么取舍。
—Mike Cohn