原文链接 https://www.mountaingoatsoftware.com/blog/why-getting-to-done-is-so-important
翻译已经获得Mike Cohn先生的授权
图片文字:一个好的Scrum团队认识到,完成5项产品待办项比产生10项半成品更好。
在每个迭代结束交付「已完成的功能特征」是敏捷的一项重要原则,这里是该原则的原因。
Scrum的一项宗旨就是完成工作的价值。在每个Sprint开始时,团队在产品待办项中选取部份工作,并且以完成他们为目标。
一个好的Scrum团队认识到,完成5项产品待办项比产生10项半成品更好。
为什么呢?
更快的反馈
强调「完成」的原因之一,是因为它可以缩短反馈环路。当某项工作被完成了,用户就可以接触到并且使用它。因而用户可以提供更好的反馈。
即使在开发功能阶段,团队也应该尽可能早的从用户那里获取反馈。相比半成品,已完成的功能特征可以让反馈更加容易、更明智且更可靠。
更快的回报
第二个原因是,已完成的功能特征可以被售卖,而半成品不可以。
所有的项目都代表一项经济投资——投入时间和金钱,用以开发功能特征。
一个组织无法通过交付半成品来收回其投资成本。一个具有10项半成品的产品,可以被认为是仓库中的库存而已,在每个功能特征没有完成之前,这些库存都不可以被售卖。
相反,拥有5项已完成的功能特性的产品是可以被售卖的。这个时候,投资就已经开始得到回报了。
进度难以估算
第三个原因是,工作的进度难以估算。
假设一种情况,你问一个研发人员工作完成了多少,研发人员回答你“90%完成了”。
你觉得这个答案很棒,因为那项工作基本上是完成了。一周后你向相同的人,问了相同的问题。此时你希望该功能特征已经开发完成,也就是100%完成。但是该研发人员依然告诉你“90%完成了”。
为什么会这样?
这是因为问题的规模已经增加了。当你第一次询问时,研发人员确实完成了他/她能看到的问题的90%。一周后,该研发人员可以看到更多的问题,所以工作的规模增加了,而研发人员依然充满信心的认为已经完成了90%的工作。这就导致了我们所熟知的“90%综合征”:前90%的代码要花费90%的开发时间,剩余的10%的代码要再花费90%的开发时间。
未开始 & 已完成
在敏捷中,为了避免90%综合征,我们在每个迭代末我们都要确认,所有的工作要么处于「未开始」,要么处于「已完成」状态。
我们很擅长知道哪些事情没有开始、哪些事情已经完成,但我们极度讨厌任何中间状态的事务。
你的经验?
你的团队有过90%完成这种问题么?你是如何克服这些问题的?请在下方的讨论区与我们分享你的想法。