1.啥是R3PR?

Requirement:需要做什么

Plan:计划怎么做

Resources:指派谁去做。当然资源还包括其他的,但谁让咱只是管编码的呢,在我手里,只有人是资源

Process:实际怎么做

Result:结果怎么样

2.包含哪些信息?

举个例子,编一个计算器程序。

Requirement:

ID 需求名称 描述 与其他需求关系 属性 状态
1 输入界面 让用户输入表达式 2,4,5 优先级=高,重要性=强,… 新建
2 算法实现 根据表达式计算结果 2,4 优先级=高,重要性=强,… 评审
3 输出界面 显示结果 5 优先级=较高,重要性=较强,… 新建
4 性能1 又快又准 2 优先级=高,重要性=强,… 完成
5 性能2 操作方便 1,3 优先级=高,重要性=强,… 新建

思考:

需求为什么要状态?

因为需求不是静态的,需求应该是在开发过程可以增加、删除、变更的。比如在初始设计时,是没有与bug相关的需求的,但是到开发阶段,就有与bug相关的需求了。因为需求是动态的,所以需求的状态是应该记录的

需求间有哪些关系?我们需要区分这些关系的种类吗?

需求间可以有你所能想象的各种关系。通过关系可以把需求组成一张网,然后从一个需求出发,找出它的关系网中的其他需求。这对分析和管理需求是重要的。但是关系的种类也许不必要区分。打个比方,在许多社区网站上都有一个“加关注”功能,社区网站的管理者或数据分析者可以利用用户之间的关注关系描绘出一张用户的关系网。但是好像没有谁给关注再分个类,标明关注强度或关注理由等信息。这些信息没有用吗?按理说也有用,但是为什么不做呢?我想应该是性价比。要求用户在加关注时填写过多信息会降低用户体验,同时给社区管理带来的增值不够明显。同理,需求之间表示存在关联应该就足够了,更多的信息并不能极大提高管理效率,但是增加了管理成本(填写这些信息并保证他们的正确性和完整性所付出的努力都是成本)。

需求为什么需要属性?

属性把需求看做了一个集合,利用属性就可以从这个集合中提取出一个子集。当需求很多的时候,属性提供了一个过滤或聚焦的工具,让管理者可以快速找到感兴趣的需求集合。那一个需求需要多少属性才够?谁也说不准。所以最好需求的属性是能够自定义的,当需要什么样的分类时就添加什么样的属性

Plan:

ID 任务名称 子任务 前置任务 描述 工时估计
1 实现输入界面       2
1.1   表达式输入框   用户可以输入一个表达式 1
1.2   计算命令按钮   用户启动计算过程 1
2 实现算法       6
2.1   表达式解析   解析用户输入的表达式 3
2.2   表达式计算 2.1 计算解析后的表达式 3
3 实现输出     返回计算结果 1
4 检验性能1       3
4.1   检验是否快     2
4.2   检验是否好     1
5 检验性能2 检验操作是否方便     2

Resources:

ID 资源名 分配的任务
1 张三 1,3
2 李四 2
3 王五 4,5

思考:

计划中的任务和需求有什么区别?

计划中的任务讲的是要做什么,需求讲的也是要做什么,他们的区别在哪里?最大的区别在任务之间有明确的先后关系,而需求之间没有。正是因为任务有先后关系,才能在此基础上,排出时间进度。而任务的工时,任务分配给谁等等,不过是为了让排出的时间进度更准确。

需求与任务之间应该是什么关系?

