敏捷项目管理之计划扑克游戏

有效的估算是软件开发人员在工作中面临的最严峻挑战之一。无论团队规模如何,他们都需要在整个团队中定义,评估和分配工作。随着团队的扩大,围绕计划和评估工作养成良好的习惯变得越来越重要。缺乏计划和估计会降低对程序的信心,破坏团队与业务之间的关系,并使每个人的开发工作更加困难。


小组估计与个人估计的准确性

根据对软件项目实验中个人和小组之间的工作量估算准确性的一些研究。来自同一公司的20位软件专业人员分别估计了实施同一软件开发项目所需的工作量。参与者具有不同的背景和角色,并且以前已经实施过软件项目。此后,他们组成了五个小组。每个小组都通过讨论和合并其中的知识来达成一个估计。

结果–基于小组讨论的估算比单个估算更为准确。


什么是规划扑克?

规划扑克(也称为Scrum扑克)是一种基于共识的,估算的游戏化技术,主要用于估算软件开发中的工作量或开发目标的相对规模。

敏捷计划扑克

Scrum计划扑克

规划扑克的步骤

  1. 要启动扑克计划会议,产品所有者或客户应阅读敏捷的用户故事或向估算者介绍功能。
    例如:“客户登录到预订系统”
    “客户输入酒店预订的搜索条件”
  2. 该小组的团队成员通过在不显示其估计值的情况下正面朝下打牌来进行估计(斐波纳契值:1,2,3,5,8,13,20,40)
  3. 卡同时显示
  4. 然后讨论估计值,并解释高和低估计值
  5. 根据需要重复,直到估计收敛
    Scrum Planning 扑克步骤
    通过以这种方式隐藏数字,小组可以避免锚定的认知偏差,因为大声说出的第一个数字为后续估计提供了先例。

敏捷估计–相对vs绝对

估计不过是有根据的猜测。我们利用手头的所有知识和经验来估算所需的时间。因此,为什么不将其与之前完成的工作项目进行比较,而不是分别查看每个新工作项目?对于人类而言,与类似物品相关联要比猜测事物的实际大小容易得多。

例如,它是否更接近这个很小的东西?还是更像这个正常尺寸的物品?还是真的像我们上个月完成的一件作品那样巨大?进行相对估计不仅会减少估计工作所花费的时间,还将大大提高估计的准确性。

我们的大脑无法进行绝对估算;我们总是把我们需要估计的新事物与我们已经知道的事物联系起来。

斐波那契数列与规划扑克

Planning Poker使用Fibonacci序列为功能或用户故事分配点值。斐波那契数列是数列的数学序列,在13世纪被引入,用于解释自然的某些形成方面,例如树木的分支。通过将两个先前的数字相加得到序列中的下一个值,以生成序列:0、1、1、2、3、5、8、13、21,依此类推。

为了进行敏捷估计,已更改了一些数字,从而形成了以下系列:1、2、3、5、8、13、20、40、100,如下图所示:
斐波那锲顺序与规划扑克
下表中列出了分配给扑克牌的积分的解释:

扑克节分解释,敏捷项目管理


估算中的点数与小时值

那么,为什么要使用故事点而不是时间值呢?故事指点使团队可以专注于完成工作的复杂性和时间。团队将新工作与他们已经完成的工作进行比较。他们将新任务的复杂性与过去的挑战进行了比较,并对难度和所需时间进行了排名。

例如,我们通常不会考虑“经商成本”。具有时间值的会议,电子邮件,代码审查等。但实际上,所有这些都是我们日常生活中必不可少的做法,但实际上并不算作“工作”。故事点将软件开发工作与相关的物流工作项隔离开,因此使用基于点的估计比基于小时的方法更一致。