Welcome

首页 / 软件开发 / 数据结构与算法 / 敏捷项目估算之故事和点数

敏捷项目估算之故事和点数2014-03-29 infoq David Morris引言

当你要雇一位漆工来装饰你的房子,或者一位修理工来修你的车时,你会要他们先给个估算,对吗? 你需要知道大概会花多少钱,需要多长时间。这是常识。

然而经验告诉我们什么?初始的估算和最终的账单有多大差距?很有可能漆工会发现有松动的石膏需 要铲除,墙面需要修补和重新粉刷;修理工一定会发现要让你车子重新上路还有些其它的问题要解决。 在1951年的《纽约客》杂志中有这样一幅漫画,Syd Hoff画了一个修理工对他的客户说:

“当然,那不过只是个估算,实际的花费一定会更多”

如果漆工或修理工告诉我们的这些问题还不是非常紧迫,我们可以选择暂时不处理…… 然而,通常的情况是,我们会觉得不得不修复那些额外的问题。谁会想住在一个可能墙面受潮的房子里 ,或者开着一辆有可能方向盘失灵的车呢?

那我们怎么解决这样的问题呢?常见的做法就是我们坚持要工人给一个全面的、确定最终价格的估算 ,也就是通常我们叫的“报价单”,这样工人就会花更多心思用更长的时间来进行更准确的 估算。然而现实中,无论他们如何用心努力,终究还是无法预知到那些意想不到的问题。

在项目中,我们面临同样的问题

传统上,项目经理往往会致力于创建很详细的估算,这个估算从财务的角度要经得起推敲。当然这样 的估算是基于能够预见的情况再加上针对“已知的未知因素”所设的应急预算 …… 然而就像Donald Rumsfeld的名言所说“有一些我们未知的未知因素 ——有些事情我们根本不知道我们不知道”。就像上面那些商人,我们永远无法预知那 些意想不到的情况。

我们花越长的时间来创建详细的估算,麻烦却越多。我们可以把详细的估算看作是一个绑定报价,一 个不同于真正交付价值的目标,它使得我们的注意力都放到能在协议的日期和成本内交付一些东西 ——任何东西,无论它的价值高低。

在每次实施后的回顾评审中,初始估算和实际之间的差距总是让我们备受打击,然后告诉我们自己下 次再努力些。爱因斯坦曾经说过,所谓神经错乱就是“一遍又一遍地做同样的事情,却期望得到不 同的结果”。因此事情不应该这样,一定有其它更好的方法。

敏捷项目显然就不是这样?我们何不就从一个大概的需求范围开始,然后在做的过程中逐渐理清细节 ?嗯,对,但也不全对。在敏捷项目中我们不会去创建详细的估算来束缚自己,但是对将要进行的工作 量的大小有一个认识还是很重要的,这就是为什么……