Coursera 笔记

Module 03 · Agile & Scrum敏捷与 Scrum

Effectively using Story Points故事点(Story Points)的定义与应用

Coursera ↗

学习目标

观看本视频后,你将能够:

  • 定义故事点(Story Points)
  • 描述分配故事点时需要考虑的因素
  • 以相对尺度来估算故事点

什么是故事点?

故事点是用来估算实现某个用户故事的难度的一个度量标准。
重点是:故事点是一个抽象的度量,而这正是很多人容易陷入困惑的地方。我们通常很难处理这种抽象的概念,但理解这一点至关重要,避免陷入一些反模式。


估算故事点的因素

在估算故事点时,通常考虑以下几个因素:

  1. 工作量(Effort)
  • 这个任务有多困难?需要多少努力来完成?
  1. 复杂度(Complexity)
  • 任务复杂吗?是否容易理解或执行?
  • 例如,可能一个任务非常简单,但需要大量的重复劳动,虽然不复杂,但需要的努力很大。
  1. 不确定性(Uncertainty)
  • 你之前做过这个吗?
  • 如果这是一个全新的任务,可能会给它更高的故事点,因为你不确定任务的具体复杂度。

为什么不使用实际时间来估算?

人类在估算实际时间(如“这个任务需要1小时”)方面做得非常糟糕。

  • 我们喜欢看到时间快速流逝,常常承诺一个时间点,结果错过了。
  • 很多时候,虽然某个任务明明很简单,但总是需要比预期更多的时间。因此,我们不建议用实际的时间来估算故事点,而是采用一种更抽象的方式。

使用T恤尺码进行估算

为了避免使用时间来估算,我们采用T恤尺码来估算故事点。
T恤尺码的等级包括:

  • 小(Small)
  • 中(Medium)
  • 大(Large)
  • 超大(Extra Large)

通过这种方式,我们仅仅给出任务的相对大小,而不是具体的时间。

Fibonacci序列与故事点

为了将T恤尺码转化为可以追踪的数值,大多数工具采用Fibonacci序列(1、2、3、5、8、13、21等)。

  • 推荐使用的数值:
    • 3 = 小(Small)
    • 5 = 中(Medium)
    • 8 = 大(Large)
    • 13 = 超大(Extra Large)
  • 通常不使用所有序列中的数字,保持相对简单,避免过于精细,因为我们并不是很擅长这种估算。

如何保持抽象与相对性?

为了保持抽象,我们需要全体团队成员达成一致,明确每个T恤尺码代表的故事点范围。
例如:

  • 如果我们定义5为中等大小的故事,那么我们可以将其他故事与之对比,判断它们是更小、更大,还是与这个故事差不多大。
    这种方法就像建筑物的比较:
  • 如果第一个建筑物是5层,那么旁边的建筑物可能是3层,另一座更大的建筑物是8层,依此类推。
    这仅仅是对故事点进行相对比较,而不是精确计算。

故事点的最佳大小

一个用户故事应该尽量保持较小,理想情况下能在几天内完成。

  • 不要让故事点太大,避免任务拖得太长。
  • 大的故事点应该被拆分成小故事,如果某个故事的点数非常大(例如21点),那说明它超出了一个Sprint的容量,就需要被分解成多个小的故事点。
  • 拆分后的任务可以在多个Sprint中完成,必要时可以创建Epic来跟踪这些较大的需求。

常见反模式

理解反模式非常重要,以下是几个常见的错误做法:

1.用实际时间来评估故事点

这是非常常见的反模式,尤其是在一些传统的项目管理方式中。

  • 有些Scrum Master曾经是项目经理,习惯用甘特图(Gantt Chart)来规划项目进度,而甘特图本质上是以日历日期为基础的。
  • 比如,他们可能会告诉团队:“一个故事点就是一天,三个故事点是三天,五个故事点是五天……”。
    这种做法是完全错误的。故事点不应该与实际的日历时间相联系,它只是相对的工作量大小。

2.为什么不应该以时间为基准?

人类在估算实际时间方面并不擅长,很多情况下我们都会低估所需时间。

  • 故事点是相对的,它不等同于实际的小时或天数。
  • 比如,一个“中等大小”的故事,可能需要两到三天,但它不应该被精确到“这任务需要多少小时”。

总结

在本视频中,你学习到:

  • 故事点是一种用于估算用户故事实现难度的度量标准。
  • 故事点采用的是一种相对的度量方式,类似T恤尺码的概念。
  • 必须达成一致,明确每个尺码(例如中等大小代表5点)的实际含义。
  • 绝对禁止将故事点与实际时间挂钩,避免把它们误认为是日历时间。