瀑布开发模式中,我们把软件交付过程划分为几个阶段,需求、开发、测试和运维。不论软件规模多大,都是以一种固定流程去推进。

这种按部就班的方式,导致我们在软件开发最初的具有很大的不确定性,很容易导致项目范围不断变更,计划不断延期,交付上线时间不断推后。最终的结果就是,即便我们投入了大量时间,却难以达到预期的效果。

具体表现在于:

  1. 整个开发过程不可控,想基于这种开发模式做项目计划太难;
  2. 项目人多了以后,无法有效分工协作;
  3. 项目开始的时候对需求几乎无法进行有效分析,对需求的理解容易出现偏差,后期导致很多返工;
  4. 项目编码完成后,没有进行有效测试,运行时 bug 非常多。
  5. 代码不稳定,部署太麻烦