为什么斐波那契数列在敏捷规划扑克中使用?[关闭]


94

在敏捷软件开发中估计用户故事的相对大小时,团队成员应估计用户故事的大小为1、2、3、5、8、13...。因此,估计值应类似于斐波那契数列。但是我想知道,为什么?

Wikipedia上对http://en.wikipedia.org/wiki/Planning_poker的描述包含一个神秘的句子:

使用斐波那契数列的原因是为了反映估计较大项目时固有的不确定性。

但是,为什么较大的物品应该存在固有的不确定性?如果我们进行较少的测量,也就是说,如果更少的人估计相同的故事,不确定性是否会更高?即使较大故事中的不确定性较高,为什么还要暗示斐波那契数列的使用呢?是否有数学或统计原因?否则,使用斐波那契数列进行估计对我来说就像是CargoCult科学。


9
可能只是因为斐波那契数列是“很酷的”。任何指数序列均适用。2^n可能会使数字间隔太远,所以为什么不使用斐波那契数列c*phi^n呢?
interjay 2012年

为“很酷” +1。我曾经与程序员合作,他们一直想将奇特性推向斐波那契-一直都是他们的“东西”
KevinDTimm


2
这个问题似乎与主题无关,因为它关于...?
阿德里亚诺·雷佩蒂

Answers:


78

斐波那契数列只是指数估计量表的一个例子。使用指数标度的原因来自信息论。

我们从估计中获得的信息的增长速度远慢于估计的精度。实际上,它是作为对数函数增长的。这就是较大项目不确定性较高的原因。

在实践中,很难确定指数尺度的最佳基数(规范化)。对应于斐波那契量表的基准可能是最佳的,也可能不是最佳的。

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


4
这是我所希望的更深入的解释。感谢您的回答。
asmaier

“[1]一点估计的努力帮助了很多,[A]大力气估计有点帮助”大文章
ptim

40

在斐波那契数列的前六个数字中,有四个是质数。这限制了将任务平均分解为较小任务以使多个人并行处理的可能性。这样做可能会导致误解,认为任务的速度可能与从事此任务的人数成比例。2 ^ n级数最容易受到此类问题的影响。实际上,斐波那契数列迫使一个人一个个地重新估计较小的任务。


7
这是一个有趣的观点。但是,为什么不使用素数系列1,2,3,5,7,11,...代替斐波那契数列来进行估计呢?
asmaier 2012年

2
那是个好主意。实际上,它们发生的频率足够高,只能选择那些粗略创建[1.5-2.0] ^ n序列的序列。斐波那契数显然很容易从头重新创建,但是JIRA之类的工具可以指定任何一组值。
KillerInsect 2012年

5
另一点是估计之间的距离。您估计的时间越长,确定性就越小。3-5和5-7之间是相同的差异,这意味着相同的确定性。但是,当您必须在8到13(较大的差距)之间进行选择时,它将迫使您真正检查自己的确定性。
克里斯(Chris

@asmaier我认为这是因为斐波那契数是指数的,因为素数对于估计故事时通常使用的小样本而言是线性的
icc97

17

根据这个敏捷博客

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

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

但是使用T恤尺码可以得到相同的结果...


1
这个答案与两个月前来自@kaj答案几乎完全相同(引用相同的链接和相同的引号)。
icc97 '16

1
我真的很喜欢这个人引用它的方式。让我立刻明白了。
nishantbhardwaj2002 '16

15

您肯定想要指数级的东西,以便您可以用恒定的相对误差表示任意数量的时间。估算的精度也很可能与估算成正比。

因此,您需要:a)具有整数b)指数c)简单

现在为什么用斐波那契代替1 2 4 8?我的猜测是,这是因为斐波那契的增长速度较慢。在goldratio ^ n中,goldratio = 1.61 ...


3
“估计的精度也很可能与您的估计成正比。” 这是统计学中的规则,还是人类通常会做的事情?如果使用斐波那契数,则假定估计的相对误差约为f(n-1)/ f(n)= 1-黄金比例= 61%。因此,如果估计值为5,人们会认为这意味着大约3的相对误差,那么复杂度的显着增加将仅为8或更高。但是,为什么相对误差假定为约60%?这只是一个经验法则吗?
asmaier 2012年

1
要回答我自己的评论:Mike Cohn(2005年11月)。《敏捷的估计和规划》说:“研究表明,我们最擅长估计落在一个数量级内的事物(Miranda 2001; Saaty 1996)”。
asmaier 2015年

1
Miranda(2001):“使用配对比较改进主观估计”说:“我在同事之间进行了一次非正式调查;来自不同国家,行业和学术界的30人为该量表提供了输入。结果表明,规模与收入之间的对应关系在软件领域中的语言描述比在Saaty的描述中更接近表3所示。” 在此表中,我们看到,如果它是基本大小的125%,则称为“稍大”;如果它是基本大小的175%,则称为“较大”。
asmaier 2015年

1
下一个斐波那契数是前一个斐波那契数的161%,因此在Mirandas表中介于“稍大”和“较大”之间。这项非正式调查似乎是我们使用斐波纳契数的原因,因为它们的比率更接近我们说的更大的意思。
asmaier 2015年

@asmaier我认为您应该将这些注释作为一个单独的答案添加,它们非常好,或者可能链接到PM.SE问题,因为不幸的是,此问题已被锁定。
icc97


4

我使用斐波那契有两个原因:

  • 随着任务的扩大,细节变得更加难以掌握
  • 任务估计是团队中任何人完成任务的小时数
  • 并非团队中的每个人都会对特定任务拥有相同的经验,因此也增加了不确定性
  • 人类会因更大且可能更复杂的任务而感到疲劳。对于计算机来说,虽然两倍完成一次复杂的任务就可以解决,但是对于开发人员来说,可能要花更多的时间。

当我们将所有不确定因素加总时,我们就不确定应该实际使用多少小时。如果我们仅能衡量此任务是否比我们已经估计过的另一任务大/小,则最终会更容易。随着我们增加任务的规模/复杂度,不确定性的影响也被放大。我会很高兴地花费13个小时来完成一项任务,这个任务似乎是我之前估计的5个小时的两倍。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.