Чем итеративная модель отличается от инкрементной

Иногда можно увидеть термин «итеративно-инкрементная модель разработки». Можно подумать, что авторы считают, что итеративная и инкрементная модели – одно и то же. Так ли это?

Тестировщик » QA-блог » База » Чем итеративная модель отличается от инкрементной

Итеративная и инкрементная модели: в чем разница

Хотя обе модели были разработаны, чтобы повысить гибкость «Водопада», они различаются. Итеративная подразумевает постепенное приближение циклами к финальному результату, а инкрементная – приращение по частям.

На изображение чем итеративная модель отличается от инкрементной.

В свете аналогий с другими повседневными предметами: можно создавать их все более и более совершенные версии, а можно сформировать отдельные части и затем объединить в целое.

Что такое модель разработки ПО

Модель разработки — это концепция создания программного обеспечения, определяющая ключевые подходы к проектированию, программированию, тестированию и т.д. Современные IT-команды используют модели разработки, чтобы:

  • Организовать свою деятельность;
  • Определиться в необходимых ресурсах для проекта;
  • Сориентироваться в сроках разработки;
  • Адаптировать тестирование под специфику проекта;
  • Обеспечить экономическую эффективность IT-продукта;
  • Регламентировать взаимодействие (как внутреннее, так и внешнее, со стейкхолдерами и клиентом).

Иногда в отношении модели разработки ПО применяется термин жизненный цикл программного обеспечения (Software Development Life Cycle, SDLC).

В чем особенность итеративной модели

Итеративная (итерационная) модель предполагает движение к выбранному финальному варианту продукта через повторяющиеся циклы разработки. Такие циклы называются итерациями. После каждого цикла создается новая версия ПО. По мере продвижения по итерациям IT-продукт становится все более качественным и удобным.

Плюсы итеративной модели разработки:

  • Нет необходимости в четко определенном техническом задании на старте проекта;
  • Быстрый выпуск продукта, хотя и с минимальными функциями;
  • Раннее обнаружение дефектов – снижение затрат на их исправление;
  • Экономия ресурсов – не нужно разрабатывать невостребованные функции;
  • Возможность использовать накопленный опыт из предыдущих итераций.

Минусы итеративной модели разработки:

  • Отсутствие понятных сразу бюджета и сроков разработки;
  • Исходную архитектуру продукта, возможно, придется несколько раз существенно перерабатывать, чтобы обеспечить выпуск следующих итераций;
  • Нередко приходится в значительной мере переписывать решения, уже сделанные в предыдущих итерациях – например, для обеспечения масштабирования баз данных или выравнивания нагрузки на сервер.

В чем особенность инкрементной модели

Инкрементная модель представляет собой разработку ПО отдельными кусками с последующей сборкой в единое целое. Такие куски называются приращения или инкременты. Создание ПО разделяется на этапы, которые по размерам проще спроектировать и запрограммировать, чем сразу единую систему. Внутри разработки каждого инкремента можно использовать любую другую модель жизненного цикла ПО.

Плюсы инкрементной модели разработки:

  • Быстрая разработка базовой модификации как работоспособного продукта;
  • Клиент видит созданные инкременты и сразу дает обратную связь;
  • Можно вносить изменения в продукт поэтапно;
  • Можно снизить вложения в продукт, отказавшись от реализации некоторых инкрементов;
  • Раннее обнаружение дефектов – снижение затрат на их исправление.

Минусы инкрементной модели разработки:

  • Архитектура продукта изначально не всегда прозрачна, могут возникнуть трудности при стыковке инкрементов;
  • Необходимость тщательного планирования, иначе могут быть большие потери ресурса из-за несогласованности действий команды;
  • Стоимость и сроки разработки могут превышать запланированные, если потребуются дополнительные инкременты.

Разница итеративной и инкрементной моделей

Отличие итеративной модели от инкрементной заключается в том, что в итеративной в каждый момент времени дорабатывается IT-продукт целиком, а не некоторые его отдельные куски. 

В инкрементной модели в каждый момент идет разработка в отношении только одного куска. И инкремент должен быть сформирован на достаточно высоком качественном уровне, прежде чем его инкорпорируют в единую систему и начнут разработку следующего приращения.

Итеративно-инкрементная модель разработки

Все чаще в практике IT-компаний используется итеративно-инкрементная модель. Это гибрид, он объединяет в себе оба подхода. Например, разработка инкрементов может происходить параллельно и циклами (итеративно). 

Итеративно-инкрементная усиливает в себе плюсы и нивелирует минусы обеих моделей разработки.

Резюме

В истории развития программного обеспечения есть две модели, которые более гибкие, чем классический «Водопад»: итеративная и инкрементная. Итеративная предполагает разработку ПО циклам и целиком, инкрементная – по частям. Существует также созданная на основе их объединения гибридная модель – итеративно-инкрементная.

на изображение автор Михаил Кулешов

Автор Михаил Кулешов

Михаил, профессиональный партнерский маркетолог, является основателем компании South Media OÜ, которая была создана в 2018 году и базируется в Таллинне. С 2016 года Михаил уехал из Финляндии и жил как настоящий «цифровой кочевник» в IT-индустрии, путешествуя по миру только с ноутбуком. Михаил работает и пишет статьи, связанные с IT-индустрией.

4 Ответить на “Чем итеративная модель отличается от инкрементной”

  • Ксения говорит:

    “… две модели, которые более гибкие, чем классический «Водопад»: итеративная и итерационная. ” – вместо итерационной, наверное, инкрементная?

  • Полина говорит:

    Резюме
    В истории развития программного обеспечения есть две модели, которые более гибкие, чем классический «Водопад»: итеративная и итерационная. Итеративная предполагает разработку ПО циклам и целиком, инкрементная – по частям. Существует также созданная на основе их объединения гибридная модель – итеративно-инкрементная.

    Я думаю вы всё же имели ввиду итеративная и инкрементная.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *