为什么计划扑克使用斐波那契数列
敏捷团队为何在计划扑克中使用斐波那契量表投票、它的由来、数值间隔不断增大的真正原因,以及它何时有用、何时会适得其反。
在计划扑克(也称为 scrum poker 或 pointing poker)中,团队使用斐波那契数列(0、1、2、3、5、8、13、21)进行投票,因为数字之间的间隔会随着数字变大而增大,这正好契合估算中的一个简单道理:一项工作越大,就越难精确地衡量它的大小。不断扩大的量表能避免团队纠结于某个条目究竟是 13 还是 14,而是迫使大家做出明确的选择。下面将介绍:这个数列是什么、这一做法从何而来、它真正起作用的原因,以及它何时会适得其反。
什么是斐波那契数列?
斐波那契数列是一组数字,其中每一个数字都是前两个数字之和:0、1、1、2、3、5、8、13、21、34、55、89,以此类推。它广泛出现在数学和自然界中。对估算而言真正重要的细节是间距:越往后,每个数字大约是前一个数字的 1.6 倍(这一比例会逐渐趋近于黄金分割比)。因此,数值的跳跃一开始很小,随后会持续变大。
计划扑克中的斐波那契量表
团队不会直接使用原始数列。典型的计划扑克卡组会去掉重复的 1,变成这样:
0、1、2、3、5、8、13、21,再加上一张 ?(我不知道)和一张咖啡杯(我需要休息一下)。
你选择最接近你对该条目规模判断的卡牌,所有人同时揭晓,然后讨论分歧。如果你是第一次接触这个流程,可以参考我们的计划扑克分步指南。
它的由来
计划扑克最早由 James Grenning 在 2002 年的一篇短文中定义并命名,当时他正在寻找一种比 Wideband Delphi(一种更古老的团队估算方法)更轻量的替代方案。Mike Cohn 后来在他的著作《Agile Estimating and Planning》中推广了这一技巧,斐波那契量表也随之流传开来。因此,这一做法已有大约二十年的历史,而在这段时间里的大部分时间,斐波那契都是大家默认的常见选择。(参考文献见下文。)
为什么间隔会增大(真正的原因)
不断扩大的量表的意义在于,不再假装自己拥有并不具备的精确度。
想象一下估算一个很小、而且大家都很了解的任务:团队可以合理地分辨出 2 和 3 的区别。再想象一个庞大而模糊的任务:有谁能老实地分辨出 21 和 22 的区别呢?没有。大型条目的不确定性远远大于一个单位。线性量表(1、2、3、4、5、6、7、8)会引发团队对相邻数字的无休止争论,而团队其实根本无法区分这些数字。斐波那契的间隔消除了这些虚假的选择:过了 13 之后,你唯一的选项就是 21,再往后是 34,于是你要确定的是一个数量级,而不是在一个点上讨价还价。
这也是许多团队会对大数字取整的原因(下文详述)。40 并不声称自己是精确的,它表达的是"很大,而我们也不确定到底有多大"。
更深层的原因:人们如何判断大小
增长型量表之所以契合人类的估算方式,背后有一个经过充分研究的原因。在心理物理学中,费希纳定律(Fechner's law)指出,我们对刺激的感知会随着其实际强度的对数增长:我们感知世界的方式是按比例,而不是按绝对的步长。一束亮度翻倍的光,或是一个响度翻倍的声音,无论起点是昏暗还是明亮,感觉上都只是提升了"一个等级"。实验表明,人们在判断数量和数字时,也会呈现出同样的对数模式,还有一项分析指出,对数量表是最优的,因为它能使相对误差在整个范围内保持大致恒定。
斐波那契式的量表,每一步大约是前一步的 1.6 倍,与这种自然的对数间距非常接近。用通俗的话说:这种量表与我们大脑原本比较大小的方式相吻合,因此即便原始数字本身间距不均,各个步长在感觉上却是均匀的。这才是"斐波那契用起来就是感觉对"这句话背后诚实的解释。
修改版斐波那契数列及其他量表
原始数列在数值较大时会变得不太好用(34、55、89 很难让人记住),因此一种广泛使用的变体会将它们取整:
修改版斐波那契数列:0、½、1、2、3、5、8、13、20、40、100。
更圆整的大数字所传达的意思与数值间隔相同:在这个量级上,你给出的是一个大致范围,而不是一个确切数字。除了斐波那契之外,团队也会使用 T 恤尺码(从 XS 到 XXL)进行快速、粗略的估算,或者使用 2 的幂次方(1、2、4、8、16)获得更陡峭的曲线。具体使用哪种量表并不是最重要的,真正重要的是两点:选项数量有限,以及团队始终如一地使用同一套量表,以便其数字能够长期保持可比性。
斐波那契何时有用,何时会适得其反
有用的情况:
- 团队总是不自觉地陷入按小时计算的争论。数值间隔能迫使团队做出决定,让会议持续推进。
- 条目的规模差异很大。一个跨度从 1 到 100 的量表既能处理微小的工作,也能处理庞大的工作。
适得其反的情况:
- 所有条目都落在 13 或 21 上。 这不是量表的问题,而是条目规模过大的信号,应在估算前先拆分它们。
- 团队把这个数字当作精确值。 斐波那契只是一种便于做出粗略判断的工具,而不是一种测量手段。如果有人开始把 5 换算成"十个小时",就说明这套量表被误用了(参见故事点数是什么、不是什么)。
- 工作内容统一且容易理解。 如果每个条目确实都很相似,那么几乎不需要使用量表。
对此保持清醒很重要:这个数列是一个有用的默认选择,而不是精确度本身的来源。
如何用好斐波那契量表
- 用一个参照故事作为锚点。 约定某个大家都熟悉的条目为 3 分,并以它为基准比较其他所有条目,这样能让量表在各次会议之间保持稳定。
- 保持使用同一套卡组。 在项目中途更换量表,会让你的历史数据失去意义。
- 善用 ? 和咖啡杯卡牌。 "我不知道"也是一种真实的信息,通常意味着该条目在被评估之前还需要先澄清。
- 了解更多信息后重新估算。 在工作内容尚未被充分理解之前选出的数字,不具有约束力。
斐波那契与其他量表的对比
| 量表 | 示例数值 | 间距 | 最适用场景 |
|---|---|---|---|
| 斐波那契 | 0、1、2、3、5、8、13、21 | 每步增长约 1.6 倍 | 大多数团队:如实反映不断上升的不确定性 |
| 修改版斐波那契 | 0、½、1、2、3、5、8、13、20、40、100 | 递增,顶部取整 | 希望大数字更简洁的团队 |
| 线性 | 1、2、3、4、5、6、7、8 | 均匀 | 很少有用:容易引发关于虚假精确度的争论 |
| T 恤尺码 | XS、S、M、L、XL | 粗略、非数字 | 快速的第一轮估算 |
| 2 的幂次方 | 1、2、4、8、16、32 | 增长更快(2 倍) | 自然按一半拆分的工作 |
常见问题
为什么计划扑克的卡牌使用斐波那契数列?
因为数字之间的间隔会不断增大,这与"条目越大越难精确衡量"这一事实相符。不断扩大的步长能阻止团队争论那些实际上根本无法区分的数字,例如 13 和 14。
计划扑克中使用的斐波那契数字有哪些?
常见的卡组是 0、1、2、3、5、8、13、21,再加上代表未知的 "?" 卡牌和代表休息的咖啡杯卡牌。修改版会把较大的数字取整为 20、40、100。
斐波那契比 1 到 10 的量表更好吗?
对大多数团队来说,是的,因为线性的 1 到 10 量表会鼓励大家争论那些实际上根本无法区分的相邻数字。斐波那契的间隔能促成更清晰、更快速的选择。
什么是修改版斐波那契数列?
一种取整后的变体:0、½、1、2、3、5、8、13、20、40、100。它用更圆整的数字取代了斐波那契中较大且不方便使用的数字(34、55、89),这同时也表明,较大的估算是近似值。
科学真的支持斐波那契吗?
间接支持。关于感知的研究表明,人们是在一个大致呈对数、基于比例的量表上判断数量大小的,而斐波那契式的量表(每一步大约是前一步的 1.6 倍)与这种自然间距非常接近。它契合我们比较大小的方式,不过没有任何单一量表能凭自身使估算变得精确。
? 和咖啡杯卡牌分别代表什么?
"?" 表示你目前还无法对该条目做出估算,通常是因为它还需要被澄清。咖啡杯则是一种委婉地请求休息的方式。
参考文献
- Grenning, J. (2002). Planning Poker or How to Avoid Analysis Paralysis While Release Planning.(最早定义并命名这一技巧的论文)。
- Cohn, M. (2005). Agile Estimating and Planning. Prentice Hall(推广了计划扑克及斐波那契量表)。
- Fechner, G.(心理物理学;韦伯-费希纳定律):对强度的感知会随刺激的对数增长。参见相关概述及数字感知的对数解释。
- Portugal, R. & Svaiter, B. (2011). Weber-Fechner Law and the Optimality of the Logarithmic Scale. Minds and Machines(对数量表能使最大相对误差最小化)。