Pull to refresh

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

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

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

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

Итак, картинка разделяет Agile и итеративные подходы. Корректно ли это?

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

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

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

Ниже изображение, поясняющее разницу между итеративной и инкрементальной разработкой на примере создания портрета Карла Вигерса.

Вывод
Разделять гибкие и итеративные подходы некорректно. Вигерс, ты не прав!
Only registered users can participate in poll. Log in, please.
Agile – это итеративная разработка?
74.6% да47
25.4% нет16
63 users voted. 45 users abstained.
Tags:
Hubs:
+7
Comments1

Articles