[小编]上周六了解了用户故事地图后,小编又查阅了一些资料,找到了以下这篇关于如何组织用户故事地图规划的文章,分享给大家。也希望大家如果有好的实践,也可以留言一起交流。

原文地址:http://winnipegagilist.blogspot.jp/2012/03/how-to-create-user-story-map.html


感谢Jeff Patton和其他人的大力推广,用户故事地图已经成为敏捷需求规划中的一个流行方法。用户故事地图可以将你的backlog变成一张二维地图,而不是传统的简单列表。用户故事地图可以解决以下问题:

– 让你更容易看清backlog的全貌
– 为新功能筛选(grooming)和划定优先级提供了更好的工具,帮助你做出决策
– 便于使用静默头脑风暴模式和其他协作方式来产生用户故事
– 帮助你更好的进行迭代增量式开发,同时确保早期的发布可以验证整体架构和解决方案
– 为传统的项目计划提供了一个更好的替代工具
– 有助于激发讨论和管理项目范围
– 允许你从多个维度进行项目规划,并确保不同的想法都可以得到采纳

创建用户故事地图的8个步骤

  1. 召集到3-5名对产品非常熟悉的人员参与。3-5人听上去像是个魔法数字,实际上是的。因为更少的人意味着你无法获得足够的建议,而更多人则会因为讨论和协调降低会议效率。
  2. 使用静默头脑风暴模式,让每个人在便签纸上写下自己认为重要的“所要做的事情”也就是 用户任务(user task)。每个人都用同样颜色的便签来书写自己的用户任务描述,这个阶段不要互相讨论。一旦大家都基本完成了准备,让每个人轮流大声读出自己的内容,并把便签纸全部放置在桌面上,这时如果出现重复的内容就可以省略掉:
    1. 根据你的产品规模,这个过程可能需要3-10分钟的时间;你可以观察大家的行为来判断是否需要停止。
    2. 基本上每张便签都会以一个动词开头,如:发送邮件,创建联系人,添加用户等。
    3. 这些便签组成了一级用户故事,Jeff Patton称为用户任务(user tasks),它们组成了用户故事地图上的 “行走的骨骼” (the walking skeleton)部分。
    4. 这时可以提示参与者:我们只用了很少的时间就完成了需求的收集过程,而且有些内容你可能没有想到,而其他人帮你想到了。
  3. 然后,让大家将桌面上所有的便签进行分组,将类似的任务分为一组,其他的的类似
    1. 这个过程最好也让大家采用静默模式进行,因为这样做会更快。如果发现重复的内容,就略过
    2. 基本上分组会很容易完成
    3. 这时同样观察每个人的行为,判断大家是否已经做完,基本上这个过程需要2-5分钟
  4. 选择另外一个颜色的便签,对每个组进行命名,并贴在每组便签的上部
  5. 对这些分好组的便签进行排序,一般按照用户完成操作的顺序,从左到右摆放
    1. 如果大家无法决定顺序,那么顺序可能没有那么重要(明显)。
    2. 这一组便签,Jeff Patton称为 用户活动 (User Activities)
    3. 这时你的地图应该类似于
  6. 现在,按照 “行走的骨骼” 用户行为 这行开始讲述用户故事,确保你没有遗漏任何用户行为和用户任务。这时一般由组织者进行讲述,其他人提出意见,甚至可以让最终用户来参与讨论。
  7. 这时,我们已经完成了用户故事地图的基本框架;可以在每个用户任务下面添加更加细节的 用户故事(User Stories)了。这时仍然建议使用静默头脑风暴的模式来进行第一轮用户故事的产生,同时借助如Persona和Scenario等方式协助完成这个过程。一旦你完成了用户故事的创建,就可以开始划定你的 发布计划(Releases)
    1. 一般我习惯在第一个发布中只选择每个用户任务的2-3个用户故事。这对于帮助大家排定优先级和范围将很有帮助。
    2. 基本上我们不必使用用户故事的标准句法(As a …)来书写这些故事,因为每张便签都处于我们的地图的特定位置,大家很容易识别其所处的场景和角色。
  8. 最后,针对第一个发布的所有用户故事进行分解,确保我们的第一个发布越小越好,基本上你需要保证在1-2个迭代后就可以发布你产品的第一个版本。

用户故事地图样例

这里是一个电子邮件系统的用户故事地图

– 第二行所包含的内容就是“大家在电子邮件系统所要做的事情”,包括类似:书写邮件,发送邮件,创建约会等等。
– 第一行对这些事情进行了分组
– 黄色的便签的第一行包含了最小化的用户故事,如:写邮件只包括发件人,收件人,标题,内容和发送取消按钮。其他如支持RTF,HTML格式,添加附件,从通讯部获取联系人邮件地址等,都不在此行,放入更靠下的便签中。
– 黄色便签上的更小的蓝色和橘黄色便签表示了不同的状态,比如:蓝色代表完成,橘黄色代表进行中(wip),这样你就可以看到项目的进展

现在如果我们专注于从左到右完成第一行的黄色便签,我们就可以确保很快发布一款包含了最最基本功能的邮件系统。这样我们就可以验证我们的邮件系统整体架构(发送邮件同时确保其可以被阅读)可行。同时也可以帮助我们对系统的功能进行端到端的测试,确保我们可以从用户处获取到反馈,知道我们是否解决了它们的问题(提供了商业价值)。注意我们在第一行没有包含“删除邮件”这一功能,因为并不一定要完成所有用户任务的开发。

用户故事地图规范

– 第2个步骤中的便签表示 用户任务(user tasks),蓝色便签
– 第3-4个步骤中的便签表示 用户行为(user activies),橘色便签。Jeff 称这两行的内容为 “行走的骨骼”(walking skeleton)和 “主干”(backbone)
– 用户故事(user stories),黄色便签在每个用户任务下自上而下排列,便于我们确定优先级
– 一般来说用户会按照从左到右的顺序来使用你的系统(用户故事地图)


