Steve Sun

用户故事地图

用户故事是软件开发和项目管理中的常用术语。主旨是以日常语言或商务用语撰写句子,是一段简单的功能表述。以客户或使用者的观点撰写下有价值的功能、引导、框架来与使用者进行互动,进而推动工作进程。可以被认为是一种规格文件,但更精确而言,它代表客户的需求与方向。

在敏捷开发需求分析阶段,要使用一些流程工具,如用户故事地图,来把那些抽象、模糊的用户需求,转化为具体的、分优先级的、模块化的用户故事。

一个用户地图看起来是这样的。

绘制用户故事地图的过程

绘制用户故事地图应遵循一些基本原则:

  1. 边思考边记录,把所有过程可视化到便签纸上
  2. 聚焦整体,不要过早陷入细节
  3. 成果排优先级,而不是功能
  4. 验证产品要解决的问题是否真实存在
  5. 使用具象化方案,比如高保真原型或手绘
  6. 通过原型和用户测试来验证想法
  7. 用户地图的目的是让团队能达成有效沟通,提出问题和评估工作量
  8. 估算工作量时,度量越频繁,准确度越高

使用目标层级

在拆分用户故事时,应遵循逐层拆分的原则,每一层级只聚焦这一层级的任务颗粒度,不要过早陷入细节。

首先是设定宏观的活动,比如把用户需求分解为几个大的活动,如查看账户、存钱等。

接下来是梳理主干故事。针对每一个活动,拆分成一个个步骤,这些步骤就是主干故事。每一个主干故事:

  1. 是一个动词短语
  2. 故事和故事之前应该保持同样的层级
  3. 从左到右按时间顺序排列,过程中想到任何中间环节都可以随时插入改变顺序

第三步是针对每一个主干故事,通过头脑风暴的形式补充更多小的用户故事,用便签纸贴在下边。

最后按优先级,把重要的用户故事放在上面,不那么重要的放在下边。然后横向划分出不同的泳道,把故事按特定的目标成果划分为不同的阶段。

比如第一阶段完成基本的功能开发,那么横向的第一排所有用户故事就是第一个版本需要完成的工作。

这样就完成了用户故事的设计。我们重新梳理一下过程:

  1. 划分重要的活动
  2. 梳理主干故事
  3. 完善用户故事
  4. 团队头脑风暴补充遗漏的用户故事
  5. 从上到下排优先级
  6. 横向切分用户故事,划分出每一个迭代的工作和关键成果

运用设计思维

上面介绍了用户故事的绘制过程,但是其实找到真正的用户需求点才是最难的。为了从特定领域的客户或用户那里挖掘出有价值的需求,通常需要使用设计思维(Design Thinking)来帮助团队沟通、寻找焦点问题。

设计思维一共有五步。

  • 共情:沟通,找到问题。
  • 定义:聚焦若干重要问题,详细阐述。
  • 想法:每一个问题构思出多个解决方案。
  • 原型:制作具体的可视化的原型。
  • 测试:于用户一起完成测试,收集反馈。

组成探索团队

一个探索团队由三名重要角色组成:

  • 懂产品和需求的 Product Owner
  • 懂设计和交互的 UX Designer
  • 懂技术的 Senior Developer

前期的需求探索阶段,应该由这支组成人数不超过 5 人的团队完成,要避免委员会设计(即团队多数成员参与到设计过程中,导致混乱和不一致)。

前期排列任务优先级时也应遵循这样的优先级:

业务目标 > 客户/用户目标 > 功能