同路文档网

首页 > 专题范文 > 公文范文 > / 正文

以知识为核心ALM之需求管理篇(全文)

2022-07-05 13:45:02 来源:网友投稿

下面是小编为大家整理的以知识为核心ALM之需求管理篇(全文),供大家参考。

以知识为核心ALM之需求管理篇(全文)

 

 以知识为核心的 M ALM 之需求管理篇

 需求管理是软件开发生命周期的初始阶段,它对最终提交的软件产品的质量起着至关重要的作用。一位咨询师朋友告诉我,在美国,超过 60% 的软件项目失败都是因为不科学的需求管理。另外, 80% 的项目延误也源于不断改变的需求。由此可见,需求管理是整个软件开发过程中至关重要的一部分;尤其是对于大型项目,科学的需求管理在降低风险上的作用更是无法估量。

 软件开发实践表明,让所有项目成员获得准确的需求,是进行需求管理的根本;在此基础上,还应保证所有的需求变更都是在可控制的情况下进 行。除需求分析师外,所有其他相关人员,如项目经理、开发组长、A QA 经理等,如能参与到需求评审中,不仅有利于管理需求,还能进一步保证需求与业务实际更加匹配。对于需求变更,在执行之前分析其潜在影响,进行有针对性的人员和资源配置,都将提高需求变更的实现效率。

 需求管理工具现状

 对于市面上的需求管理工具,我有以下三点看法。首先,目前很多需求管理工具与开发过程脱节。很多时候,开发工具和需求管理工具必须协同工作,但是开发人员和需求分析师不能有效地沟通数据。此外,需求文档和知识库的分离不利于需求分析师了解每个需求的 进展,也限制了高层管理者对跨部门工作的整体了解。

 另一方面,有越来越多的企业,受到诸如塞班斯法等新法规的影响,不得不开始大范围使用需求管理工具。这在某

 种程度上为市场造就了一批针对特定行业的需求管理软件。这些软件多数适用于对需求有严格控制的行业,如航空航天和军工行业等。然而,对于普通行业市场,企业更需要的是实用、集成的需求管理解决方案。r Forrester 最近的一份报告指出,大部分企业都缺乏成熟的需求收集机制和体系;在这种情况下,即便实施功能强大的工具,企业也没有能力来充分利用各种功能和设置,更不用说有效利 用这些工具来管理需求了。

 另外,对于传统的瀑布式开发,所有的需求都是在开发开始前完成的。但对于目前广泛使用的增量式或迭代式开发模式,需求往往是需求者和消费者不断沟通产生的,也是不断变化的。因此,有效的解决方案必须以类似的增量或迭代开发模式满足需求管理。集成的全球需求管理方法

 基于对一些成功软件组织的经验分析,我们认为企业真正需要的是一个集成的需求管理解决方案,它可以帮助企业以可监控、可追踪和可验证的方式管理他们的需求。它需要为创建新的需求、功能和规范提供一个框架,并与开发任务和测试任务相关联。需 求团队和开发团队可以通过这个集成的解决方案一起工作。

 这种集成方案不仅可以提高需求管理工具的性价比,还可以方便项目团队的内部沟通。开发团队可以及时获得需求信息;需求分析师可以通过查看需求的进度来确定可能的需求变化;管理人员还可以通过查询、图表等功能浏览开发项目的进度。能够实现上述目标的需求管理工具应该具有以下功能: :

 • 集成的需求管理:创建、管理、讨论并关联项目需求和功能; ;

 • 变更控制:当特定的变更发生时自动进行需求版本管理,并通过工作流引擎来控制需求变更;

 • 数字资产管理:需求、功能以及其 他重要的数字资产都需要存储在一个可靠、可扩展、安全的中央资料库中;

 • 集成事件跟踪和测试:需求管理与事件跟踪和测试管理工具集成,以便于项目经理查看与需求相关的开发和测试工作;

 • s Windows 客户端和 b Web 客户端:提供 s Windows 客户端和b Web 客户端访问方式,保证在固定和移动办公的情况下都能登录到系统中;

 • 定制化的用户界面:提供定制选择,以便于系统管理员创建自定义的需求和功能界面,如字段标签、字段类型、下拉菜单选项和客户报告等;

 • 开放的工作流设置:通过定义工作流来创建和管理需求和功能;

 • 嵌入式报表和分析:直接产生需求功能数据报表,如变更控制、变更效应、实施和测试数据等;

 • 自动获取需求:在系统中,用户可以直接输入需求信息,或者通过文档形式获得需求并附加到系统中。

 在独立实现以上功能的基础上,需求管理工具还需与 ALM中的开发过程进行无缝集成,其中包含事件跟踪、测试管理、以及中央知识库(如图 1 1 所示)。

 规范点驱动的需求管理

 诚然,需求管理对整个软件项目的成败发挥着举足轻重的作用。然而,需求在最初只是客户或管理人员对产品功能

 的一种愿望,需求分析师要将这种非结构化、粗线条、 不明确的愿望归纳总结为具体的规范点( Specification ,简称Spec )。产品管理团队再把各种 c Spec 根据开发时间、成本和效益进行优先排序,确定 c Spec 单,再由开发团队照单实施。

 SpecDD ( Specification Driven Development )是l TechExcel 根据多年经验,总结众多客户关于软件开发管理的需求而提出的一个概念性框架。D SpecDD 模型用 c Spec 来表述/ /定义产品或版本功能,并通过中央知识库与整个团队有效共享,使 c Spec 成为贯穿软件应用生命周期各阶段的要素,从而驱动整个 开发流程。将知识和需求转换为结构化的、正规表达的 Spec ,是将整个开发过程从宏观战略落实到具体实施战术的过程。

 D SpecDD 模型在需求管理上的优势主要体现为以下三个方面。首先,通过 D SpecDD 模型可以实现对需求的度量和评估,包括每个需求所需要的资源和时间,将开发所需的时间和费用与需求相关联,度量和评估需求是否成功,通过需求验证指标来管理开发、测试活动。其次,c Spec 与项目规划、开发和测试任务始终保持关联,这就保证了开发的每一个环节都是可追溯。另外,D SpecDD 模型还能评估需求变更的潜在影响,例如需求变更 对开发和测试工作、项目成本的影响。

 通常情况下,c Spec 包含功能、缺陷和功能增强三个部分,他们都来源于相关的知识或需求,并与需求条目和知识库中的知识条目相关联。图 2 2 以 以 0 Browser 6.0 产品为例,用图形化的方式显示了 c Spec 与知识、需求的关系。针对r Browser 产品的最新版本 6.0 ,有安全和用户界面两大类需求,通过需求分析师将其分解为新的功能,如支持 SSL v.3.0 、g Tabbed Browsing 等;除新功能以外,c Spec 还包括对之前版本的功能增强,如保存已标记的文件;以及上一版本

 的缺陷,如保存时响 应缓慢。这些 c Spec 通过规划、编码、测试等工作,构成最终交付的产品。

 同时,c Spec 也是高度结构化的,表现为其树形结构准确对应产品/ / 版本功能树,以保证开发人员不丢失任何需求(如图 图 3 3 所示)。产品管理团队通过创建 c Spec 树,使每个功能/ /缺陷/ / 功能增强都能对应分支上的树叶。同时,c Spec 与知识项目相关联,这些知识项目描述了形成此 c Spec 的构思,以及其他相关的文档、标准、附件和参考项目。

 需求变更的管理

 理解需求变更的可能影响,并有效地控制它们,对于软件的最终提交至关重要。无论是改变现有的需求还是增加 新的需求,都会不同程度地影响项目最终交付的进度。例如,需求的变化可能会影响相关的功能、任务和测试工作;编码的延迟会延迟与该功能相关的其他开发任务和测试工作。因此,一个有效的需求管理工具必须确保项目团队能够容易地评估这些变更的可能影响。

 如何在变更发生之前对其进行评估呢?这就需要将需求管理与所有开发、测试行为进行集成,用户就可以通过跟踪编码、测试等行为对变更带来的潜在影响进行评估。这在D SpecDD 模型中得以实现。

 将有效的变更转变为需求

 如前文所讲,D SpecDD 模型表现为用 c Spec 来表述/ / 定义产品或版本功能,并和整个团队有效共享,从而驱动开发。因此,要保证交付的产品完全符合最终版本的 Spec ,需求分析部门就要和开发部门协同工作,并对变更做出严格的控制。对开发工作有潜在影响的变更都将会被慎重管理,并严格检验是否影响到需求的依赖关系。所有因需求变更而产生的影

 响,都必须检验变更后的完整性。因此,要实现有效的需求变更,管理工具需要实现以下几种功能:

 • 变更控制

 对变更进行严格的流程控制,包括请求、复查、讨论、调整和批准等;

 变更请求由一个独立的工作流所控制;

 变更不能对需求造成不良 影响,因此在变更被批准之前,需求不能被改变。

 • 实用性

 接近实际的需求管理实践;

 易于被客户理解;

 易于对重要的变更进行跟踪。

 • 各部门协同工作

 需求、功能和开发等各方面的人员都在各个阶段参与变更请求,将不同部门的人员都纳入变更管理体系;

 让开发团队参与到变更请求的批准过程中,这样会比被动的接受或拒绝变更要更科学、更有效;

 在变更得到批准或拒绝之前,分析针对该变更在资源和时间上的分配。

 科学的需求管理是软件项目成功的保证。在更新需求的过程中,项目 的所有相关人员都应该从各自的角色参与其中,这将促进软件产品最终实现业务目标。当需求发生变化时,准确的分析和评估也将有助于确保项目按时提交。

 除需求管理工具独立工作以外,将它与应用生命周期管理( ALM )中的其他过程管理工具集成,才能最终提供一个完整的贯穿需求和开发过程的解决方案。需求分析人员和开发团队通过一个平台实现协同工作,统一接口和共用流程。这就能促进需求数据在需求制造者和实施者之间无缝、实时的传递,并保证在开发的每一个环节都可追溯需求。

 如前文所讲,D SpecDD 模型表现为用 c Spec 来表述/ / 定义产品或版本功能,并和整个团队有效共享,从而驱动开发。因

 此,要保证交付的产品完全符合最终版本的 Spec ,需求分析部门就要和开发部门协同工作,并对变更做出严格的控制。对开发工作有潜在影响的变更都将会被慎重管理,并严格检验是否影响到需求的依赖关系。所有因需求变更而产生的影响,都必须检验变更后的完整性。因此,要实现有效的需求变更,管理工具需要实现以下几种功能:

 • 变更控制

 对变更进行严格的流程控制,包括请求、复查、讨论、调整和批准等;

 变更请求由一个独立的工作流所控制;

 变更不能对需求造成不良 影响,因此在变更被批准之前,需求不能被改变。

 • 实用性

 接近实际的需求管理实践;

 易于被客户理解;

 易于对重要的变更进行跟踪。

 • 各部门协同工作

 需求、功能和开发等各方面的人员都在各个阶段参与变更请求,将不同部门的人员都纳入变更管理体系;

 让开发团队参与到变更请求的批准过程中,这样会比被动的接受或拒绝变更要更科学、更有效;

 在变更得到批准或拒绝之前,分析针对该变更在资源和时间上的分配。

 科学的需求管理是软件项目成功的保证。在更新需求的过程中,项目 的所有相关人员都应该从各自的角色参与其中,这将促进软件产品最终实现业务目标。当需求发生变化时,准确的分析和评估也将有助于确保项目按时提交。

 除需求管理工具独立工作以外,将它与应用生命周期管理( ALM )中的其他过程管理工具集成,才能最终提供一个完整的贯穿需求和开发过程的解决方案。需求分析人员和开发团队通过一个平台实现协同工作,统一接口和共用流程。这

 就能促进需求数据在需求制造者和实施者之间无缝、实时的传递,并保证在开发的每一个环节都可追溯需求。

推荐访问:以知识为核心ALM之需求管理篇 需求 为核心 知识

搜索