Вигерс, ты не прав! Ещё раз об итеративной и инкрементальной разработке

в 13:21, , рубрики: agile, incremental, iterative, project management, rup, sdlc, Управление продуктом, управление проектами, метки:

Наверное, всякий, кто когда-либо пытался осознать специфику различных подходов к разработке программного обеспечения, задавался вопросами: в чём отличие между итеративной и инкрементальной разработкой? Agile – итеративный? RUP – инкрементальный?

Под катом очередное рассуждение на эту тему и заочный спор с Карлом Вигерсом.

В 3-м издании книги Карла Вигерcа «Разработка требований к программному обеспечению» есть иллюстрация, демонстрирующая распределение усилий по работе с требованиями на протяжении проектов с разным жизненным циклом разработки (SDLC).
Вигерс, ты не прав! Ещё раз об итеративной и инкрементальной разработке - 1
Итак, картинка разделяет Agile и итеративные подходы. Корректно ли это?

Для начала определимся с терминами.

  • Итеративность – повторение операций в целях переработки результатов предыдущего этапа.
  • Инкрементирование – приращение результатов предыдущего этапа.

Википедия подсказывает:

«Гибкая методология разработки (англ. Agile software development, agile-методы) — серия подходов к разработке программного обеспечения, ориентированных на использование итеративной разработки…»

Значит, если в рамках спринта в гибком Scrum’е или итерации в RUP Вы перерабатываете результаты предыдущего этапа и одновременно реализуете новые части продукта, Ваша разработка и итеративна, и инкрементальна.

Ниже изображение, поясняющее разницу между итеративной и инкрементальной разработкой на примере создания портрета Карла Вигерса.
Вигерс, ты не прав! Ещё раз об итеративной и инкрементальной разработке - 2
Вывод
Разделять гибкие и итеративные подходы некорректно. Вигерс, ты не прав!

Автор: IvanGolubev

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js