为什么是斐波那契

为什么是斐波那契是一个困扰了很久的问题,也请教过许多人,答案大都是“随便选的”,“外国人喜欢斐波那契”,“慢慢增长的数列都行”。甚至Mike Cohn在那本《Agile Estimating and Planning》中写到:

*“These nonlinear sequences work well because they reflect the greater uncertainty associated with estimates for larger units of work. Either sequence works well, although my slight personal preference is for the first.” *

这里说的“Either sequence” 一个是斐波那契,一个是偶数等比数列。因此先说本文结论,翻阅各种资料显示,斐波那契数列作为规模估算,还真可能就是随便选的。但也许这个天选的数列确实有过人之处。

参考资料:
《Agile Estimating and Planning》
https://kenschwaber.wordpress.com/2011/03/11/planning-poker/
https://www.mountaingoatsoftware.com/blog/how-can-we-get-the-best-estimates-of-story-size#comments
等等

先表明结论处于两个目的:1 这是客观事实; 2 从这往下非常的民科,不保证这只是一种作者自己都没发现的数字游戏,而作者恰好非常讨厌民科。相信读过这篇文章之后大家至少会记住,我们敏捷估算的意义之一是在于规模。

下面开始正文,我将尝试给这个用于用户故事规模估算的数列找一组条件(和条件设置原因)试一试推导出斐波那契是估算最优解。
条件1: 正整数的递增队列
原因: 显然
条件2: 队列的前两项需要是1或者2。
原因:估算需要有小规模,如果前两项不足够小,那整个队列每一项均减去一个常数,即可满足条件2,条件2 显然让我们的估算更有意义。
条件3:估算产生的变异性是可控的。
在我们用任意数列估算规模的时候,每一个数列中的数字都像一个木桶,我们只需要把故事扔到桶里面就完成了估算。当一个故事的心里点数恰好落在两个桶中央的时候,此时估算的变异性最大,50/50,多半由当时其他不可控因素决定。假设这个故事T的真实点数t就处在两个桶中央,那么此时的偏差也最大。假设M桶的点数为m,那么T到M之间的偏差为m-t,记为n。因此得到如下推论:
推论1 n/m越小越好
原因:代表估算偏差小。
推论2 n/m越稳定越好
原因:估算值的变异稳定性高。
求此数列。显然,这是很难算出来的,有数学大神有解题思路可以联系。如果大家认可上面的条件和推论。我们可以将符合条件的常见队列带入演算,看看是否斐波那契有优势。

第一组 等比数列
等比值取2,最小的增幅正整数

数值t 数值m 数值n 高估(n/m) 低估(n/f(M-1))
N/A 1 N/A
1.5 2 0.5 25% 50%
3 4 1 25% 50%
6 8 2 25% 50%
12 16 4 25% 50%
24 32 8 25% 50%

可以看到变异性非常稳定,高估偏离25%,低估偏离50%

第二组 等差数列
等差值取1,最小等差正整数

数值t 数值m 数值n 高估(n/m) 低估(n/f(M-1))
N/A 1 N/A
1.5 2 0.5 25% 50%
2.5 3 0.5 16.67% 25%
3.5 4 0.5 12.5% 16.67%
4.5 5 0.5 10% 12.5%
5.5 6 0.5 8.33% 10%

可以看到变异性呈收敛趋势,特别不稳定(不趋近一个均值),呈收敛也意味着,随着数值增加桶的价值在消退,估算的随机性将越来越不可控制。

第三组 质数

数值t 数值m 数值n 高估(n/m) 低估(n/f(M-1))
N/A 2 N/A
1.5 3 1.5 50% 75%
4 5 1 20% 33.33%
6 7 1 14.29% 20%
9 11 2 18.18% 28.57%
12 13 1 7.69% 9.09%
15 17 2 11.76% 15.38%
18 19 1 5.26% 5.88%
21 23 2 8.70% 10.53%

可以看到估算变异性非常不稳定。

第四组 斐波那契

数值t 数值m 数值n 高估(n/m) 低估(n/f(M-1))
N/A 2 N/A
2.5 3 0.5 16.67% 25%
4 5 1 20% 33.33%
6.5 8 1.5 18.75% 30%
10.5 13 2.5 19.23% 31.25%
17 21 4 19.05% 30.77%
27.5 34 6.5 19.12% 30.95%
44.5 55 10.5 19.09% 30.88%
72 89 17 19.10% 30.91%

可以看到 变异性非常稳定,高估偏离约20%,低估偏离约30%,性能优于等比数列。

虽然我们最终并没有证明斐波那契在估算的变异稳定性以及偏离上是最优的,但就四个常见数组来说,他是性能最好的一个。期待有小伙伴拿出更多的数列套用这套公式,也许能找出这套公式的BUG,这样便于我们最终算出某一个数列才是估算规模最好的。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,874评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,102评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,676评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,911评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,937评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,935评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,860评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,660评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,113评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,363评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,506评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,238评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,861评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,486评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,674评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,513评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,426评论 2 352

推荐阅读更多精彩内容