指南 · 阅读需 1 分钟

敏捷估算技巧对比

对比计划扑克、T 恤尺码估算、桶分法和亲和估算法:研究怎么说,以及如何选择合适的方法。

敏捷估算技巧是一系列结构化的方法,让团队按相对工作量而不是猜测确切小时数来衡量 backlog 条目。其中最知名的是计划扑克(也称为 scrum poker 或 pointing poker),但它只是众多方法中的一种,其他方法则是用讨论深度换取速度。本指南将对比几种主要技巧——计划扑克、T 恤尺码估算、桶分法、亲和估算法、点投票法(dot voting)和 wideband Delphi——说明研究对"哪种最好"实际得出了什么结论,并给出一种简单的选择方法。

一种好的估算技巧应该做到什么

大多数敏捷技巧都有着相同的目标,这些目标也是评判任何一种技巧的实用清单:

  • 按比较来衡量规模,而不是按时钟。 相对估算更容易达成一致,也能避开承诺具体时长所带来的压力。
  • 抵制虚假的精确度。 有限的选项能阻止团队争论那些实际上根本无法区分的数字。
  • 揭示隐藏的工作。 团队一起估算真正的回报在于讨论本身,它能揭示出风险和遗漏的任务。
  • 与 backlog 的规模相匹配。 十个条目和三百个条目需要用到不同的工具。

请记住这些要点,因为下面介绍的各种技巧,大多只是在讨论深度和速度之间做出的不同权衡。

主要的敏捷估算技巧

计划扑克

每个人私下为某个条目的规模选择一张卡牌,所有人同时揭晓,团队在就某个数字达成一致之前先讨论投票的分布情况。同时揭晓可以防止锚定效应,而讨论本身才是重点。这是信息量最丰富,但也是最慢的技巧,因此非常适合用于重要或不确定的条目。完整演示参见我们的分步指南,其背后使用的量表则参见团队为何使用斐波那契数列。

T 恤尺码估算

条目会被赋予一个标签,XS、S、M、L、XL,而不是一个数字。这种粗略、非数字化的量表既快速,也便于非技术背景的相关方理解,因此很适合在工作尚未被充分理解之前,用于早期的高层级规划。参见我们完整的T 恤尺码估算指南。

桶分法

团队设置若干个"桶"(通常是 1、2、3、5、8、13),然后把各个条目的卡片归入相应的桶中,过程推进很快,只在出现分歧的条目上才停下来讨论。它融合了计划扑克和 T 恤尺码估算的特点,在逐项投票会耗费大量时间的大型 backlog 上表现尤为出色。

亲和估算法

团队相互比较各个条目,并按相似性将它们分组,通常先划分为几个大致的规模,再逐步细化。由于它能通过相对定位在一轮之内衡量大量条目,这是将一个庞大、尚未估算过的 backlog 整理成形的最快方法之一。

点投票法(Dot voting)

严格来说,点投票法是一个优先级排序的步骤,而不是估算步骤。每个人会拿到几个"点",把它们放在自己认为最重要的条目上。它适合在估算之前使用,把一个庞大的 backlog 缩小到少数真正值得详细衡量规模的条目。

Wideband Delphi

一种较为古老的方法,由主持人引导进行多轮匿名估算,经过几轮之后逐渐收敛。计划扑克在 2002 年问世时,部分原因正是为了成为它的一种更轻量的替代方案。在匿名性很重要的高风险估算场景中,它仍然有其用武之地。

研究对"哪种最好"怎么说

诚实的答案是:没有任何一种技巧的准确性明显优于其他技巧。

在一项 2023 年的研究中,学生团队在同一个项目中、用三周时间分别使用了计划扑克、桶分法和亲和估算法。当团队对这三种方法都已熟悉之后,各方法得出的估算结果在准确性上大致相当,方法之间没有统计学上的显著差异。差异体现在时间上:平均而言,桶分法和亲和估算法所花的时间大约只有计划扑克的一半。需要说明的是,这些都是学生团队,因此应把这项结果视为一个有力的信号,而不是确凿的证据。

关于敏捷团队如何进行估算的更广泛综述也得出了相容的结论:主观的专家判断方法占据主导地位,而"计划扑克 + 故事点数"是最常见的组合,但现有文献并没有将某一种技巧评为最准确的方法。(参考文献见下文。)

实际的解读是:如果准确性大致相当,那么就应根据backlog 的规模有多大,以及对某个具体条目而言讨论的价值有多大来做选择。

如何选择

