# Lesson 19: UX 场景与用户旅程设计

## 本课目标

- 掌握 WDS 场景大纲（Scenario Outline）的 8 个核心组成部分
- 理解场景创建工作流的 9 步流程
- 学会从 Trigger Map 的驱动力推导出具体的用户旅程
- 掌握场景验证标准，确保场景质量达标

## 核心内容

### 从 Trigger Map 到 UX 场景

上一课你学了 Trigger Map——知道了用户"为什么"要用你的产品。但"为什么"还不够——你需要回答"用户具体怎么用"。

```
Trigger Map 告诉你：
  用户因为"害怕忘记记账"（负向驱动力）想用你的产品

UX 场景告诉你：
  用户在"外出吃完午饭付现金后"（情境）
  打开 App（入口）→ 拍发票（操作）→ AI自动分类（系统）
  → 确认记录（结果）→ 安心（情感收益）
```

**场景 = 驱动力 + 情境 + 路径 + 结果**

> **延伸阅读**：UX 场景中的"阳光路径"在 **Lesson 22（阶段 4）**中会被 `/e2e` 命令转化为 Playwright 端到端测试——每条路径验证从入口到结果的完整用户流程。场景验证的 25 项检查标准也会作为 **Lesson 23（阶段 4）**质量门禁的验收依据。

### 什么是场景大纲（Scenario Outline）？

WDS 的场景大纲是一种结构化的用户旅程描述方式。和传统的用户故事（User Story）不同，场景大纲始终追踪"用户的心理状态"——不只是"用户做了什么"，还要说清"用户为什么做、做了之后感觉如何"。

**关键原则**："阳光路径"（Sunshine Path）——每个场景只描述一条最佳路径，不考虑异常情况。把异常和边界情况留给后续的开发阶段。

### 场景的 8 个核心组成部分

每个场景大纲包含 8 个不可缺少的部分：

```
┌─────────────────────────────────────────────────┐
│  1. Transaction（交易/核心任务）                   │
│     用户要完成什么核心任务？                       │
│     例："记录一笔午餐消费"                        │
├─────────────────────────────────────────────────┤
│  2. Business Goal（商业目标）                      │
│     这个场景服务于哪个商业目标？                   │
│     例："提升日活跃用户数"                        │
├─────────────────────────────────────────────────┤
│  3. User & Situation（用户与情境）                 │
│     谁在什么情况下触发了这个场景？                 │
│     例："小微企业主，刚在外面吃完午饭，用现金付了款"│
├─────────────────────────────────────────────────┤
│  4. Driving Forces（驱动力）                      │
│     什么心理驱动力推动用户行动？                   │
│     例："害怕忘记这笔现金支出，月底对不上账"       │
├─────────────────────────────────────────────────┤
│  5. Device（设备）                                │
│     用户用什么设备？                              │
│     例："手机（iOS/Android）"                     │
├─────────────────────────────────────────────────┤
│  6. Entry（入口）                                 │
│     用户从哪里进入这个场景？                       │
│     例："锁屏推送提醒 / 主动打开 App"             │
├─────────────────────────────────────────────────┤
│  7. Best Outcome（最佳结果）                      │
│     场景的最理想结果是什么？（包括情感结果）        │
│     例："3秒内完成记账，感觉'搞定了'"            │
├─────────────────────────────────────────────────┤
│  8. Shortest Path（最短路径）                     │
│     从入口到最佳结果的最短操作路径                  │
│     例："打开App → 点击'+' → 拍发票 → 确认"     │
└─────────────────────────────────────────────────┘
```

**为什么是这 8 个而不是别的？**

```
Transaction + Business Goal  → 连接到"商业价值"
User & Situation            → 连接到"用户画像"
Driving Forces              → 连接到"Trigger Map"
Device + Entry              → 连接到"技术实现"
Best Outcome                → 连接到"成功标准"
Shortest Path               → 连接到"UX 设计"
```

每个部分都对应设计和开发中的一个关键决策——没有多余的。

### 场景创建的 9 步工作流