理论上是多对多关系。即一个需求可能需要多个任务去实现,一个任务可能为多个需求服务。但在实际操作时,也许可以用一对多描述。想象一下你是怎么提出任务的:拿着需求列表,指着一个需求说,我希望这个需求用这几个任务去完成,然后手指下滑,指着下一个需求,继续说,我希望这个需求用这几个任务去完成…,最终,得到了一张任务列表。那么,如果一个任务能够为多个需求服务,怎么办呢?首先,需求之间任务重叠的概率是很低的,因为如果需求间有太多的重合任务,说明你的需求分析有问题,没有把应该分离的需求分离开。其次,真的有两个需求A和B之间有重叠的部分,完全可以把重叠的部分提出来,形成一个新需求C,A和B的任务各自完成不重叠的部分,而把重叠的部分委托给C。比如日志服务就是一个范例。这样做有什么好处呢?首先,思维模式是顺畅的,因为我们通常是根据需求去确定任务,而不是根据任务去反推他应该为哪个需求服务。其次,产生的任务是高质量的,因为你既没有为需求A和B提出重复的任务,又解耦了A和B之间的关联,提出了一个通用性更强的需求C。

Process:

ID 为什么干 谁干的 啥时干的
1 完成[任务1.1]的界面部分 张三 01-02-03 10:35:25
2 完成[任务1.2]的界面部分 张三 01-02-03 10:36:25
3 完成[任务2.1]的输入校验 李四 01-02-03 10:45:25
4 完成[任务1.1] 张三 01-02-03 10:55:25
5 [任务4.1]检测不合格 王五 01-02-03 12:35:25
6 完成[任务2.1] 李四 01-02-03 14:35:25
7 [任务4.2]检测不合格 王五 01-02-03 22:35:25
     

过程应该怎么管理?

过程是指任务的实现。过程的记录通常是借助版本控制系统。那么哪种版本控制系统是更好的呢?想象一下,你为了完成一个任务,需要编写3个文件,A文件写完你提交了,任务完成了吗?没有。应该3个文件都提交,才算齐活。因此,以任务单元提交为模型的版本控制系统才是合理的,而以文件单元提交为模型的版本控制系统会给管理带来很多不必要的工作量。

过程应该记录哪些信息?怎么记?

过程应该记录的信息不外乎3类:谁干的?啥时干的?为什么干?。因为过程是用版本控制系统记录的。版本控制系统一般都自动记录了who和when,剩下手工记录的只有why了。why一般都通过commit时的comment记录。那comment应该怎么记录why呢。我想首先应该记录的是与commit相关联的任务ID或需求ID,这样管理时就知道这次commit是针对哪个任务或需求了。至于其他信息,不过是对commit与任务/需求之间关联的更详细的解释,怎么写都行。那究竟应该记录任务ID还是需求ID呢?看你使用什么bug管理系统。普通的功能需求往往对应多个任务,将commit与任务ID对应更精准。而bug的处理通常是一个bug对应一个任务/需求,有的bug管理系统把bug算需求,有的呢则算任务,不管怎么算,在comment中记录任务id或需求id是必须的。否则就容易丢失“为什么干”的信息。

Result:

ID 描述 状态  
1 性能1 bug  
2 性能2 合格  

思考:

结果应该怎么记录?

结果是通过测试过程获得的,结果的目的是验证需求是否得到满足。所以结果应该和需求发生关联。在结果的记录中,应该有对应需求的id,同时结果要表明需求是否已满足,因此结果应该改变或维持对应需求的状态。其次,一个不满足需求的结果应该产生新的需求或任务,即bug报告。在bug报告中除了尽量清楚的描述bug外,重要的是要把被测需求的id记录下来,这样别人才知道这个bug针对谁。

转载于:https://www.cnblogs.com/madbyte/archive/2010/07/26/1785375.html