技巧工作方式速度讨论程度最适用场景
计划扑克私密投票、揭晓、讨论较慢高重要或不确定的条目
T 恤尺码估算标注为 XS 到 XL快低早期、高层级的估算
桶分法将卡片归入不同工作量的桶中很快中大型 backlog
亲和估算法按相似性对条目分组很快低到中对庞大、未经整理的 backlog 进行第一轮估算
点投票法放置点数进行排序很快低估算之前的优先级排序(而非衡量规模)
Wideband Delphi匿名多轮 + 主持人慢中需要匿名性的高风险场景

一条简单的规则:先用一种快速的方法(亲和估算法或桶分法)对大型 backlog 进行整理,然后只把计划扑克用在那些规模大、风险高,或团队存在分歧的条目上。

组合使用多种技巧

大多数团队并不会永远只使用一种技巧,一种常见的流程是:

  1. 用点投票法把一个庞大的 backlog 缩小到当下真正重要的部分。
  2. 用亲和估算法或桶分法在一轮快速的过程中,把剩下的条目划分为大致的规模。
  3. 对剩下为数不多、不确定或存在争议的条目使用计划扑克,因为这些条目值得花时间讨论。

这样既能获得轻量方法的速度,又能获得计划扑克带来的共同理解,而不必花一个小时去对那些显而易见的条目进行投票。对于分布式团队,同样的组合方式依然适用,计划扑克这一步可以实时或异步进行,具体做法参见远程团队计划扑克指南。

常见错误

  • 对所有事情都使用计划扑克。 在大型 backlog 上,这种做法太慢了,应该把它留给真正需要讨论的条目。
  • 把任何相对规模都当作精确数字。 这些方法都无法精确预测工作量,正如故事点数究竟是什么中所说明的那样,应把它们用于理解工作和粗略预测。
  • 把点投票法和估算混为一谈。 点投票法只是对重要性进行排序,并不衡量工作量。
  • 在项目中途更换技巧。 混用不同的量表会让你的历史数据和速率失去意义,应始终坚持使用同一种衡量规模的方法。

常见问题

主要的敏捷估算技巧有哪些?

用于衡量规模的有计划扑克、T 恤尺码估算、桶分法、亲和估算法和 wideband Delphi,再加上用于排优先级的点投票法。它们都是按相对工作量而不是确切小时数来衡量工作的。

哪种敏捷估算技巧最准确?

没有哪一种技巧特别突出。一项 2023 年的研究发现,当团队已经熟悉计划扑克、桶分法和亲和估算法之后,这三种方法的准确性大致相当,而更快的方法所花的时间大约只有一半。应根据 backlog 的规模,以及每个条目值得投入多少讨论来做选择。

哪种估算技巧最快?

亲和估算法和桶分法是最快的,因为它们能在一轮之内衡量大量条目。T 恤尺码估算也很快。计划扑克是最慢的,因为每个条目都需要进行一次完整的讨论。

计划扑克和桶分法有什么区别?

计划扑克一次只对一个条目进行投票并逐一讨论,这样做很彻底,但也很慢。桶分法能快速地把大量条目的卡片归入不同的工作量桶中,只在出现分歧时才停下来讨论,因此更适合大型 backlog。

点投票法是一种估算技巧吗?

严格来说不是。点投票法是一种优先级排序方法:每个人把几个点放在最重要的条目上。它最好在估算之前使用,用来决定哪些条目真正值得去衡量规模。

可以把多种估算技巧组合使用吗?

可以,而且大多数团队都是这样做的。典型的流程是:先用点投票法排优先级,再用亲和估算法或桶分法完成快速的第一轮,最后对少数不确定或有争议的条目使用计划扑克。

参考文献

  1. Poženel, M., Fürst, L., Vavpotič, D. & Hovelja, T. (2023). A comparison of planning poker, the bucket system and affinity estimation. International Journal of Software Engineering and Knowledge Engineering, 33(11n12), 1923-1950(一旦团队熟悉后准确性相近;桶分法和亲和估算法所花时间约为一半)。
  2. Usman, M., Mendes, E., Weidt, F. & Britto, R. (2014). Effort estimation in agile software development: a systematic literature review. PROMISE 2014(专家判断方法占主导;计划扑克搭配故事点数是最常见的组合)。
  3. Grenning, J. (2002). Planning Poker or How to Avoid Analysis Paralysis While Release Planning(计划扑克作为 wideband Delphi 的一种更轻量替代方案)。

继续阅读