WDS 提供一个结构化的 9 步流程来创建场景：

```
Step 1: 加载 Trigger Map
        ↓ 读取已完成的 Trigger Map 文档

Step 2: 识别核心交易
        ↓ 从驱动力推导出用户的核心任务
        ↓ 例：驱动力"害怕忘记记账" → 交易"快速记录消费"

Step 3: 选择目标用户群
        ↓ 确定这个场景服务哪个用户群

Step 4: 描述情境
        ↓ 用户在什么具体情境下触发这个场景

Step 5: 关联驱动力
        ↓ 从 Trigger Map 中选择相关的正向/负向驱动力

Step 6: 确定设备和入口
        ↓ 用户用什么设备、从哪里进入

Step 7: 定义最佳结果
        ↓ 包括功能结果和情感结果

Step 8: 设计最短路径
        ↓ 用户从入口到结果的最少步骤

Step 9: 验证和编号
        ↓ 检查场景完整性，分配编号
```

**启动场景创建**：

```bash
/bmad-wds-scenarios
```

### 完整场景示例

以"AI 记账工具"为例，看一个完整的场景大纲：

```markdown
## Scenario 1: 快速记录现金消费

### Transaction（核心任务）
用户通过拍照发票/收据快速记录一笔现金消费

### Business Goal（商业目标）
提升日活跃用户数（目标：用户每天至少记录 1 笔）

### User & Situation（用户与情境）
小微企业主张先生，34岁，开了一家面馆。
刚在隔壁便利店用现金买了厨房用品（¥156），
站在便利店门口，手里拿着收据。

### Driving Forces（驱动力）
- [N1] 害怕忘记这笔现金支出（负向）
  → 月底对账时发现差额会非常焦虑
- [N3] 不想花太多时间在记账上（负向）
  → 还要赶回去准备午市
- [P1] 想看到支出都被准确分类（正向）
  → 月末可以看清楚各类支出占比

### Device（设备）
手机（Android），单手操作

### Entry（入口）
用户主动打开 App（锁屏快捷入口）

### Best Outcome（最佳结果）
- 功能结果：消费记录完整保存，自动分类为"原材料采购"
- 情感结果：安心（"这笔不会忘了"）+ 效率感（"10秒搞定"）
- 时间目标：整个过程不超过 10 秒

### Shortest Path（最短路径）
1. 锁屏长按 App 图标 → 选择"快速记账"
2. 手机自动打开相机 → 拍照收据
3. AI 自动识别：金额 ¥156，商家"XX便利店"
4. AI 自动分类："原材料采购"
5. 用户确认 → 点击"✓"保存
6. 显示"记录成功"+ 今日消费统计
```

### 从一个 Trigger Map 推导多个场景

一个 Trigger Map 通常会产出 5-15 个场景。关键是确保 Trigger Map 中的每个重要驱动力都至少有一个场景覆盖。

**场景推导矩阵**：

```
驱动力              →  场景
─────────────────────────────────────
[N1] 害怕忘记记账    →  Scenario 1: 快速记录现金消费
                      Scenario 2: 定时记账提醒

[N2] 担心现金流断裂  →  Scenario 3: 查看现金流预测
                      Scenario 4: 低余额预警通知

[P1] 想看利润趋势    →  Scenario 5: 月度财务报告
                      Scenario 6: 行业对标分析

[P2] 一键生成报表    →  Scenario 7: 生成税务报表
                      Scenario 8: 导出给会计

[N3] 不想花太多时间  →  Scenario 1: 快速记录（复用）
                      Scenario 9: AI 自动分类设置
```

**注意**：一个场景可以服务多个驱动力（如 Scenario 1 同时满足 N1 和 N3），一个驱动力也可以需要多个场景来满足。

### 场景验证标准

创建完场景后，用验证工作流检查质量：

```bash
/bmad-wds-scenarios-validate
```

**验证包含 25 个检查项，分 4 个维度**：

#### 维度 1：完整性检查

