软件工程 用户故事地图 是什么 怎么用 实例

2024-09-03 08:58

本文主要是介绍软件工程 用户故事地图 是什么 怎么用 实例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

用户故事地图是一种将用户故事可视化的方法

 

用户故事地图的方法主要用于解决敏捷需求分析过程中的问题:

  • 用户需求难以排列优先级。
  • 很难了解不同粒度故事(史诗故事、主题故事以及故事)之间的关系。
  • 不能方便地了解系统提供的功能的完整性。
  • 不能方便地了解系统提供的工作流。
  • 不能方便地利用递增和迭代的方式去确定发布计划以及发布目标。

 

在精益中有MVP(Minimum Viable Product,最小化可用产品)的概念。MVP的目的是以最小的投入发布对用户有价值的产品,快速试错,并通过不停的迭代最终找到产品的正确方向。

这个思路很好,但如何确认backlog中的内容是“最小的”而且“可用”的产品却是件很困难的事情。

 

使用Story来描述需求的目的是为了协助团队进行讨论,以便最终确认需求(也就是Specification)。

用户故事地图的作用就是将User Story的简单描述:As a .... I want to ... so that ...,用可视化的方式展现在团队面前,让团队可以仔细梳理、讨论、确认这个Story包含的内容,最终产出Specification进行开发。

 

用户故事地图的结构

每个用户故事地图代表一个完整的用户故事:

  • 地图的核心是一条从左到右的时间线。
  • 时间线的上部放置最大粒度的内容(可以理解为Epic)。
  • 时间线的下部的第一行放置二级粒度内容(可以理解为Backlog Item),并在每个一级粒度下按照从左到右的优先级进行放置。
  • 每个二级粒度内容的下面,自上而下放置三级粒度内容(可以理解为Task)。

最终绘制出来一个完整的端到端的用户故事。

 

用户故事地图规范

  • 蓝色便签表示用户任务(User Tasks)。
  • 绿色便签表示用户行为(User Activies)。
  • 黄色便签表示用户故事(User Stories),在每个用户任务下自上而下排列,便于我们确定优先级

一般来说用户会按照从左到右的顺序来使用你的系统(用户故事地图)。

 

用户故事地图样例

下图是一个蛋糕制作及心得分享系统的用户故事地图:

第三行所包含的内容就是“大家在电子邮件系统所要做的事情”,包括:注册、配置信息、发布、下单、支付等。

第二行对这些事情进行了分组。

与一般用户故事地图不同的是,这张图当中增加了第一行的角色划分,以使整个流程更加清晰明了。

黄色的便签的第一行包含了最小化的用户故事,如:“蛋糕小白”的注册只包括手机注册和验证码登录,其他如微信绑定则不在此行,放入更靠下的便签中。

 

现在如果我们专注于从左到右完成第一行的黄色便签,就可以确保很快发布一款包含了最基本功能的蛋糕制作及心得分享系统,这样就可以验证我们的系统整体架构可行。

同时也可以帮助我们对系统的功能进行端到端的测试,确保我们可以从用户处获取到反馈,知道我们是否解决了它们的问题(提供了商业价值)。

 

https://support.huaweicloud.com/reference-devcloud/devcloud_reference_020201.html

这篇关于软件工程 用户故事地图 是什么 怎么用 实例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1132568

相关文章

MySQL多实例管理如何在一台主机上运行多个mysql

《MySQL多实例管理如何在一台主机上运行多个mysql》文章详解了在Linux主机上通过二进制方式安装MySQL多实例的步骤,涵盖端口配置、数据目录准备、初始化与启动流程,以及排错方法,适用于构建读... 目录一、什么是mysql多实例二、二进制方式安装MySQL1.获取二进制代码包2.安装基础依赖3.清

SpringBoot 异常处理/自定义格式校验的问题实例详解

《SpringBoot异常处理/自定义格式校验的问题实例详解》文章探讨SpringBoot中自定义注解校验问题,区分参数级与类级约束触发的异常类型,建议通过@RestControllerAdvice... 目录1. 问题简要描述2. 异常触发1) 参数级别约束2) 类级别约束3. 异常处理1) 字段级别约束

Apache Ignite缓存基本操作实例详解

《ApacheIgnite缓存基本操作实例详解》文章介绍了ApacheIgnite中IgniteCache的基本操作,涵盖缓存获取、动态创建、销毁、原子及条件更新、异步执行,强调线程池注意事项,避免... 目录一、获取缓存实例(Getting an Instance of a Cache)示例代码:二、动态

JSONArray在Java中的应用操作实例

《JSONArray在Java中的应用操作实例》JSONArray是org.json库用于处理JSON数组的类,可将Java对象(Map/List)转换为JSON格式,提供增删改查等操作,适用于前后端... 目录1. jsONArray定义与功能1.1 JSONArray概念阐释1.1.1 什么是JSONA

MySQL中的LENGTH()函数用法详解与实例分析

《MySQL中的LENGTH()函数用法详解与实例分析》MySQLLENGTH()函数用于计算字符串的字节长度,区别于CHAR_LENGTH()的字符长度,适用于多字节字符集(如UTF-8)的数据验证... 目录1. LENGTH()函数的基本语法2. LENGTH()函数的返回值2.1 示例1:计算字符串

java向微信服务号发送消息的完整步骤实例

《java向微信服务号发送消息的完整步骤实例》:本文主要介绍java向微信服务号发送消息的相关资料,包括申请测试号获取appID/appsecret、关注公众号获取openID、配置消息模板及代码... 目录步骤1. 申请测试系统2. 公众号账号信息3. 关注测试号二维码4. 消息模板接口5. Java测试

MySQL数据库的内嵌函数和联合查询实例代码

《MySQL数据库的内嵌函数和联合查询实例代码》联合查询是一种将多个查询结果组合在一起的方法,通常使用UNION、UNIONALL、INTERSECT和EXCEPT关键字,下面:本文主要介绍MyS... 目录一.数据库的内嵌函数1.1聚合函数COUNT([DISTINCT] expr)SUM([DISTIN

怎么用idea创建一个SpringBoot项目

《怎么用idea创建一个SpringBoot项目》本文介绍了在IDEA中创建SpringBoot项目的步骤,包括环境准备(JDK1.8+、Maven3.2.5+)、使用SpringInitializr... 目录如何在idea中创建一个SpringBoot项目环境准备1.1打开IDEA,点击New新建一个项

SpringSecurity显示用户账号已被锁定的原因及解决方案

《SpringSecurity显示用户账号已被锁定的原因及解决方案》SpringSecurity中用户账号被锁定问题源于UserDetails接口方法返回值错误,解决方案是修正isAccountNon... 目录SpringSecurity显示用户账号已被锁定的解决方案1.问题出现前的工作2.问题出现原因各

MySQL 用户创建与授权最佳实践

《MySQL用户创建与授权最佳实践》在MySQL中,用户管理和权限控制是数据库安全的重要组成部分,下面详细介绍如何在MySQL中创建用户并授予适当的权限,感兴趣的朋友跟随小编一起看看吧... 目录mysql 用户创建与授权详解一、MySQL用户管理基础1. 用户账户组成2. 查看现有用户二、创建用户1. 基