The Essential Guide toRequirements Management and Traceability

章节

为什么需要需求管理?

    并非每位经理都相信他的团队需要在需求开发和管理方面做得更好,或者这样的投资会有所回报。然而,许多行业研究表明,需求问题是项目困境的普遍原因。经常被引用的 Standish Group 的 CHAOS 报告指出,导致项目失败或“面临挑战”的三大因素是缺乏用户输入、需求和规范不完整以及需求和规范不断变化。


    为什么需要需求管理?

    实施更好的需求实践的理由是经济或商业论点,而不是哲学或技术立场。想想贵公司的底线如何受到与需求相关的问题的影响。然后利用这种理解来证明投资更好的需求实践是合理的,因为这些实践可以带来长期回报。

    最近一个关于需求失败的案例研究是联邦调查局的新案件管理软件系统 VCF。这个项目在花费 1.7 亿美元后被放弃,因为交付的软件充满了缺陷和偏离目标的功能。正如一位调查员所写:

    我怀疑 VCF 发生的事情是,在匆忙建立一个系统时,你认为你已经确定了你的需求,但实际上并没有。这是一个典型的案例,从一开始就没有充分定义需求的完整性和正确性。因此,它需要不断地重新定义需求,这对已经设计和生产的产品产生了连锁反应。

    许多研究都考察了需求错误对软件项目的影响。他们一致发现,近一半的发现缺陷源于需求错误。需求错误的典型结果是期望差距,即开发人员构建的内容与客户真正需要的内容之间的差异。显然,任何导致软件项目中大约一半问题的根本原因都值得我们关注。

    需求错误如此具有破坏性的主要原因是它们迫使开发团队进行大量返工以纠正错误。众所周知,越晚发现软件错误,纠正成本就越高,如表 1 所示。需求中的错误、遗漏或误解会迫使开发人员根据错误的需求重新做他们已经完成的所有工作。因此,任何可以减少需求缺陷并防止部分浪费精力的技术都是一项高杠杆投资。对更好需求带来的潜在投资回报的分析表明,需求错误可能占所有项目返工成本的 70% 到 85%。

    表 1. 纠正需求错误的相对成本

    发现阶段错误纠正的相对成本
    需求开发1X
    设计2–3X
    构建5–10X
    系统或验收测试8–20X
    操作68–110X

    更好的需求能为你做什么

    除了避免上述一些负面后果之外,更好的软件需求还具有许多好处。这些好处包括选择合适的项目进行资助、促进估算、实现合理的优先级排序、开发更高质量的设计以及更有效地进行测试。

    选择要资助的项目。良好的初步需求使高级管理人员能够在组织决定在一组潜在项目中资助哪个项目时做出有效的业务决策。更好的需求可以更准确地预测业务回报。一旦项目获得资助,更好的需求可以让项目经理更合理地在其团队之间甚至在各个团队成员之间分配任务。

    促进估算。充分理解的需求可以帮助您的团队估算执行项目所需的工作量和资源。可靠的估算需要需求规模和工作量之间存在一些历史相关性。

    实现优先级排序。记录的需求使团队可以优先处理其剩余工作。大多数项目需要做出妥协,以确保它们实现最关键和最及时的功能。优先需求基线有助于团队纳入那些将提供最大客户价值的变更。一项研究表明,一般项目仅交付了 54% 的最初定义功能。如果您无法实现所有请求的功能,请确保团队实现了正确的部分。

    开发设计。需求是设计的基础。因此,充分理解和充分沟通的需求有助于开发人员设计出最合适的问题解决方案。高质量的需求还可以确保开发团队解决正确的问题。许多开发人员都经历过实现某人发誓需要的功能却发现没有人使用过的沮丧。一项调查表明,交付的软件产品功能中有 45% 从未使用过。减少在实现错误功能上的时间可以加速项目并最大化其业务回报。

    有效测试。定义明确且可测试的需求允许测试人员开发准确的测试程序来验证功能。对需求进行优先级排序可以告诉测试人员首先要关注哪些需求。评估需求难度和风险可以帮助测试人员了解哪些功能应该得到最严格的审查。

    跟踪项目状态。一套全面、可追溯的需求有助于利益相关者了解项目何时完成。当分配给它的所有需求都被验证为在产品中正确实施或从基线中删除时,工作主体就完成了。定义的业务需求还允许利益相关者确定项目是否已实现其目标。

    加速开发。信不信由你,在开发需求上投入更多精力实际上可以加速软件开发。这似乎违反直觉,但这是真的。定义业务需求(产品将提供的预期业务成果)使利益相关者与共同的愿景、目标和期望保持一致。有效的用户参与建立需求可以减少用户在交付时拒绝新系统的可能性。以下是一些已发布的插图。

    • 在一项针对 15 个银行和电信项目的研究中,最成功的项目将 28% 的资源用于需求工程,而研究中的平均项目仅将 15.7% 的精力用于需求。
    • 增加 NASA 项目组用于需求的总预算比例,可大幅降低成本和进度超支;见表 2(Hooks, Ivy F. 和 Kristin A. Farry。2001 年。以客户为中心的产品:通过智能需求管理创造成功的产品。纽约:AMACOM)。
    • 在一项欧洲调查中,速度最快的项目团队在需求活动上花费的时间(17% 对 9%)和精力(14% 对 7%)大约是速度较慢的团队的两倍。

    表 2. NASA 部分项目的成本和进度超支情况

    需求预算支出百分比项目数量项目平均成本超支
    < 5%5125%
    5% ~ 10%783%
    10%630%

    准确的需求确保构建的功能将允许用户执行其基本业务任务。需求还建立了可实现的质量期望。这让团队能够实现让用户满意的功能和产品特性(非功能性需求)。此外,强调需求开发比依靠 beta 测试来查找需求问题更便宜。在游戏后期修复问题比早期更正问题要昂贵得多。

    Jama Software 与 Karl Wiegers 合作,通过一系列博客文章、白皮书和网络研讨会在我们的网站上分享他的书籍和文章中的授权内容。Karl Wiegers 是一名独立顾问,不是 Jama 的员工。您可以通过 http://www.processimpact.com 与他联系。享受这些免费的需求管理资源。

联系表单

这将关闭于 0