故事点

2013年7月16日

故事点是敏捷项目中对故事进行大小估算的常用名称。结合XpVelocity,它们提供了一种技术,通过预测故事何时可以完成来帮助规划。

在估算工作量时,一种常见的方法是根据工时进行估算,例如程序员说“这需要我两天才能完成”。在敏捷的早期,尤其是在极限编程社区中,许多人发现团队难以使用这种方法得出有用的估算,即使他们应用了理想时间的方法。我们发现,最有效的估算方法是将故事的大小进行相对比较,然后利用过去的经验来确定在一个迭代中可以完成多少工作。 [1]

为了确定故事的点数,我们比较粗略的相对大小。如果我们正在估算“fibble the foobar”故事,我们会寻找一个我们已经估算过的类似大小的故事。我们觉得它与“flipping the synergy bit”的大小差不多。然后,我们查看“flipping the synergy bit”的故事点数,并给“fibble the foobar”分配相同的点数。

使用故事点的团队使用一小范围的故事点数来工作。常见的例子可能是 1、2、4、8 或 1、2、3、5、8 [2]。通常,序列中的最高数字代表“太大”,应该进一步分解。 [3]

分配故事点应该是一个快速活动。只有当人们对估算有不同的看法时才进行讨论,在这种情况下,进行讨论是有用的,因为它通常意味着故事的某些方面并不清楚。使用ThrownEstimate是一个很好的技术,可以快速推进工作。

为了制定一个有时间安排的计划,您需要使用XpVelocity.

有些团队不喜欢使用故事点,而是更喜欢使用StoryCounting。我对这两种方法没有偏好——它们似乎都同样有效,因此团队可以尝试一下,选择最适合他们的方法。

进一步阅读

肯特和我曾在美味的绿色书籍中更深入地讨论了故事点。大多数讨论敏捷环境中的规划和估算的书籍都更详细地讨论了故事点。

笔记

1: “故事点”是我现在听到的最常见的名称,但多年来已经使用了各种术语,通常使用奇特的名称来强调它们的任意性。我特别喜欢 Joseph Pelrine 的橡皮糖和 Josh Kerievsky 的:NUTs(模糊的时间单位)。

2: 这是一个斐波那契数列

3: 使用最高数字作为“太大”意味着大小为“8”的故事实际上意味着“8 或更多”。如果您这样做,请注意在预测完成时间等方面时不要使用此最高数字,因为“8”在最终分解时可能会变成各种数字。通常,明确地说它太大而无法估算,而不是使用一个虚假的标记数字,会更好。