Руководство по управлению проектами · Основы управления проектами
Итеративная и инкрементальная разработка простыми словами
Итеративная и инкрементная разработка — две связанные идеи, на которых основано большинство современных подходов к поставке. Итеративность означает улучшение в повторяющихся циклах; инкрементность — поставку пригодными к использованию частями.
Главное
- Итеративность — это улучшение в циклах; инкрементность — поставка частями.
- Agile сочетает оба подхода.
- Применяйте их, когда требования неопределённы.
Определения
| Итеративный | Инкрементальный | |
|---|---|---|
| Идея | Дорабатывать решение в повторяющихся циклах | Создавать решение по частям |
| Пример | Черновой дизайн, улучшаемый в ходе нескольких обзоров | Сначала вход в систему, затем поиск, затем платежи |
| Преимущество | Знания и качество растут с каждым циклом | Пользователи раньше получают ценность |
Совместное использование
Agile-фреймворки, такие как Scrum сочетают оба подхода: каждый спринт поставляет пригодный к использованию инкремент, и каждый цикл улучшает ранее сделанную работу на основе обратной связи. В результате — ранняя ценность и непрерывное обучение.
История
Итеративная и инкрементная разработка применяется как минимум с 1950–1960-х годов в крупных инженерных программах — задолго до появления слова Agile. См. история Agile.
Когда использовать
- Требования неопределённы или, скорее всего, изменятся.
- Ранняя обратная связь от пользователей ценна.
- Решение можно поставлять и использовать частями.
- Риски нужно снижать шаг за шагом.
Частые вопросы
Итеративная разработка — это то же самое, что Agile?
Agile использует итеративную и инкрементную разработку, но добавляет такие ценности, как сотрудничество с заказчиком и самоорганизующиеся команды.
Можно ли использовать итеративную разработку в каскадных проектах?
В некоторых предиктивных проектах внутри фаз добавляют итерации, особенно для проектирования и прототипирования.
Что такое итеративная разработка?
Доработка решения в повторяющихся циклах с улучшением на каждом шаге на основе обратной связи.
Что такое инкрементная разработка?
Создание решения по частям, где каждый инкремент добавляет пригодную к использованию функциональность.
Чем итеративная разработка отличается от инкрементной?
Итеративный подход улучшает одно и то же в повторяющихся циклах; инкрементный добавляет новые части. Agile-фреймворки сочетают оба.
Какой есть пример инкрементной разработки?
Сначала выпускается вход в систему, затем поиск, затем платежи, чтобы пользователи получали ценность от каждой части по мере её готовности.
Какой есть пример итеративной разработки?
Создание чернового дизайна и его улучшение в ходе нескольких обзоров с пользователями, пока он не будет отвечать их потребностям.
Когда стоит применять итеративную и инкрементную разработку?
Когда требования неопределённы, ранняя обратная связь ценна, решение можно использовать частями, а риски нужно снижать шаг за шагом.
Сколько лет итеративной разработке?
Она применяется как минимум с 1950–1960-х годов в крупных инженерных программах. См. история Agile.
Что такое спиральная модель итеративной разработки?
Итеративная модель, ориентированная на риски, описанная Барри Боэмом в 1980-х годах: в каждом витке выполняются планирование, анализ рисков, разработка и оценка.
Scrum использует итеративную или инкрементную разработку?
И ту, и другую. Каждый спринт поставляет пригодный к использованию инкремент, и каждый цикл улучшает ранее сделанную работу на основе обратной связи.