软件交付的演进历程( 二 )

软件发布不会频繁

软件构建后很难进行更改,所以确保第一次把事情做对

软件开发需要很多不同的、成本高昂的技能集

建筑行业也有着类似的假设。建筑需要很长的时间,竣工后不能简单的添加一层或把面积扩大。建筑也涉及到很多不同的专业,从设计师到开发商,到质量监理以及工人、电工和水暖工等等。从这些角色的命名可以看出,软件开发从建筑行业借鉴了很多。

建筑行业遵循的流程是,把端到端的项目分成不同的阶段,每个流程阶段由不同的专业人士来负责。这种在每个阶段赋予角色的做法有利于充分利用成本高昂的人力资源。

瀑布流程

这看起来是一个很棒的流程。瀑布模型在 20 世纪 60 年代后期开始采用,直到 80 年代中期它才成为事实上的软件交付标准。但在流程执行中出现了些问题。根据 2014 问题报告,31% 的瀑布项目在投入很多后被取消,更有 52% 的项目预算需要翻倍。

鉴于这种很低的成功概率,很多人开始各自提出新的、更好的方式来交付项目,以克服瀑布流程中的一些缺陷。

推荐阅读