Сегодня итеративный подход — это основа гибкой разработки, но знаете ли вы, что его история началась задолго до появления Agile?


В наше время, когда все меняется невероятно быстро, стандартные подходы к разработке теряют свою актуальность, уступая свое место более адаптивным подходам. Итеративный подход, в силу своей гибкости, позволяет достигать больших результатов, продвигаясь к цели небольшими шагами (итерациями), что обеспечивает процесс достаточной гибкостью к переменам.
Она представляет собой поэтапное улучшение продукта. Данный метод нашел свое широкое применение в разработках цифровых продуктов, например, при создании приложений. Так, изначально разрабатывается MVP (минимально жизнеспособный продукт), представляющий собой минимально необходимый набор функций, который позволит приложению отправиться в эксплуатацию. В конце каждой итерации продукт тестируется пользователями, собирается обратная связь, на основе которой продукт «обрастает» новыми функциями, необходимыми для пользователей.
Существует ошибочное суждение, что итеративный подход является довольно молодым методом, но это не так.
История развития итеративного подхода
Первые признаки можно заметить еще в ХХ веке. Известный управленец Генри Форд применял в производстве распределение труда на отдельные процессы.
В 30-е годы ХХ века была опубликована работа Уолтера Шухарта, которая предполагала разделение рабочего процесса на короткие циклы по принципу «планирование-действие-проверка-корректировка».

В 50-е годы метод применялся при разработке сверхзвукового самолета Х-15. Некоторые члены команды позднее составили костяк проекта «Меркурий» от NASA, в котором итеративная разработка использовалась при создании программного обеспечения.
В 1970 вышла известная статья Уинстона Ройса «Управление разработкой крупных программных систем». Данная работа считается первой попыткой формализовать итеративный подход в программировании. В статье описывается так называемая «модель водопада» в ранней формации, представляющая собой последовательный переход от одного этапа к другому. Хотя данная модель относится к линейному типу, именно она дала отправную точку в разработке дальнейших подходов.
Итеративный подход применяла и компания TRW, например, в проекте по защите от баллистических ракет. В данной компании работал Барри Боэм в должности главного научного сотрудника, в будущем предложивший миру «спиральную модель», представляющей собой гибридную модель разработки, объединяющую в себе элементы итеративного и инкрементального подходов. Представляется в виде спирали, где каждый ее оборот является отдельной итерацией.

В 1983 году Грейди Буч написал книгу «Разработка ПО на языке Ада», в которой описывал итеративный процесс, но книга получила популярность в узких кругах именно за основы объектно-ориентированного программирования. Однако следующая работа автора в 90-х разошлась для более широких масс, приведя многих к итеративному подходу в разработке.
Важной исторической вехой являлась публикация Барри Боэма «Спиральная модель разработки и усовершенствования ПО» в 1985 г. Она формализовала идеи итерации и аргументировала необходимость планирования и управления рисками в итерациях.
В 1988 г. была опубликована книга Тома Глиба «Принципы управления разработкой ПО», представляющую собой первую развернутую работу с главами, раскрывающими всю суть итеративного подхода. Автор дал описание методу «Evo», ориентируемый на минимальные начальные требования, ранние и постоянной обратной связью о процессах, что позволяет управлять ростом и развитием продукта. Метод решал проблемы постоянных задержек крупных проектов, неконтролируемого функционального роста и дополнений в техническое задание, отхода от первоначальной цели.
Наибольшую популярность итеративные подходы приобрели с приходом гибких технологий на смену линейным.
В 90-х годах положили свое начало методы Scrum под авторством Джеффа Сазерленда и Кена Швабера и экстремальное программирование Кента Бека.

Данные методы ориентированы на повторяющиеся итерации и частые релизы, которые приводят к быстрому запуску проекта. В основе методологий лежит открытая коммуникация между всеми членами команды, а также тесное взаимодействие с заказчиком.
В феврале 2001 состоялась встреча семнадцати независимых практиков различных методик программирования, на которой был основан «Манифест гибкой разработки программного обеспечения», основными ценностями которого провозглашались:
● Взаимодействие между людьми приоритетнее инструментов и процессов;
● Работающий продукт более ценный в сравнении с подробной документацией;
● Сотрудничество с заказчиком важнее согласованных условий договора;
● Готовность к изменениям превыше начального плана.

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