产品的复杂性正在迅速增长,因此,为满足客户目标所需的需求数量也在扩大。这使得需求文档编制过程既耗时又可能存在风险。在本章中,我们将探讨如何采用敏捷方法进行需求管理。
现有的需求管理方法总是不够灵活,无法满足严格要求以及提供单一的事实来源。但是参与项目的每个人都需要最大的可见性,以了解您正在构建什么?以及为什么。
一项的研究发现,大多数设计团队都表示他们没有使用专门的需求管理系统,仅依赖繁琐的电子邮件和共享文档来管理需求,仅有15%的受访团队使用了专门的需求管理解决方案。
比起使用需求管理系统的团队,未妥善管理需求的团队可能会面临协作低效和返工等影响项目进度的问题。
一、什么是用敏捷的方法管理需求
对敏捷需求管理的定义并没有公认的定义,也没有一套如果你实施就会让你自动变得敏捷的流程。但是通过践行一些概念、流程和工具可以提高需求管理的敏捷性。
敏捷需求管理方法的核心价值在于其灵活性,这就意味着可以轻松进行迭代和变更,获得的结果更准确,可以避免交付成果偏离目标,也可以避免项目逾期。
敏捷需求收集可加快项目进度,同时准确的满足客户的需求。这一过程中协作至关重要,因为每个团队成员都需要深入了解客户的确切要求,并理解这些要求对需求管理有何影响。
与不使用敏捷需求的团队相比,采用敏捷方法进行需求管理的团队其工作效率和生产力会都有显著提高,同时可以降低低效工作时间、缩短冗长的审查过程、避免大量返工,以及所发布产品存在严重缺陷的风险。
二、敏捷需求管理在哪些方面优于其他替代方案?
敏捷需求管理重点关注行动。通过敏捷,你可以在前期创建一个灵活的框架,因此产品实施更快、更准确。相比之下,其他方法,如瀑布方法,灵活性较低,基础结构较为僵化。但是为什么呢?
因为瀑布方法遵照V 形开发流程,编码相关的步骤例如:收集需求、需求分析、开发和架构,是按照特定的顺序依次执行的。在完成上一步之前,不能进入下一步。一旦编码完成,你就会按特定的、不灵活的顺序继续进行下一个过程。
这种方法背后的策略是在前期尽可能地做更多的工作,项目早期阶段做出的任何决定都要严格遵守,没有多少变动的余地。此外,需求和设计通常在开发过程的最后阶段才进行测试,所以任何可能的变化都会在开发周期的后期出现,因此需要更多的时间来修复。
相比之下,敏捷需求管理建立在以灵活性为原则的基础之上,因此任何潜在变更都可更早识别和解决,从而最大限度地减少高成本的返工。
敏捷方法的一些好处包括:
- 改进产品的设计和交付:面对日益增加的法规要求,物联网设备的联网需求,以及敏捷实践的扩展,应用开发与交付(AD&D)领域的领导者们希望找到一种方式,能够在他们的流程中增加可追溯性和可审计性,同时不会牺牲开发速度。根据一份最新的报告,对于采用敏捷开发方式的团队来说,优质的需求管理(RM)解决方案可以显著提高他们的产品设计和交付能力。
- 提高可追溯性:可追溯性的好处不仅在于提高开发透明度,还能帮助团队更好地分析需求变更和项目风险。
- 上市时间更快。要加快将产品推向市场,团队必须应对更复杂的开发要求和行业法规,衡量客户价值,以便跟踪和连接相互关联的需求。团队需要更快、更有效地进行协作,努力构建可追溯的需求和测试用例。
学习敏捷需求管理方法不仅可以让团队和客户受益,还有助于了解敏捷生命周期及其工作原理。这样可以提供一个基本的理解,帮助你更好地应用敏捷需求管理的方法。
三、通过敏捷需求管理生命周期提供更大的灵活性设计
敏捷需求管理生命周期的重点是明确定义项目的范围,以便更好地理解为实现预期的最终目标需要做什么。它提供了对商业目标的高层理解,并概述了项目成功所需要的内容。
可以考虑采取以下步骤:
- 理解用户故事:用户故事为你提供了有关你试图解决的问题的强大信息。用户故事是对日常用例的简洁描述,描述用户期望产品如何执行。模板可能是这样的:“作为[角色],我需要[产品]执行[软件的目标],以便我能够[产品的好处]。”
- 概述最重要的需求:基于高层次的商业策略,确定哪些需求是最重要的。这些需求可能基于用户故事,功能需求等来支持,具体取决于特定的客户目标。
- 转化为产品功能:这个阶段是关于微调和将你收集到的详细信息转化为产品特性。开发团队协作确保任何需求都能被执行它们的人员容易理解。用户故事与特性和任务相链接,这样开发人员就明白他们需要做什么?也明白他们为什么要这么做。
敏捷需求管理帮助你建立一个基础,并使用最佳实践为你提供经过验证有效的策略,帮助你朝敏捷的方向前进。
协作与认同
对于涉及很多利益相关者的大型项目,就需求达成一致意见是一项艰巨的任务。因此,说服持不同意见的成员认可某一方案比强硬的要求他们妥协更有效。这样不仅更容易获得他们对最佳解决方案的支持,有助于做出明智的决策,也有助于推进需求管理流程。
团队协作是建立良好需求的关键。协作良好的团队会努力确保每个成员都参与进项目中,并给予反馈。当团队成员理解项目目标且努力去实现时,就更容易支持其他成员的决策。如果有开发人员、测试人员或其他利益相关者感到与项目“脱节”,团队沟通就会出现问题。“脱节”的成员会觉得自己不被认可和尊重,这样很容易拖延整个项目进度。
可追溯性和变更管理
需求可追溯性是一种让每个人都保持对项目了解的方式。从只是一个想法到最终测试阶段,需求可追溯性可组织、记录并跟踪所有需求。可追溯性被形象地比喻为枢纽环节,它可识别项目中不同要素之间的关系。下图展示了常见的下游流程示例。
公司应能够在整个开发过程中,而不仅仅是在完成后,追溯每个需求回到其原始的业务目标。通过追溯需求,公司可以识别变化带来的连锁反应,查看他们是否已经完成了一个需求并且是否正确地测试了它。通过可追溯性,以及有效地管理变化,管理者可以预见问题并确保持续的质量。
可追溯性还确保产品满足来自不同利益相关者的所有重要需求。通过追溯需求,所有团队成员与彼此和所有的相互依赖保持连接。通过良好地管理变化,公司可以避免范围蔓延——当需求没有被清楚地捕获、理解和沟通时发生的未计划的变化。良好需求的好处是对产品和涉及的范围有清楚的理解。这导致更好的开发时间表和预算,防止延误和成本超支。
质量保证
准确的获取需求可提高工作质量,缩短开发周期,提高客户满意度。清晰、具体的需求能够帮助公司及早发现和解决问题,因为在项目开发过程中,后期解决问题的成本要比前期高出许多。研究表明,有效地管理需求可以解决50% 到 80% 的项目缺陷。Borland Software(现Micro Focus)认为,在开发过程的后期纠正缺陷的成本,可能比前期高出 100 倍。
将需求管理最佳实践整合到质量保证流程中,可以帮助团队提高效率的同时避免返工。卡耐基梅隆软件工程研究所表示,软件开发成本的 60% 到 80% 花费在返工上。也就是说,开发团队将大部分预算浪费在因为需求管理不完善而产生的问题上。
虽然需求管理最佳实践看起来很复杂,但其核心概念却很简单,它可以帮助团队回答以下问题:从业务领导到产品经理、项目负责人、开发人员、QA 经理和测试人员,是否都了解团队正在构建什么样的产品以及原因是什么?
当团队中的每个人都协作在一起,积极参与关于产品开发的讨论,清楚所有决策和变更,这样的团队一定能开发出成功的产品。
需求管理指南:
需求管理: 需求管理主要内容 | 需求管理的重要性 | 采用敏捷方法进行需求管理 | 如何克服需求管理的 5 大挑战 | 更多
需求编写: 功能需求的示例和模板 | 采用 EARS 方法来改进需求工程 | 如何编写一份优秀的产品需求文档(PRD) | 功能性需求与非功能性需求的区别 | 有效需求的特征 | 更多
需求收集和管理流程: 需求工程概述 | 产品团队的需求分析指南 | 敏捷产品团队的 11 种需求收集技巧 | 定义和实施需求基线 | 更多 需求的可追溯性:什么是需求可追溯性 | 可追溯性在现代产品和系统开发中的关键作用 | 如何创建和使用需求追溯矩阵 | 更多
需求确认和验证: 产品团队的需求验证和确认 | 更多
需求管理领域文章:
做好需求分析的4大关键认知 | 盘点国内9款热门需求管理系统 | 构建产品路线图的方法与工具 | 做好需求优先级判断的7种主流模型 | 采用敏捷方法进行需求管理 | 更多