敏捷项目需求拆解&发现用户故事
需求文档和敏捷中的Epic,User Story, Task之间是什么关系以及如何将需求文档转换成敏捷方式的描述,指导开发人员。
一直是很多公司团队比较困扰的问题,那么最近笔者为了解决这些问题,上了一些课程,
现将核心内容,总结如下,希望对大家有帮助,一起探讨~~
在项目开发过程中,由于历史或者出于方便和规范的原因项目经理一般还是喜欢使用word文档来描述需求。
举个电商的例子,一般文档结构会如下所示
-------------------------------------------------------------------------
- 前言
- 功能性需求
- 商铺管理场景
- 建店申请
- 提交申请
- 查询所有申请
- 查看单个申请
- 。。。。。。
- 店铺
- 。。。。。。
- 建店申请
- 商铺管理场景
------------------------------------------------------------------------
一、如何将需求文档的内容转化成敏捷中的术语
上面这种格式文档对于敏捷开发团队来说可能是比较生疏的,因为开发团队一般常见的都是敏捷中的常用术语,如User Story, Task...
那么需求改如何变成敏捷术语中的Business Epic,Feature,User Story和Task呢?
下面举个栗子,需求如何对应到 SAFe(Scaled Agile Framework)框架 --常规的敏捷框架适用于中小型项目团队,而且不具有扩展性。基于常规的敏捷框架,SAFe 定义了一个可扩展的敏捷框架模型,它适用于大型团队的合作开发,可以帮助提高团队之间的协作性,降低团队管理的复杂性。
对于SAFe想做更多了解请看官网 https://www.scaledagileframework.com/
或者 https://www.ibm.com/developerworks/cn/rational/1606_wanghy_saf/index.html

从上图可知,拿到需求文档,
第一步,我们需要找到需求描述中的名词,名词一般是用来表述某项业务,所有将会对应到Business Epic或者是大的Feature。(描述偏业务性)
第二步,我们需要找到名词所对应的动词,动词主语是用户或者是外部系统的一般可以转化成User Story,也就是用户故事。(描述偏业务性)
第三步,还是要找动词,动词主语是开发者的,一般会转化为Task,也就是具体工作。(描述偏技术性)
敏捷术语和代码的对应关系
- Business Epic -->库/包
- Feature -->类
- User Story -->方法
一、如何防止需求遗漏
找到了所有的名字之后我们可以拿出每一个Feature建立以下表来捕捉用户故事。
第一行,参考上面第二步,列出所有的主语是用户或外部系统的名词
第一列,总是写上CIDED(增查查改删),第一个查为查询所有信息,理解为列表,第二个查为查询单个详细信息
然后在对应的格子中填写是否有相应的动词对个某个实体的某个特定的操作。

