第2章:权限需求分析——用户故事地图、角色-权限矩阵、场景卡片

2.1 业务背景与痛点

在协同办公类SaaS产品中,权限模块往往是后期返工率最高的部分。开发团队经常遇到以下问题:

  • 需求遗漏:早期只定义了“管理员”和“普通用户”,上线后才发现缺少“项目审计员”角色。
  • 边界模糊:产品说“编辑者可以删除自己的文档”,开发理解成“编辑者可以删除所有文档”。
  • 测试困难:没有明确的权限矩阵,测试用例只能靠猜测,导致线上出现越权操作。

这些问题的根源在于:权限需求没有被结构化表达。本章将用三种互补的工具——用户故事地图、角色-权限矩阵、场景卡片——来系统化地捕获、组织、验证权限需求。

📌 课程核心观点: 用户故事地图负责“发现”,角色-权限矩阵负责“定义”,场景卡片负责“验证”。三种工具共同构成权限需求的完整闭环。

2.2 用户故事地图:建立权限的“用户视角”

用户故事地图不是简单的用户故事列表,而是按用户活动和任务步骤组织的二维结构。它帮助团队在全局视角下发现不同角色的权限差异。

2.2.1 识别角色与活动

以一个知识库系统为例,我们通过用户调研识别出以下角色和核心活动:

角色 核心活动 关键任务(含权限相关)
超级管理员 系统配置 创建空间、设置全局策略、冻结用户
空间管理员 空间管理 邀请成员、设置空间可见性、删除文档
编辑者 内容创作 新建文档、编辑文档、移动文档
查看者 内容消费 浏览文档、评论、下载附件
访客 临时访问 通过链接查看公开文档(无评论权限)

2.2.2 构建用户故事地图

将上述任务按“用户访问产品的完整旅程”从左到右排列,形成一条“时间线”或“流程线”。每个角色对应的任务卡片放在对应活动下方:

  1. 第一层(用户活动):进入系统 → 查找内容 → 阅读/互动 → 管理内容 → 退出系统
  2. 第二层(具体任务):在每个活动下,用卡片列出各角色的具体任务,并用颜色标记直接标注权限差异。例如,在“管理内容”活动下,“删除文档”卡片只有超级管理员和空间管理员拥有,编辑者只能“归档”,查看者看不到该卡片。
  3. 输出产物:一张物理或数字化的故事墙,让所有干系人对“谁在什么情况下能做什么”达成共识。
💡 实用技巧: 在用户故事地图中,使用红/黄/绿三种颜色的便利贴来标记权限状态:绿色表示“有权操作”,黄色表示“需二次确认”,红色表示“无权操作”(仅作为提示)。这能直观暴露权限冲突。

2.3 角色-权限矩阵:把模糊需求变成“可执行合约”

用户故事地图产出的还是相对松散的结构,下一步需要将其转化为精确的二维表格——行是功能/资源,列是角色,单元格用 ✓ / ✗ / 条件 标识权限。

2.3.1 从故事地图中提取矩阵元素

将用户故事地图中的每个任务卡片映射为矩阵中的一行“权限对象”,每个角色映射为一列。例如:

权限对象(资源+操作) 超级管理员 空间管理员 编辑者 查看者 访客
创建新空间 ✓ ✗ ✗ ✗ ✗
删除空间 ✓ 仅限自己创建 ✗ ✗ ✗
编辑空间内文档 ✓ ✓ ✓ ✗ ✗
删除任意文档 ✓ 空间内 仅限自己 ✗ ✗
导出文档为PDF ✓ ✓ ✓ ✓ ✗
添加外部评论 ✓ ✓ ✓ ✓ ✗
⚠️ 常见陷阱: 角色-权限矩阵容易忽略“资源归属”条件。例如,编辑者只能删除自己创建的文档,这种条件必须明确写入单元格,不能仅在备注中说明。否则开发会将其理解为“编辑者可以删除所有文档”。

