Преимущества методологии Waterfall для разработки программного обеспечения:
- Чёткость и предсказуемость. 2 Требования заказчика собирают перед началом проекта, а решение принимают исходя из анализа данных. 2 Этапы разработки определяют заранее. 2
- Понимание, что и как делать. 2 Есть техническое задание, которого придерживается команда. 2 Для каждого этапа создаётся документация, в которой описаны все результаты и требования к следующему этапу. 2
- Подходит крупным проектам, где важно контролировать бюджет. 2 Перед стартом просчитывается стоимость и время выполнения работы. 2
- Подходит для типовых проектов, знакомых команде. 2 Если до этого уже были подобные проекты, Waterfall подойдёт, потому что не нужно проводить дополнительных исследований, а инструменты известны заранее. 2
- Заказчик не участвует в каждом этапе разработки. 2 Это удобно, если заказчик не заинтересован в том, чтобы постоянно быть на связи с командой. 2
Недостатки методологии Waterfall для разработки программного обеспечения:
- Отсутствие гибкости. 2 Если на каком-то из этапов возникнут проблемы, изменятся требования или станет ясно, что что-то не учли, нужно будет начинать сначала. 2
- Высокий уровень рисков. 2 Методология не предусматривает изменения на более поздних этапах разработки. 2 Если изменения всё-таки придётся вносить, есть риск сорвать сроки либо команда вынуждена будет работать сверх плана. 2
- Бюджет жёстко ограничен, и за него отвечает исполнитель. 2 Полная ответственность за срыв сроков и за незапланированное увеличение бюджета лежит на исполнителе. 2
- Не подойдёт для проектов, где быстро меняются требования. 2 Если после начала проекта поняли, что нужна другая функциональность, то с Waterfall её сделать не получится. 2
- Обнаружение проблем только на этапе тестирования. 4 Из-за того, что один этап нельзя делать раньше другого, некоторые баги становятся заметны только после написания кода. 4