4. 书写用户故事的标准格式

4.1 为什么需要标准格式?

用户故事(User Story)最早出现在极限编程(XP)实践中,目的是用最精简的卡片记录需求核心。但在实际协作中,团队发现缺乏统一结构会导致理解偏差、验收模糊、价值丢失。“As a… I want… So that…” 三要素格式被广泛采纳,因为它强制回答了三个根本问题:谁在用、要做什么、为什么做。没有标准格式的故事,容易退化为功能清单,失去用户视角和价值锚点。

认知心理学依据
三要素结构对应“主体—行为—目的”的叙事框架,符合人脑理解需求的最小认知单元。研究表明,结构化的需求描述比自由文本减少约 40% 的歧义。

4.2 三要素深度解析

标准格式中的每一个要素都不是可有可无的装饰词,它们分别承担不同的语义职责:

要素 语法位置 职责与追问 常见错误
As a 角色 / 用户画像 谁在使用?他当前有什么痛点?你为他定义的用户类型是否精准? 使用“用户”“管理员”等泛化角色,丢失场景上下文
I want 功能 / 行为 他具体要做什么?这个行为是一次性还是持续性?输出是什么? 描述成技术方案而非用户意图(例如“我要调用API”)
So that 价值 / 原因 他为什么需要这个功能?解决了什么业务问题?可衡量的收益是什么? 写成“以便系统正常运行”等系统视角,缺少用户可感知的价值
避坑提醒
不要在 I want 中写 GUI 细节或页面元素。用户故事不是 UI 稿,I want 点击提交按钮 就写得太具体了,应聚焦意图:I want 提交采购审批单。

4.3 字段结构全景:从核心到扩展

标准三要素构成用户故事的“骨架”,但在真实产品开发中,还需要附加字段来支撑排期、验收和协作。下面是一张完整的字段结构表,核心字段必须写,扩展字段按场景选用。

字段类别 字段名称 是否必填 说明与示例
核心 As a(角色) ✔ 如:采购经理、门店店长、财务审核员
I want(功能) ✔ 动词 + 名词,如:查看库存预警列表
So that(价值) ✔ 业务收益,如:避免断货影响门店销售额
扩展 验收标准(AC) 推荐 可测试的条件清单,1~5 条为宜
优先级 推荐 P0 ~ P3,与业务价值直接挂钩
估算(故事点) 按需 团队用斐波那契数列快速评估复杂度
备注 / 关联 按需 依赖关系、设计约束、关联用户访谈编号
用户故事标准格式 · 三要素 + 字段结构 As a [ 角色 / 用户画像 ] I want [ 功能 / 行为 ] So that [ 价值 / 原因 ] 字段结构(核心 + 扩展) 核心字段(必填) 角色 · 功能 · 价值 扩展字段(按需) 验收标准 · 优先级 · 估算 · 备注 验收标准(AC)是关键 每条 AC 必须可测试、可验证 完整示例 As a 采购经理 · I want 查看库存预警列表 · So that 我能及时补货,避免断货影响门店销售 验收标准:① 预警列表按库存阈值排序 ② 每个预警项显示当前库存、阈值、预估断货天数 ③ 支持标记“已处理”

4.4 示例拆解:从用户访谈记录到标准化故事

下面演示一段真实的用户访谈原始记录,如何通过三步拆解,输出符合标准格式的用户故事及扩展字段。

步骤 1:原始访谈片段

受访者:李婷(连锁药店采购经理)
“我们门店经常出现某个药突然卖光了,等发现的时候再下单已经来不及了,
物流至少要三天。我希望系统能在库存低于安全线的时候直接推送到手机上,
不用我每天登录后台去翻。要是能按品种分别设置预警线就更好了。”  

步骤 2:提炼三要素

  • As a → 采购经理(连锁药店)
  • I want → 在手机端接收库存预警推送,并能为不同品种单独设置预警线
  • So that → 能第一时间响应低库存,避免门店断货,减少紧急调货成本

步骤 3:补全扩展字段

字段 内容
验收标准 ① 预警推送在库存低于设定线后 5 分钟内到达手机通知栏
② 每种商品可独立设置预警线(整数,单位:盒)
③ 预警列表显示:商品名、当前库存、预警线、预估断货天数
④ 点击推送消息直接跳转到该商品的库存详情
优先级 P0(断货直接影响门店收入,且物流周期长,需要最快上线)
估算 5 故事点(包含推送服务对接、预警规则引擎、移动端展示)
备注 依赖库存基础数据服务(接口已存在);需要与 APP 团队确认推送通道
拆解要点
- 用户说的“直接推送到手机上”是表层需求,背后价值是“减少登录后台的频次,缩短响应时间”。
- 验收标准中“5 分钟内到达”是可测量的指标,对应业务指标验证中的“响应时效”。
- 优先级定为 P0 是因为断货直接导致营收损失,且物流前置期长,延迟交付的成本很高。

4.5 五个最常见的格式错误

  1. 角色过于笼统:“用户”“客户”等宽泛角色无法区分不同场景,应具体到“新注册的券商户”“有三个月以上账期的批发商”。
  2. 功能写成了界面操作:“点击提交按钮”改为“提交审批单”;“在下拉框中选择地区”改为“指定配送区域”。
  3. 价值写成了团队目标:“以便系统功能完善”或“以便通过验收”不是用户可感知的价值,应写“节省人工对账时间”“减少客户投诉”。
  4. 一句话塞多个需求:“I want 查看订单并导出和打印”应拆成两个故事,每个故事独立交付和验收。
  5. 遗漏验收标准:没有 AC 的故事无法确认“做完”的标准,易导致返工。至少写 1~3 条可测试条件。
格式纠偏自查清单
写完后逐条核对:
□ As a 的角色是否在系统中真实存在且有独立诉求?
□ I want 是否用了“动词 + 业务对象”的结构?
□ So that 是否回答了“对用户有什么好处”?
□ 验收标准是否每一条都可以通过观察或数据验证?

4.6 本章交付物模板:用户故事卡片

在 PRD 中,每一条用户故事建议用卡片式模板呈现,便于评审、排期和追溯。下面是一个可直接复用的标准模板结构。

用户故事编号:US-042
标题:手机端库存预警推送
———————————————
As a 采购经理
I want 在手机端接收库存预警推送,并能为不同品种单独设置预警线
So that 能第一时间响应低库存,避免门店断货
———————————————
验收标准(AC):
1. 预警推送在库存低于设定线后 5 分钟内到达手机通知栏
2. 每种商品可独立设置预警线(整数,单位:盒)
3. 预警列表显示:商品名、当前库存、预警线、预估断货天数
4. 点击推送消息直接跳转到该商品的库存详情
————————————————
优先级:P0  |  估算:5 SP  |  迭代目标:Sprint 6
依赖:库存基础数据服务(已完成)/ APP 推送通道(需对接)
关联访谈:2025-03-12_李婷_采购经理
模板使用建议
- 编号规则建议“US-三位数”,与 PRD 中的需求矩阵对应。
- “标题”字段控制在 15 字以内,用于看板卡片和日报引用。
- “关联访谈”字段建立追溯链,方便后期验证需求来源。
- 验收标准建议用 Gherkin 语法(Given / When / Then)进一步细化,但核心卡片用清单式更易于跨角色沟通。