这里有一个误解:敏捷不鼓励更改项目要求。相反,它允许进行更改而不会浪费工作或牺牲重要的开发领域。
任何工程项目都有四个基本约束;范围,成本,时间和质量。瀑布假定这些将是静态的。那是一个错误的假设;这些中的一个或多个总是会改变。范围爬升,削减的预算以及其他“未知未知数”总是会干扰项目,从而改变了约束条件。Waterfall不会预料到这一点,因此,当它发生时,项目将以不希望的方式发生变化。尚未添加的重要功能会消失,无法快速完成,或者必须推迟发布,或者由于PM向新开发人员投入资金来帮助他们正确完成工作而导致成本上升。
相比之下,敏捷允许约束发生变化,并且实际上是期望的。它根据所有者的优先级,通过在可用的小块中进行工作来完成此工作,因此,理想情况下,这些块立即对项目所有者有用。因此,通过在未知数很大的时间范围内不制定大型计划,可以减少对未知数的暴露。如果时间轴发生变化,则可以添加团队,或者将不重要的功能“取消范围”,并且团队已经构建的系统不受影响。
它还可以更好地估算以所需质量生产给定示波器所需的时间和成本。众所周知,人们不擅长估计大工作。要正确执行此操作,需要大量的经验和大量的前期计算。相比之下,人们通常会很好地判断一天或一两周内可以完成的工作。这样很快就会产生一个稳定状态,您可以在此状态下根据您的历史步伐推断出要完成的工作的时间和成本,而且准确性很高。
至于定义端点,您是对的。敏捷项目可以永远进行下去。但是,传统的SLDC也可以。客户通常会带来更多的钱和升级愿望清单。区别在于,从整体上看项目时,“分析”,“设计”,“开发”和“维护”之间没有明确的界限;这一切都是一砖一瓦,一个冲刺一个冲刺。如果所有者希望在任何时候称该项目为“完成”,则可以,并且他们将在坚固的“墙”中获得已支付的“砖”的总和;它可能没有最初计划的那么高,也没有扩展到最初的计划,但是它已经牢牢地固定在位,可以正常工作,并且可以在以后添加,而不会造成任何破坏。