编辑导语:需求管理对于项目来说十分重要,上篇需求管理如此重要,如何管理(上篇)讨论了需求的基本定义、分类标准并引入了产品范围的概念,本篇文章将向大家说明需求管理的意义,并总结了包括需求蠕变在内的项目失败原因。
需求管理如此重要,如何管理(中篇) - 图1

一、需求管理为何重要

低效的需求管理流程(或者更常见的是,完全没有需求管理流程)被认为是项目失败的重要原因。特别地,产品范围蠕变和无法控制是是项目延期和成本超支的常见原因。

蠕变(Creep)这个专业名词来源于材料科学,我们可以参见维基百科的解释:
In materials science, creep (sometimes called cold flow) is the tendency of a solid material to move slowly or deform permanently under the influence of persistent mechanical stresses. It can occur as a result of long-term exposure to high levels of stress that are still below the yield strength of the material. Creep is more severe in materials that are subjected to heat for long periods and generally increases as they near their melting point.

在材料科学领域,蠕变 (有时称为冷流) 是固体材料在持久机械的影响下缓慢移动或永久变形的倾向应力。蠕变的发生由于长期暴露在相对较高,但是低于材料的应力强度的高压力水平下 (因此不会立即发生形变)。对于长时间受热的材料,蠕变效应往往更为显著,并且随着材料温度接近熔点而逐渐加强。

由此可见,蠕变是一种相对缓慢但是最终结果不可逆的应力过程,我们日常所说的「水滴石川」「铁杵成针」就可以理解为在相对更长的时间周期内效果相对显著的蠕变案例。

蠕变所描述缓慢但是不可逆的变化过程,也存在于需求管理的过程中。我们可以把蠕变的概念,推广到需求管理领域:随着时间不断推移,产品范围在持续的需求变更压力下,逐渐发生缓慢但是不可逆的过程,最终导致了整个产品范围和产品计划的巨大变更。
需求管理如此重要,如何管理(中篇) - 图2
我们仍然用之前产品范围模型图来说明需求蠕变的过程:

从实际情况来看,就和生活中的一切变化一样,需求变更无处不在,而且无法避免:所有需求都有来源、干系人、市场环境、业务流程、监管政策、技术条件,当需求的任意一项关键要素发生变更时,需求也必须随之改变。

在大多数场景下,这些要素的变化是细微且缓和的,不会超出需求管理系统的处理能力极限,只需稍微修改已经定义的产品范围和需求规约,但是随着时间的推移和变化的累积,需求乃至产品的蠕变最终发生。

而作为需求和产品范围蠕变的结果,当一个和最初设计和预想的功能特性有极大出入的项目和产品上线时,这样的项目和产品很难符合客户的需求,更遑论获得用户的认可和欢迎。

事实上,根据 IBM Rational 的项目经理调查报告 (Visitacion, 2003) IBM 的项目经理认为范围蠕变和需求质量的控制成效是项目成功与否的最关键要素。简而言之,软件项目的成功取决于对需求的深入理解和对变更的快速反应。

根据美国国家航空和航天局总部成本与经济分析处的项目成本统计数据显示,在需求流程上花费不到项目或项目总成本 5% 的项目经历了 80% 到 200% 的成本超支,而投资 8% 到 14% 的项目超支则普遍小于 60%。

美国宇航局的研究结论是,对需求管理流程的投资占到总项目成本的 8% 到 14% 时 ,所产生的项目,其成本超支(相比其他项目)要低得多。

所以,需求问题需要在项目生命周期的极早期阶段就得到处理,因为基于有问题的需求所产生的设计缺陷将导致在项目开发过程中 (甚至是项目上线阶段) 出现解决难度和处理成本都更高的业务问题。在项目早期对需求管理过程的投入在项目的结束阶段最终收获回报 ,避免了在此过程中由于需求蠕变所引起的许多的设计问题和业务问题。

由于需求管理过程不尽人意,很多项目最终失败,延期或者超支完成。只有很少的项目可以被算作为成功完成:即在合理的时间范围和成本预算区间内完成了计划的产品需求。

然而项目的完成远非产品的终点,研究表明,在面向客户市场 (也就是商业端市场),相关企业的最终交付产品中,只有 45% 的功能和特性是用户实际使用的。换言之,即使很多公司和项目对需求的变更和处理有着相当高效的处理流程,由于对需求理解不够清晰,最终的产品仍然没有满足客户需求。
需求管理如此重要,如何管理(中篇) - 图3
就像这幅流传甚广的图片所揭示的那样,不同的干系人对需求的理解存在偏差。
图中文字依次为:

  1. 客户所阐释的需求
  2. 项目负责人理解的需求
  3. 系统分析师的设计
  4. 程序员完成的代码
  5. 商业顾问描述的产品
  6. 项目文档所记录的需求
  7. 产品的运维条件
  8. 客户被收取的费用
  9. 客户得到的产品支持
  10. 客户期望的产品

    二、项目为什么会失败

汇总历年来各种项目调研报告的结果之后,我们可以得到以下失败原因,这些原因概括了我们在项目中所遇到的各种各种的问题。

  1. 需求蠕变:需求和产品范围蠕变
  2. 资源受限:有限的资源和人员分配
  3. 沟通不良:缺乏有效的沟通机制和习惯
  4. 反馈不足:闭门造车地处理需求,缺乏最终客户的参与和反馈
  5. 排期失准:基于过去经验估算项目时间地排期方式并不可靠
  6. 风险失控:缺乏必要的风险管理和控制机制
  7. 缺乏规划:缺乏明确和完善的需求规划和项目计划
  8. 目标过高:对项目预期过高,制订了不可完成的目标
  9. 管理失序:缺乏有效的项目管理流程
  10. 需求废弃:需求已经无法满足客户需求,或者不再具有可行性

需求管理如此重要,如何管理(中篇) - 图4
我们可以将上述十个项目失败原因概括为四个维度:

  • 计划管理
  • 沟通协作
  • 项目管理
  • 需求管理

我们可以看到,这些失败原因有时不仅仅是因为在一个维度存在欠缺导致,很多时候是多个维度的不足协同发生作用,最终导致项目失败。而其中,我们最需要关心的维度就是计划管理和需求管理。

计划是产品的预期,需求则是产品的实体,而计划、沟通和项目都只是推动需求演化为产品过程中的工具和方法,是计划和需求管理的派生物。如果工具不够好用,我们当然可以换个工具,这对我们的工作成果影响很小,但是如果计划和需求出现问题,那么现有的工作成果难免受到波及,很多时候已完成的产品都需要推倒重来。
卓越的计划管理,需要产品设计者有对客户、需求、产品和行业有着经年的积累和深入的理解,更需要惊人的远见和敏锐的嗅觉。要做好计划管理,不止需要经验,更需要天分。

相较之下,需求管理则有着更加一般化的处理方法:当产品经理和项目经理发现需求问题时,他们会提出并突出这些问题,他们会尝试优化需求管理流程来解决这些问题,他们会不断地吸取经验教训,把自己所学到的业务经验用于防止相似的需求问题重新发生。

这样的话,很多需求问题将在项目早期有效地被识别出来并得到解决,或在开发阶段得到根除。
本篇文章说明了需求管理的重要性,以及项目失败的主要原因。接下来我将更新本系列的最后一部分:需求管理的具体流程,敬请大家关注。


产品教练

产品教练