Водопад (каскадная модель, Waterfall) предполагает поэтапную разработку, каждая следующая стадия начинается только после того, как заканчивается предыдущая. 5 Преимущества:
- разработку просто контролировать; 45
- стоимость проекта определяется на начальном этапе; 45
- все шаги запланированы уже на этапе согласования договора; 45
- не нужно нанимать тестировщиков с серьёзной технической подготовкой. 45
Недостатки:
- тестирование начинается на последних этапах разработки; 45
- если в требованиях к продукту была допущена ошибка, то исправить её будет стоить дорого; 45
- заказчик видит готовый продукт в конце разработки и только тогда может дать обратную связь; 45
- разработчики пишут много технической документации, что задерживает работы. 4
Итеративная модель предполагает разбиение проекта на части (этапы, итерации) и прохождение этапов жизненного цикла на каждом из них. 1 Преимущества:
- быстрый выпуск минимального продукта даёт возможность оперативно получать обратную связь от заказчика и пользователей; 14
- фокус на наиболее важных функциях ПО и улучшение их в соответствии с требованиями рынка и пожеланиями клиента; 14
- постоянное тестирование пользователями позволяет быстро обнаруживать и устранять ошибки. 14
Недостатки:
- использование на начальном этапе баз данных или серверов — первые сложно масштабировать, а вторые не выдерживают нагрузку; 45
- возможно, придётся переписывать большую часть приложения; 14
- отсутствие фиксированного бюджета и сроков. 14
Спиральная модель предполагает, что жизненный путь разрабатываемого продукта изображается в виде спирали, которая, начавшись на этапе планирования, раскручивается с прохождением каждого следующего шага. 1 Преимущества:
- управлению рисками уделяется особое внимание; 1
- дополнительные функции могут быть добавлены на поздних этапах; 1
- есть возможность гибкого проектирования. 1
Недостатки:
- оценка рисков на каждом этапе является довольно затратной; 1
- постоянные отзывы и реакция заказчика может провоцировать всё новые и новые итерации, которые могут приводить к временному затягиванию разработки продукта; 1
- есть риск застрять на начальном этапе — бесконечно совершенствовать первую версию продукта и не продвинуться к следующим. 45