Coursera 笔记

Module 03 · Agile & Scrum敏捷与 Scrum

Creating Good User Stories用户故事的定义与要素

Coursera ↗

学习目标

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

  • 定义什么是用户故事
  • 描述一个优秀用户故事的组成部分
  • 解释为什么添加验收标准(Acceptance Criteria)很重要
  • 理解并记住 INVEST 首字母缩略词
  • 了解什么是 Epic 以及何时使用它

什么是用户故事?

简而言之,用户故事代表了团队可以在完成的增量中交付的一部分业务价值。
传统上我们将其称为“需求”,但用户故事比需求要复杂得多。

  • 需求通常是简单的:“我需要这个功能”或“我需要那个功能”。
  • 而用户故事不仅包含了谁需要它、需要什么,更重要的是解释为什么需要它,以及从中获得的业务价值。

用户故事的组成部分

  1. 描述业务价值:
  • 它是做什么的?
  • 谁需要这个功能?
  • 我们从中获得什么价值?
  1. 假设和细节:
  • 如果有任何假设或前提条件,应该在用户故事中注明。
  • 例如,如果我们使用关系型数据库来存储数据,而不是NoSQL数据库,应在用户故事中说明,以便开发人员明确意图。
  1. 完成的定义(验收标准):
  • 如何确认这项工作完成了?
  • 在Sprint回顾中,产品负责人不能说:“这不是我想要的。”
  • 需要明确完成标准,确保开发人员明白在什么情况下认为故事已完成。

用户故事的结构与模板

角色(Persona)

首先,描述请求某项功能的角色。例如:

  • 市场经理
  • 客户
  • 系统管理员

这帮助我们明确功能的受众。

功能需求(What)

接下来,描述需要什么功能。这是用户故事的核心部分。

业务价值(Why)

最后,解释为什么需要该功能,或者它带来的业务价值。
例如,功能的价值可能是“为了能够通知客户营销活动”。这样一来,我们就能在优先级排序时根据业务价值来决定哪个故事更重要。


验收标准(Acceptance Criteria)与完成定义

为什么重要?

定义验收标准对于明确用户故事的完成条件至关重要。
这确保了开发人员、产品负责人以及利益相关者之间没有误解。

我们使用 Gherkin 语法来定义验收标准。Gherkin语法以简单、结构化的方式描述系统行为,易于开发人员和业务人员理解。

Gherkin 语法示例

  • Given: 设定前提条件
    • 例如:“Given 我已经登录系统,且购物车里有5个商品。”
  • When: 描述触发事件
    • 例如:“When 我向购物车添加了一个新商品。”
  • Then: 描述期望的结果
    • 例如:“Then 我应该看到购物车中有6个商品。”

示例用户故事

故事

  • 角色:作为一名市场经理
  • 需求:我需要一份客户的姓名和电子邮件列表
  • 价值:以便我可以通知他们关于营销活动的信息

假设

  • 我们维护客户的电子邮件
  • 客户已选择接收营销促销信息

验收标准

  • Given: 数据库中有100个客户,其中90个已同意接收营销促销信息
  • When: 我请求客户电子邮件列表
  • Then: 我应该看到包含90个客户电子邮件的列表,而不是100个

这将确保开发人员、产品负责人和利益相关者达成共识,明确验收标准,避免在Sprint结束时出现争议。


INVEST 首字母缩略词

INVEST是Bill Wake提出的一个模型,用于评估和创建优质的用户故事。每个字母代表一个重要特征:

字母 含义 解释
I 独立性(Independent) 用户故事应该是独立的,可以自由排序和移动,便于按优先级排列和实施。
N 可协商性(Negotiable) 用户故事的细节可以进行协商,功能或需求不应固定死,可以根据实际需要调整或变更。
V 有价值(Valuable) 用户故事必须为客户或业务提供价值,不能仅仅是为了完成技术债务而做的工作。
E 可估算性(Estimable) 必须有足够的信息让团队能够评估故事的大小,并确定它的复杂性。
S 小巧(Small) 用户故事应该小到可以在一个Sprint内完成。如果故事太大,则需要拆分成更小的用户故事。
T 可测试性(Testable) 用户故事必须有明确的完成标准,可以通过测试确认是否完成。

Epic:处理大型故事的工具

什么是Epic?

当一个用户故事过大,无法在一个Sprint内完成时,我们会将其转化为Epic。Epic是一个更大的故事,通常由多个小的用户故事组成。

何时使用Epic?

  • 当用户故事的规模过大,无法在Sprint中完成时,应该使用Epic。
  • 通常,产品待办事项(Backlog)开始时会包含大型的“Epic”,随着细化,Epic会被分解成可估算且适合在Sprint中完成的用户故事。

总结

通过本视频,你学到:

  • 用户故事是描述某个角色请求某项功能以实现目标的方式。
  • 使用标准模板有助于确保用户故事的完整性。
  • 完成定义能够减少误解,确保所有人对“完成”有一致的理解。
  • 良好的用户故事应符合INVEST模型的要求。
  • Epic可用于捕捉大型的需求,并通过将其拆分成多个小故事来实现。