我们需要什么样的需求管理工具?

这篇博文的标题是一个疑问句。在回答这个问题之前,首先应该想到的是:提出这个问题,实际上已经先认定了需求管理工具是必要的。那么,需求管理工具是否真的必要呢?

  这里的“需求”不是个抽象概念,它指的是需求分析文档、需求规格说明文档这样的需求分析成果;需求管理就是对这些成果(包括中间成果)的管理。从这个角度来看,需求管理工具是必要的,至少在绝大多数情况下是这样。根据经验,我至少能够列出以下两个理由:

  1、在绝大多数情况下,需求是复杂的。

  2、在绝大多数情况下,需求是变化的。

  需求分析过程往往是这样的:从用户关于系统的一些模糊的、顶层的概念和想法出发,不断地进行明确和分解,形成数量众多的需求条目,直到最终成为可以指导开发的用例。随着这一过程的进行,当程序员因为需求越来越清晰而备受鼓舞时,不幸的项目经理却很可能陷入苦恼中:这么多条需求,谁知道是否有遗漏呢?谁知道这些条目之间是否有很紧密的关联呢?如果需求条目比较少,或许项目经理还能够在脑子里把这些问题理清楚;但是如果条目很多,谁又能保证不出错呢?

  需求的变化有多种来源:有可能用户的想法发生了改变;有可能用户的想法并没有变,但一开始他没有说清楚,或者我们的理解有误;实际上,需求分解本身就意味着我们对需求的认识在不断地深入和细化。

  所以我们可以借助工具管理好需求,以结构化的形式(例如树形图、表格等)来组织需求条目,让项目经理能够比较方便地查看、追踪、回溯需求分解,理解需求条目之间的关系。

  所以我们可以借助工具管理好需求,不但要能够很方便地进行“增删查改”,最好还能像代码版本控制那样,对需求分析的成果也能进行版本控制。

  事实上,在行为驱动开发(Behavior Driven Development, BDD)或者验收测试驱动开发(Acceptance Test Driven Development, ATDD)中,需求与验收测试代码最终合二为一,即所谓specification by example。所以对需求进行管理,就像对代码进行管理一样,是非常自然的事情。

  那么,什么样的需求应该被工具管理起来呢?

  我们可以把需求分为三类:

  1、功能需求:即系统应当提供哪些功能,例如“支持在用户登录时进行用户身份认证”;

  2、性能需求:即性能方面的指标,例如“当用户登录请求并发数不大于200时,身份认证处理时延不大于3秒”;

  3、特性:对某项功能实现的方式、界面、操作步骤、外观、接口等进行规定的需求,例如“服务器与客户端之间的消息传输采用HTTP协议”。

  性能需求会对系统技术路线的选择、架构设计等产生直接的影响,但是通常不易被分解为更细的条目;特性往往会体现在某项功能的实现方式或呈现形式上,通常我们都是把功能需求进行分解,并且在分解时注意把相应的特性包括进去。因此,实际上需求管理工具首先应该管理的是功能需求。

  所以,为了较好地支持BDD或者ATDD,我觉得需求管理工具至少应该具有以下功能:

  一、能够以树形图或表格的方式浏览所有需求条目。以下以树形图为例进行说明:

  1、树形图具有唯一的根节点,就是“系统功能需求”,根节点以下可以有任意多层分支节点;

  2、每个节点是一个需求条目,具有编号、名称、说明3项内容;

  3、采用多级编号,编号能够体现需求条目之间的逻辑关系;

  4、如果系统包括多个子系统(例如多个软件),那么第1层分支节点是系统功能,从第2层分支节点开始是子系统功能,即第1层分支节点只把系统功能需求进行分解,不按子系统分解;从第2层分支节点开始,按子系统进行分解,第2层分支节点应注明是“客户端xxx功能”还是“服务器xxx功能”;

  5、最末端的分支节点(即叶子节点)采用BDD验收测试代码的feature文件的形式(例如cucumber的feature文件);

  6、每个节点可以展开(显示子节点)和收拢(不显示子节点)。