2.3.2 矩阵的分类与分层

在实际项目中,一个完整的权限矩阵可能包含数十甚至上百行。建议按功能模块对矩阵进行分组:

  • 空间管理模块:创建、删除、修改空间属性、空间成员管理。
  • 文档管理模块:创建、编辑、删除、移动、复制、分享、导出文档。
  • 系统设置模块:角色管理、日志审计、全局策略配置。

分组后的矩阵更容易阅读,也便于在Axure中按模块设计原型页面。

2.4 场景卡片:为原型设计提供“行为用例”

矩阵是静态的,但用户的操作是动态的。场景卡片用于描述一个具体用户在一个具体情境下,为完成一个目标所经历的操作路径。

2.4.1 标准场景卡片结构

每张卡片包含以下字段,直接支撑Axure原型的交互逻辑:

字段 示例内容 对原型设计的价值
场景名称 编辑者归档自己已发布的文档 定义原型页面的标题或状态
前置条件 用户已登录;文档处于“已发布”状态 说明进入页面时需加载的数据
触发事件 用户点击文档列表中的“归档”按钮 确定交互控件(按钮位置、可用状态)
用户操作步骤 1. 点击归档按钮
2. 弹出二次确认对话框
3. 点击确认归档
设计对话框、操作反馈和跳转逻辑
系统反馈 文档从列表中消失;出现成功提示条;文档状态变为“已归档” 设定原型中的反馈组件(toast、状态切换)
验收标准 查看者看不到“归档”按钮;编辑者无法归档他人文档 作为原型审查时的验收检查点

2.4.2 从矩阵导出场景卡片

矩阵中的每个 ✓ 或 条件 都可以衍生出至少一个场景卡片。特别地,对权限边界(即“什么情况下不能做”)也需要创建卡片:

  • 正常场景:空间管理员成功邀请新成员(矩阵中 ✓)。
  • 异常场景:查看者尝试点击“删除文档”按钮,按钮为灰色不可点击,并悬浮提示“您没有权限执行此操作”。
  • 边界场景:编辑者尝试删除自己已归档的文档,系统提示“已归档文档需联系空间管理员删除”。
🔧 课程实践建议: 在制作第一版Axure原型时,优先为异常场景和边界场景设计交互反馈。因为80%的权限交互逻辑都集中在“用户无权操作时会发生什么”。

2.5 三者的联动关系(SVG)

下面的SVG展示了用户故事地图、角色-权限矩阵、场景卡片在整个权限需求分析流程中的协作关系,以及它们如何共同输送给后续的原型设计环节。

权限需求分析工具协作流程 权限需求分析三大工具协作流程图 用户故事地图 角色-权限矩阵 场景卡片 Axure权限原型 流程说明 1. 故事地图识别出角色、活动、任务及其权限语义 2. 矩阵将权限精确化为角色×功能的二维合约 3. 卡片为每个权限点生成可执行的行为用例,直接指导原型 可选直接映射

2.6 验收标准:如何确认需求分析到位?

在进入Axure原型设计之前,请用以下清单验证本章的工作成果:

  • 完整性:用户故事地图至少覆盖了所有识别出的角色和核心活动,且每个活动下的任务都标注了权限状态。
  • 精确性:角色-权限矩阵的每个单元格都有明确的值(✓ / ✗ / 条件),没有空单元格或模糊表述。
  • 可测试性:场景卡片覆盖了所有“✓”对应的正常场景,以及至少50%的“✗”对应的异常/边界场景。
  • 一致性:三种工具之间没有相互矛盾的需求(例如:矩阵中编辑者可删除自己文档,但卡片中未描述前置条件)。
💡 团队协作建议: 将本章产出的角色-权限矩阵打印出来贴在墙上,在后续原型设计过程中,每次遇到权限决策(如按钮显示/隐藏)都先查看矩阵,减少主观判断带来的偏差。