- 明确范围、预算和进度
- 尽量减少昂贵且耗时的返工
- 提高产品质量
- 降低风险
- 提高在预算和进度内以所需质量交付正确产品的可能性。
- 描述正在构建的产品
- 确定开发产品所需的操作
- 捕获开发过程中执行的操作
- 定义系统验证和系统确认所需的测试
- 协助利益相关者审查、沟通和参与
- 唯一标识符
- 理由
- 所有者
- 类型
- 定义状态
- 优先级
- 关键性
- 合规性
- 版本号
- 变更历史记录
- 跟踪数据
- 验证状态(针对需求)
- 确认状态(针对需求)
- 范围已定义并得到同意 – (对于控制范围蔓延至关重要!)
- 正式变更控制开始
- 人员配备水平和预算已设定
- 进度承诺已做出
- 必要
- 明确
- 可行
- 可验证
- 正确
- 可追溯
- 适当
- 轻松确定变更的影响
- 自动化合规性
- 实现端到端流程改进
- 提高生产力
- 降低产品风险
- 提高质量
- 成功标准(必须证明什么才能表明满足要求)
- 方法(测试、演示、检查或分析)
- 策略(要使用的方法、操作环境、测试环境、系统配置等)
- 成功标准(必须证明什么才能满足需求)
- 方法(测试、演示、检查或分析)
- 策略(要使用的方法、操作环境、测试环境、系统配置等)
- 最后一刻的反馈
- 重新制定决策
- 变更税
- 注意力不集中
- 期望不匹配
- 团队之间的协作
- 定义、验证和确认合规性要求的单一事实来源
- 与标准和法规保持一致的标准框架
- 所有开发活动和结果工件的可追溯性。
- 简化审计准备和数据导出
- 确保质量和合规性
- 管理风险
- 提高效率和优化流程
- 使变更易于理解和响应
- 提高可追溯性
- 简化和加速审查
- 实现实时协作和迭代
- 节省时间
- 提高质量
- 实时双向可追溯性
- 实时协作通信
- 高效且可扩展的审查流程
- 简化的测试和质量保证管理
- 始终在线的风险分析
- 可重复使用的需求和基线目录
- 标准化验证和功能安全套件
- 全面的可见性和合规性报告
- 快速实施
- 灵活的配置
- 易于使用的界面/管理
- 自动化集成
- 需求和可追溯性的质量评估
无论您是刚刚学习需求管理的基础知识,还是希望改进当前的需求管理流程,或者有兴趣将您的流程与行业领导者进行对比,您都来对地方了。
本文介绍了什么是需求管理、为什么管理需求很重要、需求管理流程包含哪些内容,以及在创建复杂且受到严格监管的产品时如何管理需求。
什么是要求?
要求是双方一致认可的期望,即产品或系统在可接受的风险范围内执行某些功能或拥有某些品质。要求传达了利益相关者对产品或系统的要求和期望,以便解决给定的问题或机会。
什么是需求?
需求是将一个或多个需求或父需求正式转换为约定的义务的结果,即产品或系统在可接受风险的指定约束内执行某些功能或拥有某些质量。
需求和要求有多种类型,从业务重点到用户重点再到技术重点。
业务需求和要求,有时也称为利益相关者需求和要求,是从业务流程中衍生或从利益相关者(包括客户、用户和参与项目的其他利益相关者)中得出的。利益相关者需求代表利益相关者需要产品做什么来解决产品要解决的问题或机会;利益相关者要求是利益相关者定义的产品要求,用于传达利益相关者对产品的要求以满足他们的需求。利益相关者需求以自然语言表达,不使用“必须”,而利益相关者要求则以“必须”传达,以确保它们被视为产品将被验证满足的约束性要求。
鉴于有多个利益相关者,将有多组利益相关者需求和要求。项目团队需要收集这些需求和要求,并解决冲突、不一致和其他问题。结果将产生一组综合需求,产品需求将从这些需求中转化而来。最终的产品需求代表了产品必须做什么才能满足这些需求。产品需求有时被称为系统需求、软件需求或技术需求。
什么是需求管理?
需求管理是收集、分析、验证和确认正在开发的产品或系统的需求和要求的过程。成功的需求管理可确保完成的交付成果满足利益相关者的期望。可以使用文档来管理需求,但是,高度监管行业中的复杂系统或产品可以使用值得信赖的需求管理工具来降低风险。
需求管理为何如此重要?
需求管理之所以重要,是因为它使每个人都能清楚地了解利益相关者的期望,并自信地交付经过验证符合要求并满足需求的产品。
需求管理是一个复杂的过程,涉及许多活动部分和不同的人群。通常,产品管理部门(特别是产品经理)负责需求管理流程。他们与利益相关者合作,包括业务团队、客户、用户、开发人员、测试人员、监管者和质量保证。
此外,产品可能只有 100 个需求,也可能有几千个需求。这个数字取决于产品的复杂性和监管水平。在所有这些因素的作用下,成功取决于让每个人都站在同一立场、朝着同一个目标努力的能力。
因此,管理需求的业务价值是巨大的,因为成功的需求管理是项目成功的关键。需求管理的好处包括:
增强对利益相关者需求、要求和期望以及产品要解决的问题或机会的理解
然而,在构建复杂或受到严格监管的产品时,需求管理的重要性会进一步凸显。这是因为开发需要投入更多的时间和预算。出错的成本(无论是金钱、时间还是声誉)都太大了,不能冒险。因此,受监管行业的开发人员或开发具有大量需求和要求的产品的开发人员往往依赖需求管理工具(如 Jama Connect®)来保持项目井然有序。
需求管理与项目管理
虽然需求管理和项目管理似乎是同义词,但两者还是有区别的。简单来说,项目管理就是利用可用资源在预算和计划内制造产品。需求管理就是确保产品是正确的产品,并且制造正确。
产品开发过程的目标是创造一款满足利益相关者、客户和市场需求的成功产品。产品开发的需求管理部分包括管理需求和要求,以使产品满足利益相关者的期望。因此,需求和要求以及预算和计划确定了项目的范围。
但是,项目管理的领域包括提供开发产品所需的预算、人员和资源等任务。
需求管理流程的阶段
那么,您如何管理需求?最成功的团队都是根据定义好的需求管理流程开展工作的。定义需求管理流程非常重要,因为需求会在整个项目中发生变化。当这种情况发生时,这种变化需要经过相同的可重复流程。
需求管理流程有四个主要阶段——规划、开发、系统验证和系统确认——每个阶段都对整个项目具有重要意义。变更管理虽然本身不是一个阶段,但几乎影响需求管理流程的每个阶段。
策划阶段
产品开发方法(瀑布式、敏捷式或 Scrum)有助于确定需求如何在整个过程中移动。瀑布模型通常是线性的,开发从一个流程区域移动到另一个流程区域,最终交付具有所需特性和功能的完整产品。敏捷开发(包括 Scrum)本质上是迭代的。在需求管理中,敏捷团队和使用 Scrum 方法的团队可能同时处理不同的需求集,以增量方式交付产品,每个增量都通过附加特性或功能增加价值。
无论采用哪种方法,需求管理计划 (RMP) 都是团队在整个产品开发过程中使用的记录流程。它包含以下信息:利益相关者的角色和职责、将定义哪些需求和需求工件、如何完成和管理可追溯性、如何处理需求和需求基线、如何管理与外部系统和用户的交互(接口)、如何管理变更、如何验证产品是否符合要求以及如何验证产品是否符合需求。
成功的需求管理计划对利益相关者是可见的,并得到了利益相关者的签字,因为它为整个产品开发过程的所有利益相关者设定了方向和期望。
要求和需求工件
RMP 的一部分是定义将在需求管理过程中创建的需求和要求工件。
需求和要求工件包括与需求和要求相关的数据和信息以及相关信息。示例包括图表和模型、集成需求集、产品要求集、用例、设计文档、测试计划和程序。需求工件在整个产品开发生命周期中用于:
虽然一些组织会以文档形式(例如软件需求规范 (SRS))传达此信息,但越来越多的趋势是在需求管理软件应用程序中管理需求和要求。
组织转向以数据为中心的产品开发实践的原因是,对于任何基于文档的方法来说,要足够灵活和可扩展以应对复杂的敏捷项目都是困难的。对于必须证明合规性的受严格监管的行业来说尤其如此。由于多种因素(缺乏一致更新、人为错误、数据不完整、版本控制、需要建立和维护可追溯性等),文档根本无法确定需求或要求是否得到满足。
在高度监管的行业中,开发复杂产品的敏捷产品团队将使用需求管理软件应用程序来简化需求定义和管理的需求分析阶段,从而获得更大的成功。 现代需求定义和管理解决方案(如 Jama Connect®)可自动定义、建立可追溯性、管理和验证复杂产品需求,这不仅简化了需求分析,还简化了整体需求定义和管理流程。
需求和要求及其工件必须相互关联,并与其他相关工件相关联。 使用文档很难做到这一点,因为手动操作会导致无数错误。 对于复杂或高度监管的产品,尤其如此,因为可追溯性是证明合规性的先决条件。
需求和要求属性
为了跟踪给定项目中的需求,每个需求都应具有特定的属性列表。需求属性用于确保需求在所有需求工件中得到组织和唯一标识。这些属性还有助于管理需求和要求集,从而可以定义报告和仪表板以提供准确且及时的项目状态。
最佳实践是为所有需求和要求包含以下需求属性:
要求和需求基线
要求和需求基线是对已达成一致、已审查和已批准的一组需求和要求(或计划中的功能和特性)进行即时查看,这些需求和要求将包含在产品中。其目的是向利益相关者提供信息,以便他们能够做出明智的决策,并可能使用变更请求修改计划中的功能和特性。
RMP 定义了一个基线策略,包括创建时间和频率、需求和要求优先级(决定应包括哪些要求)、发布、变更管理、要求验证和要求验证。在这种情况下,需求和要求验证解决了需求和要求声明的质量以及可追溯性的存在和正确性。需求验证是与利益相关者确认,综合需求集清楚地传达了利益相关者对产品功能需求的意图。要求验证是与利益相关者确认,单个要求和整个要求集清楚地传达了它们所转化的需求的意图。需求的质量取决于它们所转化的需求的质量。
建立需求基线很重要,因为它意味着:
通常,基线存储在软件需求规范 (SRS) 文档中。但是,复杂系统可能需要各种软件、硬件和接口需求规范来封装基线的组件。在初始开发期间维护起来可能很麻烦,在变更管理期间则完全不可能。
或者,在需求管理解决方案中使用基线可以将基线定义为已存储在数据库中的需求的子集。这简化了流程 – 从优先级排序到利益相关者签字。
需求开发阶段
开发阶段采用组织的需求分析流程进行。
需求和要求开发阶段包括从已确定的利益相关者那里获取需求和要求,正确定义和细化这些需求和要求,并对其进行分析以确保清晰度并解决问题和冲突。如果没有成功的需求和要求开发,利益相关者的期望和最终交付的内容之间很可能存在差距,最终可能导致灾难。
引出需求和要求
需求和要求引出(也称为需求和要求收集)是与用户、客户和内部业务利益相关者合作以确定利益相关者的需求和要求并了解产品或系统要求的行为。
需求和要求定义
需求和要求定义是将收集到的需求和要求以清晰、可追溯的方式重新编写,以便在整个产品开发生命周期内进行有效沟通。
编写需求和要求时有许多注意事项,但以下是高质量需求和要求的基本特征:
需求和要求的可追溯性非常重要。归根结底,可追溯性是了解设计和构建的产品是否满足需求或要求的唯一方法。双向可追溯性(执行前向和后向可追溯性的能力,通常通过 Jama Connect 等需求管理工具实现)使团队能够了解特定需求或要求存在的原因并轻松分析变更的影响。
此外,受监管行业中的产品必须证明可追溯性以证明符合标准和法规。因此,在编写需求时,最重要的是将每个需求映射到所有相应的工件。
许多团队使用需求可追溯性矩阵 (RTM) 来跟踪需求并管理需求变更的范围。RTM 是静态的并手动维护。问题在于,变更在产品开发过程中无处不在。当变更发生时,团队必须手动搜索 RTM 文档,查找所有相关的上游和下游需求和要求、从属需求以及可能受变更影响的验证和确认测试。
如果只有一百个左右的需求和要求,那么在 Excel 电子表格中搜索每个变更可能并不那么令人生畏。但是,如果产品有数百或数千个需求和要求(想想复杂、受监管的产品),管理变更范围就会成为一项繁琐、耗时且充满风险的工作。
需求管理工具旨在简化流程,即使对于高度复杂、受监管的产品也是如此。具体而言,Jama Connect 利用动态需求的优势来:
需求分析
有时,利益相关者所说的需求和他们实际想要的之间存在差距。需求分析的目的是确保所有业务、软件和产品需求准确代表利益相关者的需求和要求。需求分析的目标是清楚地了解利益相关者的需求,以便交付符合利益相关者的期望。
系统验证阶段
系统验证意味着确定成品是否符合基准产品要求。这与系统验证(如下所述)不同,后者评估产品是否满足利益相关者的需求。两者都很重要,但系统验证始终是第一位的。
此阶段的规划始于定义产品需求时。规划包括确定需要哪些系统验证事件来确认产品要求得到满足。
为确保系统验证成功,应在需求成为基准之前为每个产品需求定义以下属性。
定义这些属性可以设定需要进行的测试和质量保证工作的期望,并降低后续返工的风险。
系统确认阶段
系统确认意味着确定产品是否满足既定的利益相关者需求。成功的系统确认是导致产品在实际操作环境中被预期用户接受用于其预期用途的原因。对于受到严格监管的产品,使用批准取决于成功的系统验证。客户最终接受产品也取决于成功的系统确认。
系统确认的规划始于定义综合需求集。规划包括确定需要哪些系统确认事件来确认需求得到满足。一种方法是定义一组属性来解决每个需求的系统确认问题。
为确保系统确认成功,应在确定需求基线之前为每个需求定义以下属性。
定义这些属性可以为需要完成的测试和质量保证工作设定期望,并降低后续返工的风险。
需求管理面临的挑战
需求管理也面临诸多挑战。其中一个挑战就是变更管理。由于变更在需求管理过程中非常普遍,因此团队需要在项目开始时解决如何管理变更的问题。
在构建具有数千个需求和无数变更的产品时,团队可能要花费数小时来传播、编辑和跟踪变更,以保持可追溯性并保持开发正常进行。
在以文档形式维护需求和要求时,这尤其具有挑战性。版本控制问题是变更带来的一个挑战。版本控制问题可能出现在工件本身上。例如,有人可能对 SRS 版本 1 给出反馈,但已经有了 SRS 版本 2,其中包含不同的额外编辑。此外,文档中的版本控制也可以更加细化。例如,需求 1 可能在版本 3 上,而版本 3 链接到版本 2 上的测试 B。
此外,还要通过电子邮件或会议整合来自多个利益相关者的反馈,分析变更对各种版本需求工件的影响,并将正确的变更和状态传达给合适的人员。光是想想如何把所有事情都搞定,就感觉像一场噩梦。
以下是需求管理的五大挑战:
很容易认识到,使用文档(或基于文档的旧系统)而不是专门构建的需求管理工具来管理需求时,问题会变得更加复杂。通过将需求管理方法从以文档为中心转变为以数据为中心,可以克服大多数这些挑战,甚至更多。
如何成功管理复杂产品和高度监管行业的需求
上述挑战是真实存在的,掌握这些挑战会对开发时间表和预算产生重大影响。汽车、航空航天、医疗设备、政府和工业制造等受监管行业的开发人员面临着进一步的挑战,他们需要证明产品符合法规和标准。
标准和法规可能是产品必须遵守的数百项要求的来源。通常,法规或标准中的要求并非全部适用于您的特定产品。标准和法规不仅包含产品要求,还包含有关系统验证和系统确认(验收、认证和资格)的要求以及开发产品的组织的要求。此外,标准和法规中的要求通常写得不好,含糊不清。
在项目开始时确定驱动因素和约束条件时,项目团队需要确定所有适用的标准和法规,以及这些标准和法规中的哪些要求实际上适用于他们的特定产品。然后,他们必须编写格式良好的产品需求,以满足这些监管要求的目的,从而使产品符合适用的标准和法规。
法规不是要求。必须编写需求以充分满足监管标准。在编写可使产品合规的要求时,对适用的标准和法规的敏锐理解至关重要。一旦编写完成,监管要求就应在所有需求工件中归因于此。这可以通过分配“合规性”属性来实现。这为所有团队成员提供了整个开发过程中的可见性,有助于决策和变更分析。
除了对标准和法规的专业知识外,在构建产品时还需要以下内容来保持产品合规性:
面对合规性审计时,报告是关键。团队必须知道审计需要哪些数据,以及如何在需要时轻松访问这些数据。通常,审计线索是事后才想到的,团队会忙着从多个来源收集数据。然而,这是一种危险的做法,因为它可能会危及交付时间表和发布截止日期。它甚至可能使发布面临完全失败的风险。必须证明合规性的团队必须使用详细的数字审计线索来消除这种风险,这些审计线索可以在需要时轻松导出。建立和管理可追溯性对于维护审计线索至关重要。
受监管行业的许多领导者依靠需求管理工具来降低产品开发过程中不遵守标准和法规的风险。例如,Jama Connect 可以在构建产品时跟踪标准、法规和合规性。这些行业领导者利用 Jama Connect 保持创新前沿:
关联:需求管理工具评估
需求管理工具的优势
需求管理工具的优势很多。现代解决方案可以消除文档和遗留系统的风险和低效率。像 Jama Connect 这样的有价值的需求管理系统可以在整个开发过程中弥合工程孤岛,包括测试和风险活动。有效的需求管理工具有助于通过以下方式改进产品开发流程:
有许多需求管理工具可用,但只有少数可以帮助获得上述所有好处。在考虑需求管理系统中最重要的功能时,首先要考虑正在构建的内容。行业和复杂程度将有助于确定最适合您团队的功能。购买需求管理工具的指南也可能有所帮助。
根据我们的经验以及从客户那里听到的信息,需求管理系统最重要的功能是:
好消息是您不必挑挑拣拣。Jama Connect 可帮助应对复杂性,并提供端到端合规性、风险缓解和流程改进,以及上述所有功能以及更多功能。