需求文档和敏捷中的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根号人天数

敏捷项目需求拆解&发现用户故事的更多相关文章

  1. 【DevCloud·敏捷智库】如何利用用户故事了解需求

    摘要:这篇文章主要解决因为不能很好地理解需求而估算做不好的问题,在这里可以了解下如何利用用户故事了解需求. 背景 很多团队在应用敏捷开发时,对估算经常感到困惑.这里所说的估算是指产品列表条目(PBI, ...

  2. 【DevCloud · 敏捷智库】如何拆分用户故事

    提起用户故事拆分,我们听得最多的就是INVEST原则(关于INVEST原则可以参考文章“用户故事等于需求说明”——你一定没有写好用户故事),但很多人面临的问题是拿到一个较大的用户故事时,该如何拆分才能 ...

  3. 用户故事(User Story)

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

  4. 实验九 FBG 团队项目需求改进与系统设计

    任务一 A.<项目需求规格说明书>分析 根据老师的指导以及本周所学的OOA,分析改进上周编写的<项目需求规格说明书>,发现需求项目书UML图例描述不够完善,仅仅是用例图没办法更 ...

  5. 划分用户故事(user-story)的原则

    在敏捷开发过程中是通过用户故事来将需求具体化成可以进行迭代开发的一个个现实的可见的开发任务.因此在敏捷软件的开发过程中,用户故事的划分对于迭代和开发起着举足轻重的作用. 用户故事从其名字来看是站在用户 ...

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

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

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

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

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

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

  9. 菜鸟Scrum敏捷实践系列(一)用户故事概念

    菜鸟Scrum敏捷实践系列索引 菜鸟Scrum敏捷实践系列(一)用户故事概念 菜鸟Scrum敏捷实践系列(二)用户故事验收 菜鸟Scrum敏捷实践系列(三)用户故事的组织---功能架构的规划 敏捷开发 ...

随机推荐

  1. python模板:自动化执行测试函数

    #!/bin/python #example 1.1 #applay def function(a,b): print(a,b) def example1(): apply(function, (&q ...

  2. 免费后台管理UI界面、html源码推荐

    一个好的UI应该满足的条件应该达到如下几个: 1.美观.大方.简洁 2.兼容IE8.不考虑兼容IE6/IE7,因为现在还有很多公司在使用Win7系统,系统内置了IE8 3.能通过选项卡打开多个页面,不 ...

  3. 防F12审查元素扒代码:按下F12关闭当前页面

    有的时候我看别人的网站的某个部分做的比较好我都会通过按F12审查元素来查看别人的代码,那么如果不然别人查看自己网站的代码呢.一段JavaScript代码即可实现上述功能,插入到footer.php或者 ...

  4. php做的一个简易爬虫

    对于爬虫的好奇好像由来已久,一直在研究python的爬虫,今天得空研究研究php的爬虫 index.php <?php header("Content-Type:text/html;c ...

  5. 【RMAN】Oracle中如何备份控制文件?备份控制文件的方式有哪几种?

    真题1. 如何备份控制文件?备份控制文件的方式有哪几种? 答案:备份控制文件的方式有多种. ① 备份控制文件可以在线进行: SQL> ALTER DATABASE BACKUP CONTROLF ...

  6. BAT脚本/Dos 改ip地址

    BAT脚本/Dos 改ip 经常换地方上网,总改这些很麻烦,直接写三个bat,点一下就换了.需要管理员权限.之前用python的wmi写过,但是没起作用. ip:10.10.41.15 子网掩码:25 ...

  7. RxJS速成 (下)

    上一部分: http://www.cnblogs.com/cgzl/p/8641738.html Subject Subject比较特殊, 它即是Observable又是Observer. 作为Obs ...

  8. if判断 -z -n 参数

    _echo_error() { echo -ne "\033[31;1m $1\033[0m\n";}_echo_ok() { echo -ne "\033[32;1m ...

  9. 设计模式 --> (12)装饰模式

    装饰模式 时常会遇到这样一种情况,我已经设计好了一个接口,并且也有几个实现类,但是这时我发现我设计的时候疏忽了,忘记了一些功能,或者后来需求变动要求加入一 些功能,最简单的做法就是修改接口,添加函数, ...

  10. 20145237 《Java程序设计》第2周学习总结

    教材学习内容总结 本周我学习了java的基础语法.分为类型.变量与运算符,流程控制. 一.类型:1.Java可以区分为基本类型和类类型.类类型也称作参考类型.2.Java中基本类型主要是整数.字节.浮 ...