树形图如下图所示:


系统功能需求--+--1.用户登录--+--CLIT.1.1客户端登录界面

+              +

+              +--SERV.1.1服务器身份认证

+              +

+              +--SERV.1.2服务器维护用户登录会话状态

+

+--2.XXXX--+--CLIT.2.1XXXX--+--CLIT2.1.1XXXX

+          +                +

+          +--CLIT.2.2XXXX  +--CLIT2.1.2XXXX

+          +

+          +--SERV.2.1XXXX

+          +

+          +--SERV.2.2XXXX--+--SERV2.2.1XXXX--+--SERV2.2.1.1XXXX

+                           +                 +

+                           +--SERV2.2.2XXXX  +--SERV2.2.1.2XXXX

+                           +

+                           +--SERV2.2.3XXXX

+--3.XXXX

  二、对每个节点可以进行以下操作:

  1、通常的操作有:编辑、添加下级分支节点、添加叶子节点、改变上级节点(从而可以改变节点之间的逻辑关系);

  2、如果已经是叶子节点,则不能再添加下级。

  三、能够把所有叶子节点导出为feature文件,这些feature文件可以直接在测试代码中使用。

  1、每个叶子节点是一个单独的feature文件;

  2、feature文件分目录存放,目录结构与树形图的分层结构一致。

  四、能够把所有节点导出为一个文本文件,文本文件的章节结构与树形图的分层结构一致。


最新内容请见作者的GitHub页:http://qaseven.github.io/ 

时间: 2024-10-22 21:41:31

我们需要什么样的需求管理工具?的相关文章

需求管理 工具-有哪些好用的软件需求管理工具

问题描述 有哪些好用的软件需求管理工具 请教: 软件需求管理有哪些工具和软件啊?大家都在用什么进行需求管理啊? 解决方案 RationalRequisitePro Rational RequisitePro是一个强大.易用.集成的需求管理产品.而通过与Rational系列软件产品的广泛集成,大大扩展了RequisitePro及其他产品的功能,给软件工程生命周期内的各个阶段都提供了强大.方便的信息查询.跟踪.管理功能.从而能够促进更好的团队沟通.帮助管理变更和评估变更的影响,帮助验证所有的规划需求

rmtoo 20发布 需求管理工具

rmtoo是一个需求管理工具.它的特点是没有http://www.aliyun.com/zixun/aggregation/18378.html">图形用户界面,程序员的需求信息可以存储在纯文本文件.该工具支持检查依赖性,建立LaTeX输出,针对未完成和需求可以制定优先次序列表. rmtoo 20该版本是一个完整的重新设计和配置层重写,给用户提供了更多的灵活性.修正了已知错误和增强补充. 软件信息:http://www.flonatel.de/projekte/rmtoo/ 下载地址:ht

互联网产品需求管理:产品管理流程

  对于互联网公司而言,产品需求管理是产品研发的核心环节,产品需求的正确与否直接影响产品开发周期.产品开发成本.产品运营成本,甚至直接决定了产品市场竞争力.根据统计:产品开发中40%-60%的问题都是在需求阶段埋下的"祸根" ,在测试阶段及运营阶段发现需求阶段植入的问题,解决的代价是需求阶段发现问题的68-200倍.      关于需求管理的故事很多,列举一些常见问题: 某天老板问起:我很久以前提过一个需求,提过以后就没下文了.产品经理无辜地说:有提过吗,是给我提的吗? 某个销售谈起:

互联网产品需求管理思考1-统一需求管理

