Несмотря на то, что Agile методологии сегодня уже давно не являются чем-то действительно новым и революционным, нельзя сказать, что это полностью понятая и изжившая себя концепция. По-прежнему не так уж много компаний на российском рынке практикуют этот подход и по-прежнему появляются новые исследования в этой области. Но речь сейчас не о настоящем этого семейства методологий и даже не о будущем. Мы решили вспомнить, как все начиналось. Точнее даже не вспомнить, а провести анализ чуть дальше, чем авторы Agile Manifesto.

Agile идеи на самом деле возникли давным-давно, а люди, которые критиковали традиционные (на тот момент современные и единственные) подходы к реализации ИТ проектов, делились ничем иным, как будущими принципами Agile подхода. К сожалению, никто особенно не воспринимал эти идеи всерьез, поэтому потребовалось более 30 лет, чтобы просто идеи и высказывания переродились во что-то действительно стоящее.

Анализ показал, что в литературе встречается упоминание вышеописанных принципов аж в кейсах 1957 года (в работе «Iterative and Incremental Development: A Brief History»). В том же исследовании практики применения итеративного подхода к разработке были также адресованы к кейсам 1970х годов.

Так что же стоит за Agile методами? Когда они зародились? Что стояло у истоков концепции «Agile Thinking»?

Исследования говорят, что этот подход возник как бурная реакция профессионалов в отрасли разработки софта, которая «отзеркалила» динамично меняющийся бизнес. Но на деле все случилось раньше. Ларман и Базилини предположили, что, возможно, истоком для развития концепции стали проекты NASA и IBM Federal Systems Divisions (FSD) в 1950х годах. Проект «Mercury», который реализовали NASA, судя по отчетности, был организован в виде “коротких полдневных итераций”. Кроме того, в этом проекте говорится, что сначала планировались и прописывались тесты, а только после этого писался код, чтобы эти тесты пройти. Похоже на зарождение XP (Extreme Programming)? Вполне возможно. Кроме того, каждая мини-итерация требовала интеграции кода и прохождения тестов. Налицо рождение Continuous Integration.

Еще одна знаменитая работа, посвященная критике традиционных методов разработки, — это «Stop the life-Cycle, I Want to get off» (Остановите жизненный цикл, я хочу сойти). Автор выдвинул ключевое предположение — укол в сторону традиционных методов-, что большинство пользователей не имеют четкого представления о своих потребностях. Он предложил модель, которую назвал Non-Cyclical Hollywood Model. Эта модель основана на 3 ключевых принципах с точки зрения автора:

  1. Цели системы важнее, чем требования (System objectives are more important than system requirements).
  2. Физический объект транслирует больше информации, чем текст или картинка стоит тысячи слов (A physical object conveys more information than a written specification or a picture is worth a thousand words).
  3. Цели системы плюс физические демонстрации помогут создать успешный продукт (System objectives plus physical demonstrations will result in a successful product).

А теперь напомним вам Agile Manifesto:

  • Люди и взаимодействие важнее процессов и инструментов.
  • Работающий продукт важнее исчерпывающей документации.
  • Сотрудничество с заказчиком важнее согласования условий контракта.
  • Готовность к изменениям важнее следования первоначальному плану.

Agile Manifesto — 2001 год. Stop the life-Cycle, I Want to get off — 1982 год. По-настоящему стоящая концепция никогда не появляется просто так, ее создает профессиональное и научное сообщество. Иногда это требует десятков лет и тысяч завершенных проектов по всему миру, но результат того стоит.