формализованные методы, позаимствованные у «тяжеловесного» инженерного подхода (контроль за внесением изменений в техдокументацию, инспекции и применение контрольных показателей), с такими продиктованными практикой методами, как создание прототипов, выпуск инкрементных версий ПО и тесное сотрудничество с заказчиком [McConnell 1996]. В результате такого скрещивания формализованных и неформализованных методик возникли первые «легкие» методологии, включая эволюционное управление разработкой (Evo) (1988), Scrum (1995), методы разработки динамических систем (DSDM) (1995), методы Crystal (1997), Экстремальное программирование (XP) (1999), разработка, управляемая функциональностью (FDD) (1999), прагматическое программирование (1999) и адаптивная разработка ПО (2000).
Как следствие внезапного и почти одновременного появления множества методик, статей, книг и семинаров по «легким» методологиям (некоторые даже сравнивали его с Кембрийским взрывом), у лидеров движения возникла идея собраться и обсудить положение дел. В 2001 году они встретились на лыжном курорте в штате Юта. Там и был выбран термин «гибкие методологии» (Agile), заменивший применявшуюся ранее терминологию, а также был создан Agile-манифест разработки ПО (рис. 2.2).
Agile-манифест многими рассматривался в первую очередь как реакция против бюрократического характера существовавших на тот момент формальных подходов, которые были слишком «упорядоченными». Но лишь немногие поняли, что авторы манифеста также выступают против отсутствия дисциплины у программистов, против «хаотических» процессов и низкого качества, которое в то время доминировало на рынке ПО. Лидеры нового движения осознали, что существует средний путь между структурированностью и отсутствием структуры, между упорядоченностью и хаосом. В определенном смысле это была героическая попытка вернуться к более ранней эпохе, когда основными игроками были программисты-первопроходцы, но анархии при этом не было.
Впоследствии группа наиболее авторитетных представителей Agile-движения создала Agile Alliance[4] – некоммерческую организацию, которая ставит себе целью продвижение гибких методологий во всем мире. Возникла целая новая экосистема, состоящая из конференций, консультантов, книг и журналов. В результате процессы разработки программного обеспечения стали Agile c большой буквы А, превратившись в нечто более глубокое, чем просто набор практик, которые можно использовать при разработке софта. Признавая, что проекты по разработке программного обеспечения существуют в области, которая располагается между упорядоченностью и хаосом, Agile-подходы, по сути, превратились в образ жизни.
Фундаментальные принципы Agile-методологий
В наши дни численность людей, которые разделяют ценности и принципы Agile-методологий, составляет несколько миллионов человек. Опросы подтверждают, что большинство разработчиков программного обеспечения во всем мире придерживаются по крайней мере некоторых из «основных Agile-практик»