Люди не используют модель водопада из учебника и, вероятно, никогда не используют.
Это идеализированная теоретическая конструкция, цель которой - заставить вас задуматься над этапами разработки систем. Суть в том, что вы хотите, чтобы большие изменения происходили как можно раньше, потому что у вас никогда не будет времени или денег, чтобы сделать большие изменения, когда будет создано много кода.
Несмотря на то, что это скорее образ мышления, чем процесс, многие все же, вероятно, большинство организаций занимаются созданием программного обеспечения (или домов, или подводных лодок, или чего-то еще ...).
В реальном мире у вас нет абсолютно строгих ограничений между этапами, и вы иногда возвращаетесь к предыдущим этапам для небольших подпроектов. Методология говорит вам не то, что «эти вещи не разрешены». Он говорит вам, что «эти вещи стоят вам денег и / или времени», поэтому постарайтесь избежать этого в будущем.
Для Agile Snobs (TM) все хорошо и хорошо, он смотрит свысока на «старомодных» разработчиков и их причудливую, неосуществимую методологию водопада, но факт в том, что Agile также не панацея. Некоторые проекты не могут быть построены с использованием Agile, и многие команды, которые думают, что они Agile, на самом деле просто небрежные и неорганизованные.
Методология не в этом. Суть в том, чтобы подумать о том, что вы делаете и почему вы делаете это таким образом, и получить максимальную отдачу от клиента в кратчайшие разумные сроки.