术语表
变更成本曲线
修改成本曲线
变更成本曲线 描述的是:变更发生得越晚,成本上升得越快。在概念阶段修正一项需求几乎不产生成本;验收之后进行同样的修正,成本会高出数倍。
原因在于有多少工作建立在这项决定之上。只要需求还停留在概念文档里,变更只影响一份文档。一旦进入设计,就会影响设计以及由此派生的全部内容。如果已经实现并通过验收,还要加上返工、重新验证、文档更新和沟通成本。因此这条曲线并非线性上升,而是接近指数上升。
同一项变更在各阶段的成本
按发现时点计算的修正相对成本
变更成本
概念1 倍
设计约 5 倍
实施约 20 倍
验收之后约 100 倍
为什么会上升每个阶段都会产生以该决定为前提的后续工作。一次晚到的变更,会连同这些后续工作一起作废。
由此得出的结论把澄清工作放到成本还很低的位置。这正是前置投入以及每一次阶段评审的核心。
这里的倍数是量级示意,不是实测数据。关键在于曲线的形状,而非某个具体倍数。
这些数字最早来自 巴里·勃姆。他在 1981 年的《Software Engineering Economics》中,从项目数据中推导出了这一关系。对于实施成本很高的传统项目,例如建筑、工程装备或大型活动,这一关系至今依然成立。在施工现场改动的内容,成本是在规划阶段改动的数倍。
在软件开发中,这条曲线已经明显变平。自动化测试、持续集成和小批量发布大幅降低了后期变更的成本。肯特·贝克 由此提出了相反的论点:如果曲线是平的,提前锁定就不再划算,因为可以在掌握信息最多的时候再做决定。
因此曲线的形状取决于项目本身,而不是所用方法。在实施成本高、成果层层叠加的领域,例如建筑或系统迁移,它会陡峭上升;在修正成本低、可自动验证的领域,它保持平缓。这个斜率决定了在项目生命周期的哪个阶段做出决定才有价值。