对于互联网公司而言,产品需求管理是产品研发的核心环节,产品需求的正确与否直接影响产品开发周期.产品开发成本.产品运营成本,甚至直接决定了产品市场竞争力.根据统计:产品开发中40%-60%的问题都是在需求阶段埋下的"祸根",在测试阶段及运营阶段发现需求阶段植入的问题,解决的代价是需求阶段发现问题的68-200倍. 关于需求管理的故事很多,列举一些常见问题: 某天老板问起:我很久以前提过一个需求,提过以后就没下文了.产品经理无辜地说:有提过吗,是给我提的吗?某个销售谈起:我很久以前提过一个

互联网产品需求管理思考1——统一需求管理

对于互联网公司而言,产品需求管理是产品研发的核心环节,产品需求的正确与否直接影响产品开发周期.产品开发成本.产品运营成本,甚至直接决定了产品市场竞争力.根据统计:产品开发中40%-60%的问题都是在需求阶段埋下的"祸根" ,在测试阶段及运营阶段发现需求阶段植入的问题,解决的代价是需求阶段发现问题的68-200倍. 关于需求管理的故事很多,列举一些常见问题: ● 某天老板问起:我很久以前提过一个需求,提过以后就没下文了.产品经理无辜地说:有提过吗,是给我提的吗? ● 某个销售谈起:我很久

如何有效实现软件的需求管理(3)

[本篇为<如何有效实现软件的需求管理>第三篇,(第一篇,第二篇)] 第二阶段:需求分析与设计(怎么去做) 既然需求已经获取了,也就是说客户已经跟我们说了要做什么或者我们自己想出来的一些需要做的功能,好了,那现在就真正开始进入需求管理阶段了. 首先就是需求分析阶段了,所谓的需求分析,简单点来说就是把获取的需求分析一下,看看是否真的是客户所想的,看看是否是我们产品能做的. 有时候一个需求就是客户一句话,但是真正理解起来并不是一句话就能解决的,所以你可能需要再跟客户确认,了解他们的真实意图.(下面就

论如何进行有效的需求管理

论文摘要: 本文主要讨论如何更有效的进行需求管理,需求管理中需求考虑的一些问题,项目中事先识别的风险和没有预料到而发生的变更等风险的应对措施的分析,也包括项目中发生的变更和项目中发生问题的分析统计,以及需求管理中的一些应对措施. 关键字: 需求管理, 业务建模.项目管理.数据流图 通过高级项目经理5天课程的培训,个人感觉对于原先的工作实践有了一个很好的指导,从原先的实践上升了一个层次,对于实践有了一个很好的理论指导. 我想很多人可能会与我同感,一个项目做了很久,感觉总是做不完,就像一个"无底洞&

互联网产品需求管理思考1——统一需求管理,互联网营销

对于互联网公司而言,产品需求管理是产品研发的核心环节,产品需求的正确与否直接影响产品开发周期.产品开发成本.产品运营成本,甚至直接决定了产品市场竞争力.根据统计:产品开发中40%-60%的问题都是在需求阶段埋下的"祸根" ,在测试阶段及运营阶段发现需求阶段植入的问题,解决的代价是需求阶段发现问题的68-200倍. 关于需求管理的故事很多,列举一些常见问题: 某天老板问起:我很久以前提过一个需求,提过以后就没下文了.产品经理无辜地说:有提过吗,是给我提的吗? 某个销售谈起:我很久以前提过

你的企业是否有自动补丁管理工具的潜在需求?

大多数软件由软件供应商定期更新(例如微软所谓的周二补丁日)或者在需要修复软件时进行更新.在本文中,我们将探讨自动补丁管理工具的适用场景. 对于软件漏洞来说,是否修复并不是问题,毕竟企业必须保持其计算机软件更新了相应的补丁.事实上,对于上市公司,定期修复软件可能是法律要求,例如萨班斯-奥克斯利法案(SOX).美国民事诉讼法(FRCP)和健康保险流通与责任法案(HIPAA)等.很多这些政府法规包含实质的经济处罚,甚至还会对不遵守法规要求的上市公司的CEO和CFO进行刑事指控. 在世界上大多数国家,还