Ответ
Каскадную модель (Waterfall) имеет смысл рассматривать для проектов с четко определенными, стабильными и неизменными требованиями на старте. Это характерно для областей с жестким регулированием, где процесс важнее гибкости.
Из моего опыта, Waterfall может быть оправдан в следующих контекстах:
- Разработка встроенного ПО (Embedded Systems) для медицинских устройств или авионики, где каждый этап (требования, дизайн железа и софта, кодирование, верификация) требует сертификации и документации перед переходом к следующему.
- Крупные государственные или инфраструктурные проекты со строго фиксированным бюджетом и сроками, прописанными в контракте.
- Проекты с внешними, не техническими заказчиками, которые хотят видеть детальный план и график поставки «раз и навсегда» перед выделением финансирования.
Главный недостаток, с которым я сталкивался: Ошибки в требованиях или дизайне, обнаруженные только на этапе тестирования, требуют крайне дорогостоящего возврата на ранние стадии проекта. В Agile-подходе такая обратная связь поступает на каждой итерации, что значительно дешевле.
Поэтому сегодня я предпочитаю гибридные подходы (например, «Water-Scrum-fall»), где этапы планирования и сдачи — каскадные, а сама разработка ведется итеративно внутри спринтов.