本站首页 返回顶部 关于博主

在Scrum中,怎样估算用户故事的工作量

PDF版

说明

在做迭代计划时,Product Owner负责为用户故事(以下简作US)设置优先级,团队成员按照优先级对US逐一估算工作量,直到所有US的工作量达到整个团队的容量。怎样计算团队的容量,怎样估算US的工作量,这都是迭代计划的内容。本文将会重点讲解在做迭代计划时,怎样估算一个US的工作量。


人天

在估算工作量之前,我们先引入工作量的单位:人天。

一个人在不受外界干扰的情况下的,一天的成果输出,我们称之为一人天的工作量。一般而言,一天按照工作6小时计算。特别强调,所谓不受干扰,是一种理想状况,这个人整天倾力工作在US上,不开小差,不被同事打断,不开会等等。这是一种理想状况,实际情况并非如此。

在计算团队的容量时,一位成员工作5天,他的容量一定小于5人天,需要折算。至于怎样折算,这是团队容量的话题,以后可以再写一篇文章详细阐述。


怎样估算工作量

全员参加

在估算工作量时,处于项目计划阶段,US还没有分配owner。此时要求全员都理解US的功能需求,并估算时间。否则到了实现阶段再去熟悉就会严重拖累团队的进度。

团队成员各有所长,没有关系,建议以团队中一个中等水平的成员为基准进行估算。

在估算工作量时,最好先拿出一个US作为参照。这个基准US最好工作量在1 ~ 2人天,大家对它都很熟悉。在估算时其他US,以它为参照,所需要的工作量是参照US的多少倍,基本上能确定US的工作量大小。

如果团队刚才运行Scrum,初期估算可能会不那么准确。没关系,这是团队成熟的毕竟之后,以后估算会越来越准确的。

团队人员有人对当前US熟悉,或者有人在整个团队最权威。如果这类成员先估算,整个团队容易被他影响。让整个团队成员独立思考,往往考虑会更全面。

为了避免一个人把整个团队带偏的情况发生,我们引入了计划纸牌。

计划纸牌

图1 估算工作量的纸牌

 

每个人都会得到如上图(图1)所示的 13 张卡片。在估算故事的时候,每个人都选出一张卡片来表示他的时间估算(以故事点的方式表示), 并把它正面朝下扣在桌上。所有人都完成以后,桌上的纸牌会被同时揭开。这样每个人都会被迫进行自我思考,而不是依赖于其他人估算的结果。

如果在两个估算之间有着巨大差异,团队就会就此进行讨论,并试图让大家对故事内容达成共识。他们也许会进行任务分解,之后再重新估算。这样的循环会往复进行,直到时间估算趋于一致为止,也就是每个人对这个故事的估算都差不多相同。

重要的是,我们必须提醒团队成员,他们要对这个故事中所包含的全部工作进行估算。而不是“他们自己负责”的部分工作。测试人员不能只估算测试工作。

纸牌的数字

这是因为,一旦时间的估算值比较大,其精确度就很难把握;这样做就可以避免人们对估算精确度产生错误的印象。如果一个故事的估算值是差不多20 个故事点,它到底应该是20 还是18 还是21,其实无关紧要。我们知道的就是它是一个很大的故事,很难估算。 所以20 只是一个粗略估计。

另外,你也不能搞那种把 5 和2 加起来得到7 的把戏。要么选5,要么选8,没有7。

有些卡片比较特殊:

  •  0 = “这个故事已经完成了”或者“这个故事根本没啥东西,几分钟就能搞定”。
  •  ? = “我一点概念都没有。没想法。”
  • 咖啡杯 = “我太累了,先歇会吧。”

更准确的估算

在计划纸牌里,纸牌前几个数字遵循斐波拉切数列 1、2、3、5、8、13,再到了后面就是20、40、100。随着US的增大,超过20就已经很不准确了,而20、40、100这三个数字只是为了描述US的相对工作量而已。

对于超过20的US,我们应该把它拆分成更小的US,使它估算更准确。另外一方面,也能避免这个大US没有完成导致当前Sprint/Interation的很大功能无法交付的情况。
 

参考资料




请你留言