4. 书写用户故事的标准格式
4.1 为什么需要标准格式?
用户故事(User Story)最早出现在极限编程(XP)实践中,目的是用最精简的卡片记录需求核心。但在实际协作中,团队发现缺乏统一结构会导致理解偏差、验收模糊、价值丢失。“As a… I want… So that…” 三要素格式被广泛采纳,因为它强制回答了三个根本问题:谁在用、要做什么、为什么做。没有标准格式的故事,容易退化为功能清单,失去用户视角和价值锚点。
认知心理学依据
三要素结构对应“主体—行为—目的”的叙事框架,符合人脑理解需求的最小认知单元。研究表明,结构化的需求描述比自由文本减少约 40% 的歧义。
三要素结构对应“主体—行为—目的”的叙事框架,符合人脑理解需求的最小认知单元。研究表明,结构化的需求描述比自由文本减少约 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,与业务价值直接挂钩 | |
| 估算(故事点) | 按需 | 团队用斐波那契数列快速评估复杂度 | |
| 备注 / 关联 | 按需 | 依赖关系、设计约束、关联用户访谈编号 |
4.4 示例拆解:从用户访谈记录到标准化故事
下面演示一段真实的用户访谈原始记录,如何通过三步拆解,输出符合标准格式的用户故事及扩展字段。
步骤 1:原始访谈片段
受访者:李婷(连锁药店采购经理)
“我们门店经常出现某个药突然卖光了,等发现的时候再下单已经来不及了,
物流至少要三天。我希望系统能在库存低于安全线的时候直接推送到手机上,
不用我每天登录后台去翻。要是能按品种分别设置预警线就更好了。”
步骤 2:提炼三要素
- As a → 采购经理(连锁药店)
- I want → 在手机端接收库存预警推送,并能为不同品种单独设置预警线
- So that → 能第一时间响应低库存,避免门店断货,减少紧急调货成本
步骤 3:补全扩展字段
| 字段 | 内容 |
|---|---|
| 验收标准 | ① 预警推送在库存低于设定线后 5 分钟内到达手机通知栏 ② 每种商品可独立设置预警线(整数,单位:盒) ③ 预警列表显示:商品名、当前库存、预警线、预估断货天数 ④ 点击推送消息直接跳转到该商品的库存详情 |
| 优先级 | P0(断货直接影响门店收入,且物流周期长,需要最快上线) |
| 估算 | 5 故事点(包含推送服务对接、预警规则引擎、移动端展示) |
| 备注 | 依赖库存基础数据服务(接口已存在);需要与 APP 团队确认推送通道 |
拆解要点
- 用户说的“直接推送到手机上”是表层需求,背后价值是“减少登录后台的频次,缩短响应时间”。
- 验收标准中“5 分钟内到达”是可测量的指标,对应业务指标验证中的“响应时效”。
- 优先级定为 P0 是因为断货直接导致营收损失,且物流前置期长,延迟交付的成本很高。
- 用户说的“直接推送到手机上”是表层需求,背后价值是“减少登录后台的频次,缩短响应时间”。
- 验收标准中“5 分钟内到达”是可测量的指标,对应业务指标验证中的“响应时效”。
- 优先级定为 P0 是因为断货直接导致营收损失,且物流前置期长,延迟交付的成本很高。
4.5 五个最常见的格式错误
- 角色过于笼统:“用户”“客户”等宽泛角色无法区分不同场景,应具体到“新注册的券商户”“有三个月以上账期的批发商”。
- 功能写成了界面操作:“点击提交按钮”改为“提交审批单”;“在下拉框中选择地区”改为“指定配送区域”。
- 价值写成了团队目标:“以便系统功能完善”或“以便通过验收”不是用户可感知的价值,应写“节省人工对账时间”“减少客户投诉”。
- 一句话塞多个需求:“I want 查看订单并导出和打印”应拆成两个故事,每个故事独立交付和验收。
- 遗漏验收标准:没有 AC 的故事无法确认“做完”的标准,易导致返工。至少写 1~3 条可测试条件。
格式纠偏自查清单
写完后逐条核对:
□ As a 的角色是否在系统中真实存在且有独立诉求?
□ I want 是否用了“动词 + 业务对象”的结构?
□ So that 是否回答了“对用户有什么好处”?
□ 验收标准是否每一条都可以通过观察或数据验证?
写完后逐条核对:
□ 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)进一步细化,但核心卡片用清单式更易于跨角色沟通。
- 编号规则建议“US-三位数”,与 PRD 中的需求矩阵对应。
- “标题”字段控制在 15 字以内,用于看板卡片和日报引用。
- “关联访谈”字段建立追溯链,方便后期验证需求来源。
- 验收标准建议用 Gherkin 语法(Given / When / Then)进一步细化,但核心卡片用清单式更易于跨角色沟通。