В начале 2001 года века ряд ведущих специалистов в области программной инженерии (Алистер Коберн, Мартин Фаулер, Джим Хайсмит, Кент Бек и другие) сформировали группу под названием Agile Alliance. Слово agile (быстрый, ловкий, стремительный) отражало в целом их подход к разработке ПО, основанный на богатом опыте участия в разнообразных проектах в течение многих лет. Этот подход под названием "Быстрая разработка ПО" (Agile software development) базируется на четырех идеях, сформулированных ими в документе "Манифест быстрой разработки ПО" (Agile Alliance's Manifesto) и заключающихся в следующем:
индивидуумы и взаимодействия между ними ценятся выше процессов и инструментов;
работающее ПО ценится выше всеобъемлющей документации;
сотрудничество с заказчиками ценится выше формальных договоров;
реагирование на изменения ценится выше строгого следования плану.
При таком подходе технология занимает в процессе создания ПО вполне определенное место. Она повышает эффективность деятельности разработчиков при наличии любых из следующих четырех условий:
когда она позволяет людям легче выразить свои мысли;
когда она выполняет задачи, невыполнимые вручную;
когда она автоматизирует утомительные и подверженные ошибкам действия.;
когда она облегчает общение между людьми;
Технология не должна действовать против характера культурных ценностей и познавательной способности человека.
При этом следует четко понимать: при всех достоинствах быстрой разработки ПО этот подход не является универсальным и применим только в проектах определенного класса. Для характеристики таких проектов Алистер Коберн ввел два параметра - критичность и масштаб. Критичность определяется последствиями, вызываемыми дефектами в ПО, ее уровень может иметь одно из четырех значений:
C - дефекты вызывают потерю удобства;
D - дефекты вызывают потерю возместимых средств (материальных или финансовых);
E - дефекты вызывают потерю невозместимых средств;
L - дефекты создают угрозу человеческой жизни.
Масштаб определяется количеством разработчиков, участвующих в проекте:
от 1 до 6 человек - малый масштаб;
от 6 до 20 человек - средний масштаб;
свыше 20 человек - большой масштаб.
По оценке Коберна, быстрая разработка ПО применима только в проектах малого и среднего масштаба с низкой критичностью (C или D). Общие принципы оценки технологий в таких проектах заключаются в следующем:
интерактивное общение лицом к лицу - это самый дешевый и быстрый способ обмена информацией;
избыточная "тяжесть" технологии стоит дорого;
более многочисленные команды требуют более "тяжелых" и формальных технологий;
большая формальность подходит для проектов с большей критичностью;
возрастание обратной связи и коммуникации сокращает потребность в промежуточных и конечных продуктах;
дисциплина, умение и понимание противостоят процессу, формальности и документированию;
потеря эффективности в некритических видах деятельности вполне допустима.
Одним из наиболее известных примеров практической реализации подхода быстрой разработки ПО является "Экстремальное программирование" (Extreme Programming - XP) . Этот метод предназначен для небольших компактных команд, нацеленных на получение как можно более высокого качества и продуктивности, и достигает этого посредством насыщенной, неформальной коммуникации, придания на персональном уровне особого значения умению и навыкам, дисциплине и пониманию, сводя к минимуму все промежуточные рабочие продукты.