在我们的迭代计划中,我们经常发现自己处于与这个人相同的位置——如果你对编程任务没有经验如何估算。
我绝对赞成在能够给出合理估计之前进行原型制作。但是对于需要一些架构和设计的任何事情都适用——但我不太舒服在短时间内完成所有这些工作。
基本思想是尽可能多地确定您有信心的任务,并像平常一样对其进行估计。对于那些您不确定的领域,应该确定两种“类型”任务:调查和实施。
调查任务是您不确定的工作的简要描述,例如“调查如何将控件X绑定到数据”。为这些任务提供估计。
实施任务是传统的粗略猜测,可能基于分配的故事点数,您认为实现该功能需要多长时间。
我绝对赞成在能够给出合理估计之前进行原型制作。但是对于需要一些架构和设计的任何事情都适用——但我不太舒服在短时间内完成所有这些工作。
基本思想是尽可能多地确定您有信心的任务,并像平常一样对其进行估计。对于那些您不确定的领域,应该确定两种“类型”任务:调查和实施。
调查任务是您不确定的工作的简要描述,例如“调查如何将控件X绑定到数据”。为这些任务提供估计。
实施任务是传统的粗略猜测,可能基于分配的故事点数,您认为实现该功能需要多长时间。
在冲刺过程中,当调查任务完成后,开发人员应该处于一个更好的阶段,他们对正在进行的事情有了更好的了解。此时可以确定“适当”的任务,它们取代了实施占位符。另外,在这个阶段可能会确定进一步的调查任务,循环继续。
在上述示例中,我们从一个7小时的调查任务开始,估计需要14小时的实现任务。完成第一个调查任务后,将确定任务1、2和3,并对其进行某种程度的估计,其中任务3是另一个调查任务,从中在以后的阶段确定任务4和5。如您所见,最初的实施估计交付功能需要14小时,但实际上至少需要4 + 7 + 3 + 4 + 2 = 20小时。比最初的估计多了三分之一。
alt text http://www.duncangunn.me.uk/myweb/images/estimate.png
欢迎所有想法 - 我的直觉告诉我这会成功 - 我对还是错?
干杯!