Итеративная модель разработки ПО — это подход, предполагающий разделение жизненного цикла проекта на несколько фаз, над каждой из которых работают последовательно. Итеративный процесс — это поэтапное создание программного обеспечения. Продукт разделяют на несколько «мини-продуктов». Каждый из них выступает отдельной частью или версией итогового ПО. Все «мини-продукты» функциональны, даже самый базовый. По ним можно составить представление о финальном варианте ПО. Каждая новая итерация включает в себя функции предыдущей плюс нечто новое. Такая модель не требует, чтобы сроки и бюджет для задач определяли сразу. Подход допускает, что эти параметры будут меняться со временем. Разработчики действуют методом проб и ошибок. Они анализируют промежуточные результаты, корректируют требования к продукту, собирают обратную связь от пользователей. Ниже приведен пример итерационного проекта: от минимально жизнеспособного продукта до конечного результата.
Предположим, клиент хочет трехэтажный особняк с садом и бассейном. 1. Сначала создают минимально жизнеспособный продукт — также его обозначают английской аббревиатурой MVP. Это рабочая версия ПО с минимальным набором функций. Она нужна, чтобы получить первичный отклик от пользователей и начать формулировать гипотезы насчет дальнейшего развития продукта. В нашем примере на участке, отведенном под особняк, возводят базовую модель жилья — небольшой одноэтажный дом.
Обратная связь и корректировка ТЗ. Клиент заселяется и сообщает подрядчику, что ему нравится и не нравится. Например: «Не нравятся планировка и светлый цвет стен, окна слишком маленькие, а высоту будущего дома хочется снизить до двух этажей».
2. Следующая итерация: подрядчик перекрашивает стены в темный, расширяет оконные проемы, достраивает второй этаж. Обратная связь и корректировка ТЗ. Клиенту нравится дом, он согласовывает дополнительные фичи: сад и бассейн.
3. Итерационный процесс переходит в третью фазу. Подрядчик роет бассейн, засаживает сад деревьями. Клиент контролирует процесс, вносит замечания. Вскоре проект готов, заказчик доволен.
Команда действует итеративно, чтобы изучать и сразу применять новую технологию.
Итерационная модель предполагает, что работу над продуктом разделяют на этапы. В конце каждого из них команда представляет более продвинутую версию программного обеспечения с расширенным набором функций. Каждый этап включает в себя шесть шагов: сбор и анализ требований, проектирование, разработка, тестирование, развертывание и обзор.
Главное преимущество этой модели — ускорение выхода первой работоспособной версии на рынок. Этот подход позволяет быстро выявлять и исправлять ошибки в каждой новой версии. Заказчик начинает получать прибыль уже от базовой версии ПО. Пользователи предоставляют обратную связь, благодаря которой команда может улучшать продукт. Развивая продукт итеративно, можно совершенствовать его так долго, как захочет клиент.
Однако основной недостаток заключается в том, что разработка может потребовать значительно больше ресурсов, времени и финансов, чем изначально было запланировано. Клиенту необходимо регулярно обсуждать и согласовывать изменения в проекте.