敏捷开发: 计划扑克是什么?

敏捷开发: 计划扑克是什么?

(英文原文)

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

群体与个体估计的准确性

根据一项关于软件项目实验中个人和小组之间努力估计准确性的研究。来自同一公司的20名软件专业人员分别估算了实施相同软件开发项目所需的工作量。参与者有不同的背景和角色,软件项目以前已经实施过。之后,他们组成了五个小组。每个小组通过讨论和结合他们之间的知识来商定一项估计。

**结果 -**基于小组讨论的估算比个人估算更准确。

什么是计划扑克?

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

Scrum规划扑克

Scrum规划扑克

规划扑克的步骤

  1. 要开始扑克计划会话,产品所有者或客户会读取敏捷用户故事或向估算人员描述功能。
    **例如:
    **“客户登录预订系统”
    “客户输入酒店预订的搜索条件”
  2. 该组的团队成员通过面朝下的方式打出编号卡进行估算而不显示他们的估计值(斐波纳契值:1,2,3,5,8,13,20,40)
  3. 卡片同时显示
  4. 然后讨论估计值并解释高低估计值
  5. 根据需要重复,直到估计收敛

Scrum规划扑克步骤

Scrum规划扑克步骤

通过以这种方式隐藏数字,该组可以避免锚定的认知偏差,其中大声说出的第一个数字为随后的估计设定了先例。

敏捷估计 – 相对与绝对

估计只不过是一个受过良好教育的猜测。我们利用手头的所有知识和经验来猜测它将花费的时间。因此,不是单独查看每个新工作项,为什么不将它与之前完成的工作项进行比较?人类更容易与相似的物品相关,而不是猜测事物的实际大小。

例如,它接近这个非常小的东西吗?或者它更像这个正常大小的项目?还是像我们上个月完成的那项工作一样真的很大?进行相对估算不仅可以减少估算工作所花费的时间,还可以大大提高估算的准确性。

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

斐波纳契序列和规划扑克

规划扑克使用Fibonacci序列为特征或用户故事分配点值。Fibonacci序列是13世纪引入的数学系列数字,用于解释自然的某些形成方面,例如树的分支。通过将前两个数字相加来生成序列,以获得序列中的下一个值:0,1,1,2,3,5,8,13,21等。

出于敏捷估计的目的,一些数字已经改变,导致以下系列:1,2,3,5,8,13,20,40,100,如下图所示:

斐波纳契序列和规划扑克

斐波纳契序列和规划扑克

分配给扑克牌的解释点如下表所示:

解释
0 任务已经完成。
1/2 任务很小。
1,2,3 这些用于小任务。
5,8,13 这些用于中型任务。
20,40 这些用于大型任务。
100 这些用于非常大的任务。
<无穷> 任务是巨大的。
不知道完成这项任务需要多长时间。
<一杯咖啡> 我饿了?

估计中的故事点 vs 小时值

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

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