Разница между итеративной и инкрементальной разработкой в ​​Agile

В чем разница между итеративной и инкрементной разработкой в ​​гибкой разработке программного обеспечения? Это одно и то же? В чем разница между этими двумя словами?

Во-первых, давайте посмотрим на простые определения этих двух терминов:

Инкрементальный - добавление новых функций небольшими порциями

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

Из Википедия :

Итеративная разработка была создана как ответ на неэффективность и проблемы, обнаруженные в водопаде.



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

При инкрементальной разработке функциональность системы разделяется на приращения (части), при этом в каждом приращении предоставляется часть функциональности.

Вся идея состоит в том, чтобы предоставить пользователям «рабочую» версию функции (пусть и минимальную), чтобы мы могли получить обратную связь на раннем этапе процесса. Сравните это с необходимостью создания полностью функциональной функции в течение нескольких месяцев только для того, чтобы обнаружить, что то, что было создано, не соответствует потребностям пользователей.

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

Давайте посмотрим на примере того, как итеративная и инкрементная разработка и доставка работают в гибком контексте.

Предположим, вы хотите добавить на веб-сайт новую функцию входа в систему и решили, что хотите разработать ее, используя гибкую методологию, работая с двухнедельными циклами поставки (итерациями).

Первая итерация:

В минимум рабочая версия функциональности входа в систему, которую стоит предоставить пользователям, будет

  • Создайте веб-страницу, на которой пользователи будут видеть форму входа в систему
  • Добавьте форму входа всего с двумя полями (имя пользователя и пароль) и кнопкой входа, то есть просто обычную HTML-форму с нет стиль или проверка
  • Создайте «приветственную» страницу, чтобы при входе в систему пользователи видели сообщение.

Это первая версия (работающая, но с ограниченной функциональностью) программного обеспечения, поставляемого в первой итерации. Эта базовая функция входа в систему прошла дизайн, разработку и тестирование и была предоставлена ​​в конце итерации.

Вторая итерация:

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

  • Создайте правила проверки для входных параметров
  • Добавьте CSS, чтобы форма входа выглядела красиво
  • Отображать сообщение, когда пользователь пытается войти в систему с недопустимыми учетными данными

Теперь мы добавили новые и улучшили существующие функции. Другими словами, у нас есть увеличенный существующая функция входа в систему, и мы сделали это в этой итерации.

Третья итерация:

На третьей итерации мы снова можем увеличить функциональность входа в систему, добавив

  • Функция забытого пароля
  • Флажок «Запомнить меня»
  • Механизм перенаправления для перенаправления на соответствующие страницы при входе пользователя в систему (а не просто «приветственная» страница, разработанная в первой итерации)

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

После нескольких итераций мы наконец-то доставляем полное решение.