| 检查项 | 标准 |
|--------|------|
| 8 个组成部分 | 每个场景是否包含全部 8 个部分 |
| 驱动力来源 | 驱动力是否能在 Trigger Map 中找到 |
| 商业目标 | 是否关联到已确认的商业目标 |
| 用户群 | 是否对应已识别的目标用户群 |

#### 维度 2：一致性检查

| 检查项 | 标准 |
|--------|------|
| 情境合理性 | 用户+情境+设备的组合是否现实 |
| 路径-结果匹配 | 最短路径是否确实能达到最佳结果 |
| 驱动力-功能匹配 | 路径中的功能是否能满足/缓解驱动力 |

#### 维度 3：质量检查

| 检查项 | 标准 |
|--------|------|
| 阳光路径 | 是否只描述了正常路径（无异常分支） |
| 具体程度 | 情境描述是否足够具体（能想象出画面） |
| 情感结果 | 最佳结果是否包含情感维度 |
| 步骤精简 | 最短路径是否真的是"最短"的 |

#### 维度 4：覆盖度检查

| 检查项 | 标准 |
|--------|------|
| 驱动力覆盖 | Trigger Map 中的核心驱动力是否都有场景覆盖 |
| 用户群覆盖 | 优先用户群是否都有场景 |
| 商业目标覆盖 | 核心商业目标是否都有场景支撑 |

### 场景与后续设计的衔接

场景大纲完成后，就进入 UX 设计阶段（Phase 4）。场景到设计的转化逻辑是：

```
场景中的"最短路径"
    ↓ 每一步变成一个"页面"或"状态"

Scenario 1 最短路径：
  Step 1: 锁屏长按    → 不需要设计（系统行为）
  Step 2: 打开相机     → 设计：相机界面
  Step 3: AI 识别      → 设计：识别中的加载状态
  Step 4: AI 分类      → 设计：识别结果展示页
  Step 5: 确认保存     → 设计：确认按钮和动画
  Step 6: 成功反馈     → 设计：成功页面 + 今日统计
```

**每个页面的设计会参考**：

- **场景中的驱动力**：决定页面强调什么（负向驱动力→强调安心感）
- **场景中的设备**：决定布局方式（手机单手操作→大按钮在底部）
- **场景中的时间目标**：决定交互复杂度（10秒→最少点击次数）
- **场景中的情感结果**：决定视觉风格（安心→绿色确认、柔和动画）

### 实操：为"AI 记账工具"创建 3 个核心场景

**步骤 1：启动场景创建**

```bash
/bmad-wds-scenarios
```

**步骤 2：加载 Trigger Map**

```
Saga/Freya：检测到 Trigger Map 文件。
共发现 6 个驱动力（3 正向 + 3 负向）。
推荐创建场景的顺序：

1. 先为最强的负向驱动力创建场景（影响最大）
2. 再为核心正向驱动力创建场景
3. 最后补充覆盖剩余驱动力

要开始吗？
```

**步骤 3：逐个创建场景**

```
你：开始创建第一个场景。

Saga/Freya：好的。基于 [N1] 害怕忘记记账 这个驱动力。
让我们定义 8 个组成部分——

Transaction：用户要完成什么核心任务？
请用一句话描述。

你：快速记录一笔现金消费。

Saga/Freya：很好。接下来——
User & Situation：
描述一个具体的场景。
谁？在哪？在做什么？为什么此时需要记账？

你：张先生刚在便利店买了厨房用品，站在门口拿着收据。
...
```

**步骤 4：验证场景**

```bash
/bmad-wds-scenarios-validate
```

```
场景验证报告
========================

Scenario 1: 快速记录现金消费  ✅ 通过
Scenario 2: 查看现金流预测    ⚠️ 有条件通过
  → 最短路径步骤 4 可以合并到步骤 3
Scenario 3: 月度财务报告      ✅ 通过

覆盖度：
  驱动力覆盖：5/6（[P3] 行业对标未覆盖）
  用户群覆盖：1/2（自由职业者未覆盖）

建议：补充 1-2 个场景覆盖 [P3] 和自由职业者用户群
```

