Ответ
Waterfall (водопад, каскадная модель) — это линейная и последовательная методология разработки ПО, где процесс строго разделен на независимые этапы. Переход к следующему этапу происходит только после полного завершения предыдущего, возврат назад затруднен или требует formal change request.
Основные этапы (фазы):
- Сбор и анализ требований — фиксация всех функциональных и нефункциональных требований.
- Проектирование системы — создание архитектурных и детальных дизайн-спецификаций.
- Реализация (кодирование) — написание кода согласно проектной документации.
- Тестирование (верификация) — проверка готового продукта на соответствие требованиям.
- Развертывание и сопровождение — внедрение системы и ее последующая поддержка.
Преимущества:
- Простота управления: Четкие сроки, бюджет и план работ.
- Хорошая документация: Каждая фаза имеет формализованный результат.
- Предсказуемость: Подходит для проектов с неизменными, хорошо понятными требованиями (например, в регулируемых отраслях).
Недостатки:
- Негибкость: Сложно и дорого вносить изменения на поздних этапах.
- Позднее обнаружение дефектов: Ошибки в требованиях или дизайне обнаруживаются только на этапе тестирования.
- Отсутствие обратной связи от заказчика: Рабочий продукт виден только в самом конце цикла.
| Сравнение с Agile: | Waterfall | Agile (например, Scrum) |
|---|---|---|
| Линейный и последовательный | Итеративный и инкрементальный | |
| Требования фиксированы в начале | Требования адаптируются по ходу работы | |
| Тестирование — отдельная поздняя фаза | Тестирование интегрировано в каждую итерацию |
Когда использовать Waterfall? Для небольших проектов с абсолютно ясными, стабильными требованиями и жесткими compliance-стандартами.