关于需求管理的胡思乱想---R3PR相关推荐

  1. 在leangoo中如何做好需求管理(研发效能)

    leangoo项目管理软件是以看板的方式管理需求.任务.迭代.缺陷.测试等等,更透明,更可视化. 不同组织在需求管理方面有不同的需求.那么我们看一下 在leangoo中如何更好的做好需求管理. < ...

  2. 国内外有哪些不错的需求管理工具?如何选择?

    需求管理主要是进行需求的条目化管理.需求跟踪.需求基线管理以及需求变更的管理.其中,由于需求建立到需求维护这个过程是双向的,需求一旦变多或复杂,双向溯源的关联关系也会变得非常复杂,所以我们就必须借助工 ...

  3. 产品需求管理中的四大难点

    每一位产品负责人.项目经理或业务分析师都需要了解需求管理的重要性.无论是传统项目管理还是敏捷软件开发,成功或失败的基础都取决于需求管理. 需求管理的方法不仅应用在敏捷研发或传统项目管理之中,还适用于金 ...

  4. 敏捷开发 | 张三与需求管理

    最近朋友张三问我:" 史诗.特性.用户故事,它们一定要关联到一起使用吗? " 我的答案是:当然不用.但是要真正解释清楚这个答案,我还需要对一些概念进行说明. 产品待办事项 在Scr ...

  5. 使用Leangoo共享脑图/思维导图做多级需求管理

    上篇介绍了如何使用Leangoo思维导图实现影响地图.本文,将介绍如何用Leangoo脑图来做多级需求管理. 什么是Epic? Epic是史诗故事,通常需要花费多个Sprint来开发和测试,才能完成最 ...

  6. 需求管理(3)------方法论

    为什么80%的码农都做不了架构师?>>>    需求管理(3)----->方法论 一."给他想要的 " 这句话放在这仿佛有点怪怪的,但是确实无比正确和无比重 ...

  7. 如何有效实现软件的需求管理(6)

    在我们公司,获取了一个需求以后, 首先,相关人员会先在DevSpec建立一个条目,添加相应的一些属性信息,比如标题,内容描述,状态,对应文档,优先级,紧急程度,负责人,对应版本,对应浏览器,对应数据库 ...

  8. 02.规划过程组表格-需求管理计划

    需求管理计划 项目名称 时间 需求收集 需求分析 需求分类 需求记录 需求排序 需求测量指标 需求跟踪 需求报告 需求确认 需求配置管理 转载于:https://www.cnblogs.com/aix ...

  9. linux文件需求管理,CaliberRM 需求管理系统

    Borland CaliberRM™ 2006 是适用于整个软件交付过程管理的突破性解决方案. 设计用于捕获和管理业务.技术.功能和运营要求,CaliberRM 支持跨组织股东的有效协作,从而确保项目 ...

最新文章

  1. Installshield 2015 实现检测某安装文件是否存在并运行安装
  2. sql server2005 常用语句
  3. python2 webserver class
  4. MySQL配置文件参数详解
  5. Spring-WebApplicationContext解读
  6. putty连接虚拟fedaro失败的解决方法
  7. 需求管理是CMM可重复级中的6个关键过程域之一,其主要目标是__________。A.客观地验证需求管理活动...
  8. C++ primer 11章关联容器
  9. EmguCv模板匹配学习日记
  10. 编程中,有哪些好的习惯从一开始就值得坚持?
  11. PS像素,分辨率的概念
  12. mac 设置mysql登录快捷键_史上最详细的苹果Macbook快捷键使用
  13. java bt下载_bt: Java种子下载程序
  14. add as library是什么?有什么用?如何打开?
  15. 校园卡查询系统C语言,校园卡帐号的查询方法
  16. 国内外自然语言处理(NLP)研究组
  17. 关于运筹学三方库的编译和使用 ortools
  18. c++之STl容器-string
  19. 寒假日报(1.23)
  20. Spring学习总结

热门文章

  1. android与gradle版本,android – Gradle错误:支持的最低Gradle版本...
  2. 【Python 小知识】[:-1] 和 [::-1]
  3. 原生js写三级联动 java_原生js三级联动的简单实现代码
  4. android viewpager动态加载页面,Android viewpager中动态添加view并实现伪无限循环的方法...
  5. git上传代码到码云(详细)
  6. vm ububtu突然没网
  7. 图解Android Studio 2.0安装步骤
  8. caffe windows 学习第一步:编译和安装(vs2012+win 64)
  9. Hello World With JBoss Modules
  10. 远程调用服务(RPC)和消息(Message Queue)对比及其适用/不适用场合