名称: 用户故事映射 描述: “Jeff Patton 的用户故事映射技术,用于敏捷发现。将用户旅程可视化为地图,识别骨干活动、行走骨架和发布切片。当组织需求到可交付增量或定义 MVP 范围时使用。” 允许工具: 读取, 写入, 全局搜索, 搜索, 任务
用户故事映射
用户故事映射是 Jeff Patton 的技术,用于将用户故事组织成可视化地图,展示完整的用户体验,并帮助将工作切片成发布。
何时使用此技能
关键词: 故事地图, 用户故事地图, 骨干, 行走骨架, MVP, 发布规划, 用户旅程, 故事切片, Jeff Patton, 敏捷发现
在以下情况使用此技能:
- 将收集的需求组织到可交付增量中
- 从大量需求中定义 MVP 范围
- 可视化跨功能的用户旅程
- 规划具有明确用户价值的发布
- 将大型史诗切片成可交付的故事
- 向利益相关者传达产品愿景
核心概念
地图结构
时间 / 用户旅程 →
─────────────────────────────────────────────────────────────────
骨干(活动) │ 搜索 │ 浏览 │ 购买 │ 跟踪
│ │ │ │
─────────────────────────────────────────────────────────────────
行走骨架 │ 基本 │ 列表 │ 购物车 + │ 订单
(最小路径) │ 搜索 │ 视图 │ 结账 │ 状态
─────────────────────────────────────────────────────────────────
发布 1 │ 过滤器 │ 详情 │ 支付 │ 邮件
│ │ 页面 │ 选项 │ 通知
─────────────────────────────────────────────────────────────────
发布 2 │ 保存 │ 比较 │ 收藏夹 │ 跟踪
│ 搜索 │ 物品 │ │ 地图
─────────────────────────────────────────────────────────────────
发布 3(可有可无)│ AI │ AR │ 一键 │ 配送
│ 建议 │ 预览 │ 购买 │ 照片
关键元素
| 元素 | 描述 |
|---|---|
| 骨干 | 高层用户活动按顺序排列(从左到右 = 时间) |
| 行走骨架 | 每个活动的最小功能(第一个可行路径) |
| 用户任务 | 每个活动下的故事,按优先级排序(从上到下) |
| 发布切片 | 将故事分组到发布中的水平线 |
| 人物角色 | 不同用户类型可能有不同路径 |
创建故事地图
步骤 1:定义骨干
识别用户执行的高层活动:
骨干问题:
- "用户首先做什么?"
- "在旅程中接下来发生什么?"
- "所有主要活动是什么?"
- "是否有自然顺序或流程?"
步骤 2:识别行走骨架
对于每个骨干活动,最小可行的实现是什么?
行走骨架标准:
- 使用户能够完成活动(勉强)
- 贯穿系统的端到端切片
- 可测试和演示
- 增量增强的基础
步骤 3:填充用户任务
在每个活动下,列出用户任务/故事:
任务放置:
垂直顺序: "优先级(最重要的在顶部)"
水平对齐: "此任务属于哪个活动?"
依赖关系: "此任务需要来自其他列的内容吗?"
步骤 4:绘制发布切片
将故事分组到发布中,具有清晰的用户价值:
发布标准:
发布_1_MVP:
- 行走骨架 + 最小增强
- "我们首先可以构建和交付什么?"
- 验证核心价值主张
发布_2:
- 基于反馈改进 MVP
- 添加重要但不关键的功能
未来发布:
- 可有可无的功能
- 竞争差异化
- 边缘案例和优化
输出格式
Mermaid 图(默认)
/故事映射 命令生成 Mermaid 流程图:
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#e1f5fe'}}}%%
flowchart LR
subgraph Backbone["用户旅程(骨干)"]
A1[搜索] --> A2[浏览] --> A3[购买] --> A4[跟踪]
end
subgraph R0["行走骨架"]
A1 --- S1[基本搜索]
A2 --- S2[列表视图]
A3 --- S3[购物车 + 结账]
A4 --- S4[订单状态]
end
subgraph R1["发布 1"]
S1 --- R1S1[过滤器]
S2 --- R1S2[详情页面]
S3 --- R1S3[支付选项]
S4 --- R1S4[邮件通知]
end
YAML 导出
故事地图:
标题: "电商平台"
人物角色: ["购物者", "高级用户"]
骨干:
- id: 搜索
名称: "搜索产品"
行走骨架: "基本关键词搜索"
- id: 浏览
名称: "浏览目录"
行走骨架: "带有缩略图的列表视图"
发布:
- 名称: "MVP"
故事:
- 活动: 搜索
故事: ["基本搜索", "过滤器"]
- 活动: 浏览
故事: ["列表视图", "详情页面"]
与需求收集的集成
从收集的需求
1. 从 /discover 加载合成需求
2. 从功能需求识别用户活动
3. 将需求映射到骨干活动
4. 在每个活动内优先排序
5. 切片成发布
工作流程
# 首先收集需求
/需求收集:discover "电商平台"
# 从需求创建故事地图
/需求收集:故事映射 --domain "电商"
# 将地图导出到可视化
/需求收集:故事映射 --domain "电商" --format mermaid
最佳实践
做
- 在映射会话中包含利益相关者
- 保持骨干有 5-10 个活动
- 使行走骨架真正最小化
- 为用户价值切片发布,而不是技术便利
- 随学习重新访问和更新
不做
- 初始过度详细地图
- 按技术层组织(UI, API, DB)
- 跳过行走骨架(它是基础)
- 使发布过大
- 将地图视为不可变的
相关命令
/故事映射- 从收集的需求生成故事地图/旅程映射- 客户旅程可视化(互补)/发现- 在映射前收集需求/差距- 检查缺失覆盖
参考文献
详细指南:
外部:
- Jeff Patton 的《用户故事映射》书籍
- jpattonassociates.com
版本历史
- v1.0.0 (2025-12-26): 初始发布 - 用户故事映射技能
最后更新: 2025-12-26