Module 03 · Agile & Scrum敏捷与 Scrum
Effectively using Story Points故事点(Story Points)的定义与应用
学习目标
观看本视频后,你将能够:
- 定义故事点(Story Points)
- 描述分配故事点时需要考虑的因素
- 以相对尺度来估算故事点
什么是故事点?
故事点是用来估算实现某个用户故事的难度的一个度量标准。
重点是:故事点是一个抽象的度量,而这正是很多人容易陷入困惑的地方。我们通常很难处理这种抽象的概念,但理解这一点至关重要,避免陷入一些反模式。
估算故事点的因素
在估算故事点时,通常考虑以下几个因素:
- 工作量(Effort)
- 这个任务有多困难?需要多少努力来完成?
- 复杂度(Complexity)
- 任务复杂吗?是否容易理解或执行?
- 例如,可能一个任务非常简单,但需要大量的重复劳动,虽然不复杂,但需要的努力很大。
- 不确定性(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点)的实际含义。
- 绝对禁止将故事点与实际时间挂钩,避免把它们误认为是日历时间。