为什么选择斐波那契数列进行敏捷估算故事点

验收测试驱动开发与实例化需求
2019年10月31日
业务分析至关重要
2019年11月9日
fibonacci

根据Mike Cohn博客改编,原博客地址:https://www.mountaingoatsoftware.com/blog/why-the-fibonacci-sequence-works-well-for-estimating

如果您用Planning Poker计划扑克估算,那么您很有可能使用了斐波那契数列或修改后的斐波那契数列的纸牌。

传统的斐波那契(Fibonacci)数列是1、2、3、5、8、13、21等,每个数字都是先前数字的总和。

几年前,我开始让团队估算出修正后的斐波那契数列为1、2、3、5、8、13、20、40和100。

为什么?

这是因为彼此之间过于接近的数字无法区分为估计值。

韦伯定律(Weber’s Law)

想象一下,您要承受两个重量——一个是一公斤(2.2磅),另一个是两公斤(4.4磅)。两手各拿一个,但看不到哪只手,您是可以区分出来的。两公斤的重量会明显增加。

想象一下,将20公斤重和21公斤重交给了您。它们与一公斤和两公斤的重量差相同,相差一公斤。但是,要确定两个砝码中的较重砝码会比较困难。

这是因为韦伯定律。韦伯定律指出,我们可以识别出的物体之间差异是存在一个百分比的。

权衡对象之间的差异

一公斤和两公斤之间的差是100%。您可能可以区分相差100%的物品的重量。

但是,20公斤和21公斤之间的差异仅为5%。您可能无法分辨出差异。(我知道我做不到。)如果可以的话,这意味着您应该能够区分1.00千克重量和1.05千克重量,也就是5%。

斐波那契数列中的值很好地工作,因为它们大致对应于韦伯定律。在两个值之后(比一个值大100%),每个数字都比前一个值大60%。

根据韦伯定律,如果我们可以区分两个估计之间的努力差异60%,则可以区分其他估计之间相同的百分比差异。

因此,斐波那契值很好地起作用,因为它们每次都以大约相同的比例增加。

修改斐波那契数列

我与之合作的早期敏捷团队利用了这一点,并根据真实的斐波那契数列进行了估算。最终,尽管如此,我们了解到估计值21暗示我们无法支持的精度。利益相关者会看到21,并给我们留下深刻的印象,我们将其称为21,而不是将其四舍五入为20甚至25。

这导致我们开始使用20而不是21。一旦我们偏离了斐波那契数列一次,我们就可以自由地进一步做下去。

这导致了我们引入40和100的实验。它们之所以有效,是因为它们分别比之前的数字增加了100%和150%。这比斐波那契数列的62%大得多。

这并不违反韦伯定律,因为已证明韦伯定律不具有极端价值。估计值40和100可能被认为是极值。

试验计划扑克序列

直到2007年,与我一起工作的团队都对改良的斐波那契数列和简单的数字加倍进行了试验,即1、2、4、8、16、32。

每个人都表现良好。大多数团队都强烈偏爱其中一个,但是我找不到明确的证据表明任何一个序列都比另一个更好。

但是在2007年,我们开始印刷计划扑克Planning Poker Cards,我们按成本出售,并在各种敏捷事件中分发,并且我在一些现场课程中使用。

为了降低打印成本,我不得不在这两个顺序之间进行选择。当时,我只是稍微偏爱修改后的斐波那契数列。因此,我打了个电话。一旦该序列开始每年出现在成千上万的套牌上,该序列就变得流行起来,而代价只是简单地将值加倍。我比1、2、4、8、16 …稍微偏爱1,2,3,5,8,13 …,是因为参加了很多会议,而后者的讨论总是“这个积压产品是其他产品的两倍?”

所有讨论都是关于某个东西是否是两倍,四倍等。这让我有些担心,因为我没有在使用修改过的斐波那契数列的团队中看到这种讨论。他们的讨论并不总是“多付出60%的工作量吗?”这些讨论似乎更健康,即使我无法衡量。

这些天我在两组数字之间保持相当公正。我认为,每个团队都可以通过韦伯定律的属性来成功使用这两组值之一做估算。

结论

使用斐波那契数列做估算是为了反应大型项目中不同需求固有的复杂性和不确定性,斐波那契数列近似呈指数增加,但计划扑克又固有使得数字看起来不那么精确,避免给人一种确定性。

拨打免费咨询电话 021-63809913