Методология Waterfall, известная также как каскадная модель разработки, хоть и утратила свою популярность, сыграла важную роль в формировании Agile. Эта модель предполагает последовательное и строгое выполнение задач согласно заранее определённому плану. Название появилось в 1970 году в статье Винстона Уолкера Ройса, директора Lockheed Software Technology Center, а структура была заимствована у диаграммы Ганта.
Что такое Waterfall?
Waterfall — это метод разработки продуктов, который напоминает поток воды, направляя команды к выполнению задач строго по плану.
Основные принципы Waterfall
- Документация и инструкции — всё должно быть тщательно задокументировано.
- Каждый следующий этап начинается только после завершения предыдущего.
- Пропуск этапов не допускается.
- Если требования к продукту меняются после утверждения, техническое задание (ТЗ) переписывается.
- Возврат к предыдущим этапам для внесения изменений невозможен.
- Процесс создания продукта линейный и не предполагает итераций.
- Ошибки выявляются и исправляются только на этапе тестирования.
- Клиент не участвует в разработке после утверждения ТЗ.
Как работает Waterfall?
Разработка по каскадной модели состоит из пяти последовательных этапов:
1. Анализ
На этом этапе собираются требования к продукту, составляется подробное техническое задание, разрабатывается график работ и оцениваются возможные риски. Переход к следующему этапу возможен только после завершения всех этих шагов.
2. Проектирование
Создаётся прототип и дизайн-макеты. После их готовности подключаются разработчики.
3. Разработка
На этом этапе создаются конструкторская документация или код продукта в соответствии с планом, макетами и требованиями. Всё должно строго соответствовать ТЗ.
4. Тестирование
По разработанной документации создается прототип продукта и начинается его тестирование. На этом этапе могут обнаружиться серьёзные ошибки в конструкции или коде, что потребует значительного времени на их исправление. Это один из главных недостатков каскадной модели.
5. Эксплуатация и поддержка
Продукт передаётся заказчику, и за его работой наблюдают по заранее согласованному сценарию в течение определённого времени.

Чем Waterfall отличается от Agile?
Основное отличие Waterfall от гибких методологий заключается в том, что в классической каскадной модели все задачи выполняются строго по заранее написанному и согласованному ТЗ. Гибкость здесь не приветствуется. В отличие от этого, Agile предполагает гибкость и адаптацию к изменениям.
Если бы у Waterfall был манифест, он мог бы выглядеть так:
- Следуйте правилам.
- Без утверждённого ТЗ нет продукта.
- Чем подробнее ТЗ, тем лучше продукт.
- Избегайте изменений.

Заключение
Waterfall — это методология с заранее продуманным и зафиксированным планом, что имеет свои преимущества. Она подходит для проектов, в которых все требования чётко определены и не могут измениться (например, строительство дома). Однако в современных условиях это случается редко. Поэтому команды часто добавляют к каскадной модели гибкие элементы, например, проверяют продукт на соответствие требованиям после каждого этапа разработки, а не только в конце.
Добавить комментарий