O método em cascata (Waterfall) funciona nos casos em que faz sentido cada etapa ser dependente da anterior. Na engenharia de software, contudo, as etapas precisam ter independência. Por exemplo, o front end precisa ser relativamente autônomo em relação ao back end, e vice e versa, porque os desenvolvedores devem (entre outras coisas) ser responsivos ao feedback dos clientes. No Waterfall, clientes não podem participar tão ativamente do processo de criação, validando ou rejeitando ideias e hipóteses. Deste modo, o produto fica pior, o cliente insatisfeito e os funcionários têm retrabalho e perdem agilidade.