Коскадная модель
Принцип работы Waterfall изобрел ученый-информатик Уокер Ройс. Модель получила название в 1976 году благодаря Томасу Тейеру и Томасу Беллу. В первые годы существования каскадная модель использовалась в любых видах программного обеспечения. Сейчас она применяется в технических, финансовых и медицинских секторах.
В 1970 году в своей статье Ройс описал в виде концепции то, что сейчас принято называть «каскадная модель», и обсуждал недостатки этой модели. Там же он показал, как эта модель может быть доработана до итеративной модели.
В исходной каскадной модели следующие фазы шли в таком порядке:
- Определение требований
- Проектирование
- Конструирование (также «реализация» либо «кодирование»)
- Воплощение
- Тестирование и отладка (также «верификация»)
- Инсталляция
- Поддержка


Простота управления проектом.Каскадная модель предоставляет четкий и легко управляемый процесс разработки. Фазы выполняются последовательно, что облегчает контроль за жизненным циклом проекта;+
Прозрачность. Весь процесс разработки представлен в виде четких этапов, что делает проект прозрачным и для разработчиков, и для заказчиков;+
Фиксированные требования. Требования к проекту четко определены на начальном этапе, что предотвращает изменения в процессе разработки;+
Проектная документация. Создается подробная документация на каждой фазе разработки, что удобно для последующего сопровождения и поддержки программного продукта.
Высокий риск ошибок в планировании. Поскольку каскадная модель предполагает тщательное планирование на начальном этапе, ошибки в требованиях или оценках могут повлиять на все последующие этапы. Любые пропущенные детали могут стать проблемой на более поздних стадиях, требуя значительных усилий на исправление.
Сложности с учетом изменений в технологии. В процессе разработки могут появиться новые технологии или инструменты, которые могли бы оптимизировать процесс или улучшить продукт. Однако из-за линейной структуры каскадной модели их интеграция становится затруднительной, так как это потребует пересмотра уже выполненных этапов.
Сложность внесения изменений. В силу своей линейной структуры, каскадная модель может оказаться неэффективной при необходимости быстрого реагирования на изменения в требованиях после начала разработки;−
Длительный цикл разработки. Поскольку каждая фаза выполняется последовательно, процесс может быть долгим, и заказчик не увидит результатов до завершения всего проекта;−
Ограниченное взаимодействие с заказчиком. Клиент может видеть результаты только после завершения проекта, что уменьшает возможность для обратной связи и корректировок в реальном времени.
Отсутствие гибкости при возникновении непредвиденных проблем. Каскадная модель предполагает строгое следование плану. Если на каком-то этапе возникают сложности, связанные с техническими ограничениями или нехваткой ресурсов, это может повлиять на весь проект, так как не предусмотрены итерации для адаптации к подобным ситуациям.
Риск недостаточной тестируемости на ранних этапах. Тестирование в каскадной модели начинается только на завершающих стадиях разработки, поэтому ошибки или проблемы в дизайне или коде могут остаться незамеченными до поздних этапов, когда их исправление становится более сложным и затратным.
Проблемы с мотивацией и вовлеченностью команды. Поскольку каждый этап работы длится длительное время и выполняется строго последовательно, команда может столкнуться с монотонностью работы. Отсутствие промежуточных результатов или видимых достижений может снизить мотивацию участников проекта.