为什么Fibonacci系列用于敏捷计划扑克?

时间:2012-02-20 13:55:01

标签: math statistics agile agile-project-management

在估算敏捷软件开发中用户故事的相对大小时,团队成员应该估计用户故事的大小为1,2,3,5,8,13 .......所以估计的值应该类似斐波纳契系列。但我想知道,为什么?

维基百科上http://en.wikipedia.org/wiki/Planning_poker的描述含有神秘的句子:

  

使用Fibonacci序列的原因是为了反映固有的   估计较大项目的不确定性。

但为什么大项目存在固有的不确定性?如果我们减少测量,那么不确定性是否更高,这意味着如果更少的人估计相同的故事? 即使较大的故事中的不确定性更高,为什么这意味着使用Fibonacci序列?它有数学或统计学原因吗? 否则使用Fibonacci系列进行估算对我来说就像CargoCult科学一样。

6 个答案:

答案 0 :(得分:70)

Fibonacci系列只是指数估计量表的一个例子。使用指数尺度的原因来自信息理论。

我们从估算中获得的信息比估算的精度慢得多。实际上它是一种对数函数。这就是较大项目的不确定性较高的原因。

在实践中确定指数标度(标准化)的最佳基数是困难的。对应斐波那契量表的基数可能是也可能不是最优的。

以下是对数学证明的更详细解释:http://www.yakyma.com/2012/05/why-progressive-estimation-scale-is-so.html

答案 1 :(得分:40)

在Fibonacci序列的前六个数字中,有四个是素数。这限制了将任务平均分解为较小任务以使多个人并行工作的可能性。这样做可能会导致误解,即任务的速度可能与工作人员的数量成比例。 2 ^ n系列最容易受到这样的问题的影响。事实上,斐波那契序列迫使人们逐一重新估计较小的任务。

答案 2 :(得分:17)

根据this agile blog

  

“因为它们的增长速度与我们人类能够感知到幅度上有意义的变化的速度大致相同。”

是的。我认为这是因为它们增加了一种合法性(Fibonacci!数学!)本质上是一个非常高级的,早期规模(不是范围)练习(它确实有价值)。

但是你可以使用T恤尺码来获得相同的效果......

答案 3 :(得分:15)

你肯定想要一些指数的东西,这样你就可以用一个恒定的相对误差表达任何数量的时间。您估计的精确度很可能与您的估计成正比。

所以你想要的东西:    a)整数    b)指数    c)轻松

现在为什么斐波那契代替,1 2 4 8? 我的猜测是因为斐波那契变慢了。它在goldratio ^ n,goldratio = 1.61 ......

答案 4 :(得分:6)

Fibonacci序列只是项目策划扑克中使用的几个序列之一。

如果您的数字过于“真实”,很难准确估算大型工作单位,并且很容易陷入数小时与日期讨论的困境。

我喜欢http://www.agilelearninglabs.com/2009/06/story-sizing-a-better-start-than-planning-poker/的解释,即Fibonacci系列代表一组数字,我们可以直观地将它们区分为不同的数量。

答案 5 :(得分:4)

我使用Fibonacci有几个原因:

  • 随着任务变得越来越大,细节变得越来越难以理解
  • 任务估算是团队中任何人完成任务的小时数
  • 并非团队中的每个人都有相同的经验 一项特殊的任务,也增加了不确定性
  • 人类会因为更大且可能更复杂的任务而疲劳。 虽然复杂的任务是计算机的双倍时间 对于开发者来说可能需要更多的时间。

当我们将所有不确定因素加起来时,我们不确定实际应该达到的小时数。如果我们能够衡量这个任务是否比我们已经估计的另一个更大/更小,那么它会变得更容易。随着我们增加任务的规模/复杂性,不确定性的影响也会被放大。我很乐意估计13个小时的任务,这个任务似乎是我之前估计的5个小时的两倍。