请关注微信公众号 devopshub,获取更多关于DevOps研发运维一体化的信息

创建用户故事地图(User Story Mapping)的8个步骤的更多相关文章

  1. 用户故事地图(User Story Mapping)之初体验

    北京这几日的天儿真是好的出奇,白天风和日丽,晚上繁星漫天:在这样一个周六的下午,小编参加了一次北京敏捷社区(微信号:Agile1001)组织的活动:<用户故事地图User Story Mappi ...

  2. oreilly 用户故事地图

    这本书是完全买亏了,一点作用也没有. 整篇有用的字很少,还花了我¥16,总结如下: 用户故事模板: 作为用户角色(who),我想要某项功能(what),这样我可以 XXX(原因,why)

  3. UDAD 用户故事驱动的敏捷开发 – 演讲实录

    敏捷发展到今天已经在软件行业得到了广泛认可,但大多数敏捷方法都是为了解决某一特定问题而总结出来的特定方法或实践,一直缺乏一个可以将整个开发过程串接起来的成体系的方法.用户故事驱动的敏捷开发(User ...

  4. 用户故事驱动的敏捷开发 – 2. 创建backlog

    本系列的第一篇[用户故事驱动的敏捷开发 – 1. 规划篇]跟大家分享了如何使用用户故事来帮助团队创建需求的过程,在这一篇中,我们来看看如何使用这些用户故事和功能点形成产品backlog.产品backl ...

  5. 使用Leangoo玩转故事地图

    转自:https://www.leangoo.com/9944.html 用户故事是在敏捷开发中表达需求的主要方式,我们在做敏捷开发的时候都有需求池的概念,在Scrum中这个需求池就是产品backlo ...

  6. 《Swell数学》用户故事

    一.用户故事基础知识: 1. 从用户的角度来描述用户渴望得到的功能. 2. 用户故事是描述对用户有价值的功能,好的用户故事应该包括角色.功能和商业价值三个要素. 3. 一个用户故事只是以客户能够明白的 ...

  7. 用户故事(User Story)

    用户故事(User Story)       用户故事是描述对用户有价值的功能,好的用户故事应该包括角色.功能和商业价值三个要素.用户故事通常的格式为:作为一个<角色>, 我想要<功 ...

  8. 产品经理-需求分析-用户故事-敏捷开发 详解 一张图帮你了解Scrum敏捷流程

    产品经理-需求分析-用户故事-敏捷开发 详解 用户故事是从用户的角度来描述用户渴望得到的功能.一个好的用户故事包括三个要素:1. 角色:谁要使用这个功能.2. 活动:需要完成什么样的功能.3. 商业价 ...

  9. mysql 创建用户、授权等操作

    一, 创建用户: 命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明:username - 你将创建的用户名, host - 指 ...

随机推荐

  1. Winform开发框架之参数配置管理功能实现-基于SettingsProvider.net的构建

    在较早时期,我写过一篇文章<结合Control.FirefoxDialog控件,构造优秀的参数配置管理模块>,介绍过在我的Winform框架基础上集成的参数配置模块功能,但是参数模块的配置 ...

  2. asp.net各种cookie代码和解析

    Cookie是一段文本信息,在客户端存储 Cookie 是 ASP.NET 的会话状态将请求与会话关联的方法之一.Cookie 也可以直接用于在请求之间保持数据,但数据随后将存储在客户端并随每个请求一 ...

  3. C#中在AxWebBrowser控件注入JS脚本的方法

    /// <summary> /// 窗体加载 /// </summary> private void JS_Load(object sender, EventArgs e) { ...

  4. 【C#进阶系列】16 数组

    首先提一下,个人在项目中已经很少用到数组了,更多的时候使用List<>. 数组大小固定,如果只是用来存放数据,专门用来读取,更改当然方便.但是更多的时候我们需要进行增删改,这个时候用Lis ...

  5. .NET使用ZXing.NET生成中间带图片的二维码

    很久之前就有写这样的代码了,只是一直没记录下来,偶然想写成博客. 把之前的代码封装成函数,以方便理解以及调用. 基于开源的 ZXing.NET 组件,代码如下: 先添加对ZXing.NET的引用,然后 ...

  6. 框架SpringMVC笔记系列 二 传值

    主题:SpringMVC(第一节中再回顾复习一次) 学习资料参考网址: 1.http://www.icoolxue.com 2.http://haohaoxuexi.iteye.com/blog/13 ...

  7. [python拾遗]异常处理

    异常 异常(Exception)是因为程序的例外.违例.出错等情况而在正常控制流以外采取的行为,一般分为如下两个阶段: 1.异常发生:一个错误发生后被打印出来,称为未处理异常,而默认的处理则是自动输出 ...

  8. 2016读书List

    2016年读书书单. 1. <华尔街漫步> + <战胜华尔街>+ <华尔街之狼> 2. <野蛮大陆> 3. <第三帝国的最后十四天> 4. ...

  9. jquery.datepair日期时分秒选择器

    jquery.datepair是一个轻量级的jQuery插件,智能选择日期和时间范围,灵感来自于谷歌日历.Datepair将保持开始和结束日期/时间同步,并可以根据用户的操作设置默认值.该插件不提供任 ...

  10. Quartz.NET开源作业调度框架系列(三):IJobExecutionContext 参数传递

    前面写了关于Quartz.NET开源作业调度框架的入门和Cron Trigger , 这次继续这个系列, 这次想讨论一下Quartz.NET中的Job如何通过执行上下文(Execution Conte ...