在许多企业中,把估算和承诺等价看待是普遍现象。开发团队(无论是否是敏捷团队)根据可用的资源和期望交付的功能,做了一个估算,估算得出需要花费7个月。团队向他们的管理者提供了这个估算,管理者又将这些估算传递给他们的副总,副总又将这些告诉客户。在一些情况下,估算在这个过程中被削减了,留给团队的是一个“拔高了的目标”。这里的问题不在于团队的7个月的估算是对还是错。问题的关键是估算被转变成了承诺。 “我们估计这将需要7个月”被转变成了“我们承诺在7个月完成”。估算与承诺都很重要,但它们应该被视为不同的活动。
今天晚上,我女儿要做游泳练习,我要接她回来。我问她什么时候结束(我们定义的结束是指完成游泳,淋浴,并准备好回家),她说,“我应该在5点15分结束”,这是她的估计。如果我要一个确定的承诺——按照制定的时间,站在游泳馆外面,否则我就自己回去,不带上你,她可能会承诺在5点25分,给她自己留一些时间去处理任何可能的异常情况,比如练习时间稍微长了一些,教练的手表慢了5分钟,淋浴排队等等。为了确定一个她可以承诺的时间,我的女儿仍然要做一个估算,但不是直接把她的估算告诉我,她会把这个转换为一个她可以承诺的最后期限。
不要把估算当成了承诺。要谨记估算和承诺的区别,并且把这两种活动分开,必要的时候教育客户和管理层意识到这一点。了解估算和承诺更多相关的介绍,在Mike Cohn的《Scrum敏捷软件开发》一书中有更多的介绍。
作者: Mike Cohn
原文链接:http://blog.mountaingoatsoftware.com/separate-estimating-from-committing