### 场景数量指南

| 产品复杂度 | 推荐场景数 | 说明 |
|-----------|-----------|------|
| 简单（单一功能） | 3-5 个 | 覆盖核心使用路径 |
| 中等（多功能 App） | 8-12 个 | 覆盖所有核心驱动力 |
| 复杂（平台型产品） | 15-20 个 | 按用户群分组覆盖 |

**MVP 建议**：先创建 3-5 个核心场景，覆盖最强的驱动力和最重要的用户群。随着产品演化再补充更多场景。

## 🛠️ 实操练习

> **⚠️ 实操须知**：命令需在新 Claude Code session 中执行。详见 [practice-notice.md](../shared/practice-notice.md)

完成以下练习，掌握 UX 场景创建工具。

### 练习 1：创建 UX 场景

```bash
# 启动场景创建工作流
/bmad-wds-scenarios
```

**任务**：
1. 确保已有 Trigger Map（上一课的产出）
2. 为最强的负向驱动力创建第一个场景
3. 使用 8 组成部分格式（Transaction、User & Situation、Entry...）
4. 定义最短路径（Shortest Path）

**预期产出**：
- 3-5 个核心场景大纲
- 每个场景包含 8 个组成部分
- 保存在 `design-artifacts/scenarios/` 的场景文件

### 练习 2：验证场景质量

```bash
# 验证场景
/bmad-wds-scenarios-validate
```

**任务**：
- 运行验证工作流
- 检查驱动力覆盖率
- 检查用户群覆盖率
- 根据建议补充缺失的场景

### 练习 3：从场景到 UX 设计

了解场景如何衔接到 UX 设计：

```bash
# UX 设计工作流
/bmad-wds-ux-design

# 线框图生成
/bmad-wds-wireframes

# 原型制作
/bmad-wds-prototyping
```

**检查清单**：
- [ ] 成功启动 `/bmad-wds-scenarios`
- [ ] 创建了 3-5 个核心场景
- [ ] 每个场景都有 8 个组成部分
- [ ] 运行了场景验证
- [ ] 驱动力覆盖率 ≥ 80%

---

## 常见问题

**Q: 场景和 BMM 的用户故事（User Story）有什么区别？**

A: 用户故事是"作为[角色]，我想[功能]，以便[价值]"——偏功能视角。场景大纲包含 8 个维度，特别是驱动力和情感结果——偏心理视角。用户故事告诉开发者"做什么"，场景告诉设计师"为什么这样做"。两者互补，不冲突。

**Q: "阳光路径"原则会不会导致忽略异常情况？**

A: 不会。"阳光路径"只是说在场景创建阶段不考虑异常——这是为了保持场景的清晰和可读性。异常情况会在后续的 UX 设计阶段和开发阶段处理。特别是 BMM 的 Story 中会有详细的 BDD（Behavior-Driven Development，行为驱动开发）验收标准来覆盖边界情况。

**Q: 场景创建需要多长时间？**

A: 单个场景大约 10-15 分钟（如果 Trigger Map 已经做好的话）。一个中等复杂度的产品，8-12 个场景大约需要 2-3 小时。加上验证和修改，一个工作日可以完成。

**Q: 场景是否可以由多人协作创建？**

A: 可以，而且推荐。PM 负责 Transaction 和 Business Goal，设计师负责 Entry 和 Shortest Path，开发者审核 Device 和技术可行性。WDS 的 Saga 代理可以帮你协调这个过程。

## 下一步

请调用 `AskUserQuestion` 展示以下选项，让学习者点击选择；从每条中提炼 1-5 个词作为 label，其余写入 description，不要要求输入数字：

- 进入下一课：Lesson 20 - 故事讲述：产品叙事与演示
- 返回主菜单
- 退出学习

---
*阶段 3 | Lesson 19/26 (阶段内 3/4) | 上一课: Lesson 18 - Trigger Map | 下一课: Lesson 20 - 故事讲述*
