Очевидно, что различия в влиянии на команды, клиентов, ROI и т.д. на применение этих двух подходов огромны и являются предметом многих книг и бесконечных дискуссий и конференций.
Но, как я больше думаю об этом, мне трудно найти какую-либо разницу между двумя, которые в конечном итоге не отображают одно различие в корне, которое является частотой выпуска.
Водопад тратит время на дизайн, затем записывает код, затем тестирует и, наконец, выпускает. Но Agile выполняет точно такой же набор шагов - это просто то, что каждый из них меньше.
Ключевым элементом подхода Agile является изучение каждого выпуска и использование этого, чтобы создать более крупный дизайн вместо того, чтобы пытаться предсказать его в начале.
Но Водопад тоже делает это. Его просто так, что вместо обучения каждые 3-4 недели команда "Водопад" учится каждые 6 или 9 месяцев. Но дизайн Водопада все еще появляется. То есть, релиз 2 водопада будет отражать то, что было изучено в выпуске 1. Таким образом, процесс не отличается, его просто происходит с другой скоростью.
Agile фокусируется на тесном сотрудничестве с клиентами. Но Водопад тоже делает это. Его справедливость заключается в том, что, поскольку водопад имеет более длительное время итерации, необходимо перечислить список требований в виде контракта, чтобы держать всех на одной странице в течение длительного периода времени. Но опять же, это всего лишь артефакт частоты. Чем выше частота доставки, тем ниже потребность в контракте.
Есть ли какие-то другие примитивные отличия, которые мне не хватает - или это действительно просто частота?