上面的列表可产生自粗略的需求说明,用来捕捉遗漏的需求,也可用来将需求用这个表来过渡,然后用As...I want...so that...格式描述成用户故事。
用户故事变成Task这个一般技术人员都会,这里就不再赘述。
一些参考数据:
- 自动化测试用例/功能点 = 1.2
- 一天大概能编写15~18个测试用例
- 名字平均6.5个动词 (3~9个动词)
- 一个名词35个功能点
- 一个功能点约等于1人天
- 一个功能点价格约等于1k
- 调整因子1.3根号人天数
敏捷项目需求拆解&发现用户故事的更多相关文章
- 【DevCloud·敏捷智库】如何利用用户故事了解需求
摘要:这篇文章主要解决因为不能很好地理解需求而估算做不好的问题,在这里可以了解下如何利用用户故事了解需求. 背景 很多团队在应用敏捷开发时,对估算经常感到困惑.这里所说的估算是指产品列表条目(PBI, ...
- 【DevCloud · 敏捷智库】如何拆分用户故事
提起用户故事拆分,我们听得最多的就是INVEST原则(关于INVEST原则可以参考文章“用户故事等于需求说明”——你一定没有写好用户故事),但很多人面临的问题是拿到一个较大的用户故事时,该如何拆分才能 ...
- 用户故事(User Story)
用户故事(User Story) 用户故事是描述对用户有价值的功能,好的用户故事应该包括角色.功能和商业价值三个要素.用户故事通常的格式为:作为一个<角色>, 我想要<功 ...
- 实验九 FBG 团队项目需求改进与系统设计
任务一 A.<项目需求规格说明书>分析 根据老师的指导以及本周所学的OOA,分析改进上周编写的<项目需求规格说明书>,发现需求项目书UML图例描述不够完善,仅仅是用例图没办法更 ...
- 划分用户故事(user-story)的原则
在敏捷开发过程中是通过用户故事来将需求具体化成可以进行迭代开发的一个个现实的可见的开发任务.因此在敏捷软件的开发过程中,用户故事的划分对于迭代和开发起着举足轻重的作用. 用户故事从其名字来看是站在用户 ...
- 用户故事驱动的敏捷开发 – 2. 创建backlog
本系列的第一篇[用户故事驱动的敏捷开发 – 1. 规划篇]跟大家分享了如何使用用户故事来帮助团队创建需求的过程,在这一篇中,我们来看看如何使用这些用户故事和功能点形成产品backlog.产品backl ...
- 产品经理-需求分析-用户故事-敏捷开发 详解 一张图帮你了解Scrum敏捷流程
产品经理-需求分析-用户故事-敏捷开发 详解 用户故事是从用户的角度来描述用户渴望得到的功能.一个好的用户故事包括三个要素:1. 角色:谁要使用这个功能.2. 活动:需要完成什么样的功能.3. 商业价 ...
- UDAD 用户故事驱动的敏捷开发 – 演讲实录
敏捷发展到今天已经在软件行业得到了广泛认可,但大多数敏捷方法都是为了解决某一特定问题而总结出来的特定方法或实践,一直缺乏一个可以将整个开发过程串接起来的成体系的方法.用户故事驱动的敏捷开发(User ...
- 菜鸟Scrum敏捷实践系列(一)用户故事概念
菜鸟Scrum敏捷实践系列索引 菜鸟Scrum敏捷实践系列(一)用户故事概念 菜鸟Scrum敏捷实践系列(二)用户故事验收 菜鸟Scrum敏捷实践系列(三)用户故事的组织---功能架构的规划 敏捷开发 ...
随机推荐
- .NET Core开源API网关 – Ocelot中文文档
Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由.请求聚合.服务发现.认证.鉴权.限流熔断.并内置了负载均衡器与Service Fabric.Butterfly ...
- BZOJ4825 单旋
分析:一道水题,去年考场发现了特点但是不会splay维护挂了,然后现在我写了个treap. 画一画图就可以解决这道题了,自己试一下. 代码如下: #include<bits/stdc++.h&g ...
- 小程序首页onLoad为异步,调用app.js中的全局参数的解决方案。
一,先说一下遇到的问题: 在首页,为了携带app.js中一些参数去做请求动作,但是由于异步原因,发现请求时候,参数信息还未获取到但请求已经发出去. 若等app.js的全局参数返回来,再携带着它去做请求 ...
- python 全栈开发,Day2(正式)
一.in的使用 in 操作符用于判断关键字是否存在于变量中 a = '男孩wusir' print('男孩' in a) 执行输出: True in是整体匹配,不会拆分匹配. a = '男孩wusir ...
- Go a lot of way but I go back to the original point
I try a lot of blog platform and even construct my blog website. But I have to say I just want to ha ...
- 笔记:Jersey REST 传输格式-JSON
JSON 类型已经成为Ajax技术中数据传输的实际标准,Jersey 提供了多种处理JSON数据的包和解析方式,下表展示了JSON包和解析方式: 解析方式\JSON支持包 MOXy JSON-P Ja ...
- 笔记:XML-解析文档
要处理XML文档,就要先解析(parse)他,解析器时这样一个程序,读入一个文件,确认整个文件具有正确的格式,然后将其分解成各种元素,使得程序员能够访问这些元素,Java库提供了两种XML解析器: 像 ...
- phpcms v9 列表页直接下载功能代码实现
{pc:content action="lists" catid="$catid" num="3" order="id DESC& ...
- 一个典型的kubernetes工作流程 - kubernetes
1.准备好一个包含应用程序的Deployment的yml文件,然后通过kubectl客户端工具发送给ApiServer. 2.ApiServer接收到客户端的请求并将资源内容存储到数据库(etcd)中 ...
- 软件工程第三次作业-结对作业NO.1
第一次结对作业 结对人员: 潘伟靖 170320077 张 松 170320079 方案分析 我们对所供的资料进行分析,如下: 从提供的资料可以看出,需要解决的问题以及满足的需求主要有两类目标用户,各 ...