Гибкая методология разработки

Гибкая методология разработки (англ. Agile software development) — это собирательный термин для подходов к разработке программного обеспечения, отражающих ценности и принципы, согласованные в 2001 году группой из 17 специалистов по разработке программного обеспечения — Agile Alliance[1]. Как зафиксировано в их Манифесте гибкой разработки программного обеспечения (англ. Manifesto for Agile Software Development), участники подчеркнули важность:

  • людей и взаимодействия важнее процессов и инструментов,
  • работоспособного программного обеспечения важнее исчерпывающей документации,
  • сотрудничества с заказчиком важнее согласования условий контракта,
  • реагирования на изменения важнее следования первоначальному плану[2].

Источниками вдохновения для гибкой методологии стали новые практики конца 1990-х годов, такие как экстремальное программирование, скрам (англ. Scrum), метод динамического развития систем (англ. Dynamic Systems Development Method), адаптивная разработка программного обеспечения и стремление найти альтернативу тяжеловесным, ориентированным на документацию процессам[3].

Из гибкой методологии выросло множество конкретных практик, называемых Agile (с заглавной буквы)[4], которые предполагают развитие требований, исследование и совершенствование решений через совместную работу самоорганизующихся и кросс-функциональных команд вместе с заказчиком и конечными пользователями[5].

Существует обилие анекдотических доказательств эффективности agile-методов, однако строгая эмпирическая база ограничена и не всегда однозначна[6].

История

Итеративные и инкрементные методы разработки программного обеспечения применялись уже в 1957 году[7], с эволюционным управлением проектами[8][9] и адаптивной разработкой программного обеспечения[10] (начало 1970-х годов)[11].

В 1990-х годах появились «облегчённые» методы — альтернатива тяжеловесным (англ. waterfall) — которые, по мнению критиков, были чрезмерно зарегулированы и подчинены микроменеджменту[12]. К ним относятся: быстрая разработка приложений (RAD), с 1991 года[13]; унифицированный процесс и DSDM (1994); скрам (1995); Crystal Clear и экстремальное программирование (XP, 1996); разработка, управляемая функционалом (FDD, 1997). Позже все эти подходы стали относить к методам гибкой разработки[3].

Сходные преобразования происходили и в производстве (agile manufacturing)[14] и управлении, заимствованных из бережливого производства[15].

В феврале 2001 года 17 разработчиков встретились на курорте в Сноубёрде (штат Юта), где и оформили Манифест гибкой разработки и создали Agile Alliance[2].

В 2005 году при участии Кокберна и Хайсмита был опубликован дополнительный манифест по управлению проектами — Declaration of Interdependence[16]. В 2009 году под руководством Мартина появился Manifesto for Software Craftsmanship — о профессионализме и мастерстве в agile-разработке.

С 2011 года Agile Alliance поддерживает открытый глоссарий и руководство по agile-практикам, который пополняется экспертами со всего мира[17].

Ценности и принципы

Ценности

Текст Манифеста гибкой разработки утверждает[2]:

Мы открываем лучшие способы разработки программного обеспечения, занимаясь этим сами и помогая в этом другим. Благодаря этой работе мы пришли к следующим ценностям:

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

Это означает, что, несмотря на ценность элементов справа, мы больше ценим элементы слева.

Скотт Амблер пояснил[18]:

  • Инструменты и процессы важны, но главное — компетентные люди, работающие вместе.
  • Хорошая документация помогает понять, как устроено ПО, но главное — создавать и поддерживать работающее ПО.
  • Контракт важен, но не подменяет постоянное взаимодействие с заказчиком в поиске его настоящих потребностей.
  • Планирование важно, но не должно мешать адаптации к изменяющимся условиям и пониманию задачи.

Представляя Манифест от имени Agile Alliance, Джим Хайсмит отметил:

Движение Agile не против методологий — наоборот, многие из нас хотят вернуть доверие к самому термину "методология". Мы поддерживаем моделирование не ради формальных диаграмм, но для пользы дела; документируем, но избежая сотен "мертвых" страниц; планируем, но осознаём ограничения планирования в турбулентной среде. Тех, кто называет сторонников XP, SCRUM или других agile-методов "хакерами", можно упрекнуть в незнании как содержательной стороны, так и исходного смысла слова "хакер".

Джим Хайсмит, История: The Agile Manifesto[19]

Принципы

Ценности Манифеста раскрываются в 12 принципах[20]:

  1. Удовлетворение заказчика через ранние и регулярные поставки ценного ПО.
  2. Приветствие изменений требований даже на поздних этапах.
  3. Частые поставки работоспособного ПО (недели, а не месяцы).
  4. Тесное ежедневное взаимодействие заказчика и разработчиков.
  5. Команды строятся вокруг мотивированных людей, которым доверяют.
  6. Личные коммуникации — лучший способ обмена информацией.
  7. Работоспособное ПО — первичная мера прогресса.
  8. Устойчивое развитие: постоянный ритм.
  9. Постоянное внимание к высокой технической культуре и дизайну.
  10. Простота — искусство делать только наиболее необходимое.
  11. Лучшая архитектура, требования и дизайн рождаются в самоорганизующихся командах.
  12. Регулярная рефлексия с целью саморазвития команды.

Обзор

Итеративность и инкрементальность

Большинство agile-методов разбивают работу на малые инкременты с минимальным предварительным планированием. Итерации («спринты») длятся обычно от одной до четырёх недель. Каждая итерация охватывает все этапы — от планирования и анализа до программирования, тестирования и демонстрации заказчикам, что минимизирует риски и облегчает адаптацию к изменениям[21].

Главное преимущество agile — быстрая обратная связь и вывод продукта на рынок малыми партиями, что снижает время и риски непопадания в запросы пользователя.

Эффективная коммуникация

6-й принцип Манифеста: «Самый эффективный способ обмена информацией в команде — личное общение». Хотя Манифест был написан, когда видеоконференций почти не было, акцент — именно на качестве коммуникаций.

Размещение сотрудников в одном помещении (co-location) облегчает формирование команды и рабочие коммуникации[22]. Однако современные исследования отмечают, что удалёнка делает этот принцип менее критичным.

В любой команде должен быть представитель заказчика (product owner), который доступен для вопросов и переоценивает приоритеты по итогам каждой итерации, чтобы повысить отдачу от инвестиций[23].

Информационный радиатор

Информационный радиатор — большой стенд или доска рядом с командой, на котором отображён текущий статус разработки, чтобы любой мог видеть общий ход проекта[24]. Также используется световая индикация сборок.

Короткий цикл обратной связи и адаптации

Стандартная agile-практика — ежедневные стендапы (stand-up meetings или scrum meetings), где команда 15 минут обсуждает прогресс и выявляет препятствия[25].

Фокус на качестве

Такие инструменты, как непрерывная интеграция, автоматические модульные тесты, парное программирование, разработка через тестирование, рефакторинг кода, помогают встроить качество «с самого начала», чтобы ПО всегда было доступно к показу клиенту в конце каждого спринта[26].

undefined

Философия

Гибкая методология оптимально подходит для сложных, быстро меняющихся проектов, где невозможно дать точные оценки на ранней стадии[27]. Здесь отказ от жёстких спецификаций минимизирует потери и позволяет гибко адаптироваться.

Адаптивный и предсказуемый подходы

Методы разработки делят на адаптивные (гибкие) и предсказуемые (плановые)[28]. Agile относится к адаптивным; ключевой принцип — «волнообразное планирование»: фиксируются вехи, а путь до них и даже сами вехи могут пересматриваться[29].

  • Адаптивные команды готовы менять направление даже в процессе спринта, не дают точных обещаний на много месяцев вперёд.
  • Плановые (waterfall) методы подробно анализируют и фиксируют будущее, изменения усложняются и требуют согласования.

Схожее разграничение по параметрам:

Оптимальные условия для разных подходов
Гибкий подход (agile) Плановый подход (waterfall) Формальные методы
Низкая критичность Высокая критичность Экстремальная критичность
Старшие разработчики Младшие разработчики Старшие разработчики
Требования часто меняются Требования стабильны Жёстко ограниченный набор требований и функций
Малочисленная команда Большая команда Требования легко формализуются
Готовность к изменениям Ориентация на порядок Максимальная достоверность

Agile vs Waterfall

Главное отличие: в waterfall тестирование выведено в отдельную фазу после завершения кода; в agile тестирование идёт в том же спринте, что ускоряет обратную связь и быстрее даёт пользователю ценность (аналог цикла PDCA).

Итеративная работа поддерживает продуктовый, а не проектный подход: требования не фиксируются жёстко с самого начала, что позволяет гибче реагировать на рынок.

Код vs документация

Скептики (например, Стивен Ракин) критиковали agile за якобы «отрицание документации» и подрыв инженерной дисциплины[30]. Сторонники возражают: документация пишется в ровно той мере, в какой это повышает ценность, чрезмерная же документация либо устаревает, либо мешает развитию[31].

undefined

Методологии

Основные agile-фреймворки:

Методика Авторы/разработчики
Адаптивная разработка ПО (ASD) Джим Хайсмит, Сэм Байер
Agile-моделирование Скотт Амблер, Роберт С. Мартин
Agile Unified Process (AUP) Скотт Амблер
Дисциплинированная гибкая доставка Скотт Амблер
Метод динамического развития систем (DSDM) Дженнифер Стэплтон
Экстремальное программирование (XP) Кент Бек, Роберт С. Мартин
Разработка, управляемая функционалом (FDD) Джефф Де Лука
Бережливая разработка ПО Мэри и Том Поппендик
Lean-startup Эрик Рис
Канбан (Kanban) Тайити Оно
Быстрая разработка приложений (RAD) Джеймс Мартин
Скрам (Scrum) Кен Швабер, Джефф Сазерленд
Скрамбан

Ключевые практики agile

Несколько ярких agile-практик[32]:

Практика Основные авторы
Acceptance test-driven development (АТDD) Кен Пью
Agile-моделирование Скотт Амблер
Agile-тестирование Лиза Криспин, Джанет Грегори
Бэклог (product и sprint backlog) Кен Швабер, Джефф Сазерленд
Behavior-driven development (BDD) Дэн Норт, Лиз Киог
Непрерывная интеграция (CI) Грейди Буч
Кросс-функциональная команда
Daily stand-up / daily Scrum Джеймс Коплен
Domain-driven design (DDD) Эрик Эванс
Итеративная и инкрементная разработка
Парное программирование Кент Бек
Planning poker Джеймс Греннинг, Майк Коэн
Рефакторинг Мартин Фаулер
Ретроспектива Эстер Дерби, Диана Ларсен, Бен Линдерс, Луис Гонсалвеш
События Scrum (спринт-планирование, обзор, ретроспектива) Кен Швабер, Джефф Сазерленд
Specification by example
Story-driven modeling Альберт Цюндорф
Test-driven development (TDD) Кент Бек
Timeboxing
User story Алистер Кокберн
Velocity tracking

Адаптация методов (tailoring)

Понятие адаптации методов (method tailoring) означает гибкую настройку процесса для конкретного проекта через изменение методик и практик в зависимости от ситуации[33]. Гибкие методы поощряют адаптацию процессных практик под нужды продукта[34].

Для этого используются как универсальные языки моделирования (например, UML), так и специализированные фреймворки вроде Essence (SEMAT).

Гибкие методы в крупномасштабных и распределённых проектах

Гибкие методы начинали в небольших экспертных командах и зелёных проектах, а попытки внедрять их в крупные организации с устаревшими системами часто сталкивались с трудностями[35].

Для распределённых (distributed agile) и офшорных команд были развиты особые подходы, но эффективность и соответствие agile до сих пор обсуждаются[36].

Регулируемые сферы

В регулируемых отраслях (медицина, финансы, авиация) agile внедряется со специальными доработками, учитывающими стандарты ISO и дополнительную отчётность для соответствия требованиям безопасности и проверки[37].

Ключевые требования: встроенность обеспечения качества, безопасность, формализованная трассировка составных частей, верификация и валидация на каждом этапе.

Применение и внедрение

Хотя принципы agile можно применять с любым языком программирования, исторически методы развивались в средах, ориентированных на объектное программирование. Первое распространение agile получили небольшие команды, разрабатывающие инновационные или нестандартные проекты, где сложно заранее финализировать требования[38].

Оценка гибкости команды

Существуют различные метрики: индекс гибкости (Agility measurement index), который оценивает продукт по пяти осям (длительность, риск, новизна, усилия, взаимодействие). Метрики включают измерение скорости (velocity), внутренние agile-тесты команд (Nokia, Karlskrona, тест 42 пункта)[39].

Опросы и исследования

По ежегодному исследованию State of Agile (с 2006 года) большинство респондентов отмечают рост производительности, скорости вывода продуктов и управляемости изменений[40].

Типовые проблемы применения agile

  • Отсутствие дизайна всей архитектуры ведёт к переусложнению и трудной масштабируемости при быстрых успехах в начале[41].
  • Добавление новых требований в середине спринта нарушает ритм, их следует выносить в будущие спринты[42].
  • Недостаточная поддержка инициаторов проекта (спонсоров) снижает шанс на успех внедрения[43].
  • Отсутствие должной подготовки персонала приводит к неправильному внедрению[44].
  • Роль product owner формально заполняется кем-то из разработчиков, что приводит к конфликту интересов и потере ориентации на бизнес-задачи[45].
  • Работа на несколько продуктов параллельно — снижает производительность.
  • Чрезмерное планирование, попытки в начале выяснить и описать всё досконально — против идеи итеративного узнавания истинных требований.
  • Злоупотребление стендапами для решения подробных проблем — минус для эффективности.
  • Назначение задач извне, а не самими участниками команды, ограничивает самостоятельность роста.
  • Scrum-мастер берёт на себя задачи разработчика, что снижает способность устранять препятствия[46].
  • Отсутствие автоматизации тестирования не позволяет поддерживать высокое качество на длительном горизонте.
  • Рост технического долга (technical debt) из-за стремления быстро выводить новые фичи.
  • Чрезмерная загрузка (слишком много задач на итерацию), что увеличивает потери на переключение контекста.
  • Неудачные попытки зафиксировать одновременно время, ресурсы, объём и качество — приводит к ущербу для качества[47].
  • Риск выгорания команды из-за интенсивного ритма[48].

Agile-менеджмент

Гибкое управление проектами — это итеративный подход, где регулярно собирается обратная связь пользователей и корректируется продукт[49]. Agile-менеджмент используют не только в IT, но и в производственных цепочках и стратегическом управлении.

Ключевое отличие от традиционного итерационного управления в том, что agile стремится завершать мелкие части продукта (а не постепенно дорабатывать общий макет). Это даёт возможность пользователям пробовать продукт на раннем этапе и уточнять требования[50].

Agile-подходы применяют и в государственном управлении и вне IT — от совместного управления проектами до распределённых команд и стратегических инициатив[51].

Применение вне ИТ

Гибкие методологии углублённо используются и в разработке продуктов вне ПО (например, электроника, медицинские приборы, мода, музыка). Кроме того, agile-идеи начали внедряться в бизнес-менеджмент, обучение (learning engineering) и даже в семейное воспитание[52].

Критика

Критики отмечают сомнительную эффективность agile в крупных организациях и на некоторых проектах[53]. Многие принимают гибридные подходы, комбинируя элементы agile и «водопадной» модели[54]. Также критикуется излишняя «модность», переоценка принципов над результатами, ввод новой терминологии вместо извлечения уроков из истории[55].

Примечания

  1. What is Agile? Agile Alliance (29 июня 2015). Дата обращения: 16 июля 2024. Архивировано 26 марта 2016 года.
  2. 1 2 3 Kent Beck. Manifesto for Agile Software Development. Agile Alliance (2001). Дата обращения: 14 июня 2010.
  3. 1 2 Larman, Craig. Agile and Iterative Development: A Manager's Guide. — Addison-Wesley, 2004. — P. 27. — ISBN 978-0-13-111155-4.
  4. Rally Agile With a Capital "A" Vs. agile With a Lowercase "a" (2010). Дата обращения: 9 сентября 2015. Архивировано 5 января 2016 года.
  5. What is Agile Software Development? Agile Alliance (8 июня 2013). Дата обращения: 4 апреля 2015. Архивировано 20 августа 2010 года.
  6. Dybå, Tore; Dingsøyr, Torgeir (1 августа 2008). “Empirical studies of agile software development: A systematic review”. Information and Software Technology [англ.]. 50 (9—10): 833—859. DOI:10.1016/j.infsof.2008.01.006. ISSN 0950-5849. S2CID 2244031.
  7. Дж. М. Вайнберг, цит. по: Larman, Craig; Basili, Victor R. (июнь 2003). “Iterative and Incremental Development: A Brief History”. IEEE Computer. 36 (3): 47—56. DOI:10.1109/MC.2003.1204375. Проверьте дату в |date= (справка на английском)
  8. Evolutionary Project Management (Original page, external archive). Gilb. Дата обращения: 30 апреля 2017. Архивировано 27 марта 2016 года.
  9. Evolutionary Project Management (New page). Gilb. Дата обращения: 30 апреля 2017. Архивировано 24 августа 2025 года.
  10. Edmonds, E. A. (1974). “A Process for the Development of Software for Nontechnical Users as an Adaptive System”. General Systems. 19: 215—18.
  11. Gilb, Tom (1981-04-01). “Evolutionary development”. ACM SIGSOFT Software Engineering Notes [англ.]. 6 (2): 17. DOI:10.1145/1010865.1010868.
  12. Heavyweight Project Organization : [англ.]. — Springer US, 2000. — P. 261–262. — ISBN 978-1-4020-0612-8. — doi:10.1007/1-4020-0612-8_400.
  13. Martin, James. Rapid Application Development. — Macmillan, 1991. — ISBN 978-0-02-376775-3.
  14. Iacocca Institute (1991). «21st Century Manufacturing Enterprise Strategy: An Industry Led View». Iacocca Institute, Lehigh University, Bethlehem, PA.
  15. Sanchez, Luis (ноябрь 2010). “A Review of Agile Manufacturing Systems”. International Journal of Production Research (39(16):3561-3600). Проверьте дату в |date= (справка на английском)
  16. Anderson, David Declaration of Interdependence (2005). Дата обращения: 4 октября 2018. Архивировано 27 января 2018 года.
  17. McDonald, Kent. How You Can Help Agile Alliance Help You, Agile Alliance Blog (1 ноября 2016). Архивировано 22 августа 2025 года. Дата обращения: 4 июля 2017.
  18. Examining the Agile Manifesto. Ambysoft Inc.. Дата обращения: 6 апреля 2011. Архивировано 23 августа 2025 года.
  19. Jim Highsmith. History: The Agile Manifesto. agilemanifesto.org (2001). Архивировано 16 декабря 2025 года.
  20. Kent Beck. Principles behind the Agile Manifesto. Agile Alliance (2001). Дата обращения: 6 июня 2010. Архивировано 14 июня 2010 года.
  21. Moran, A. Agile Risk Management. — Springer Verlag, 2014. — ISBN 978-3319050072.
  22. Preuss, Deborah Hartmann Study: Co-Located Teams vs. the Cubicle Farm. InfoQ (13 октября 2006). Дата обращения: 23 октября 2018. Архивировано 17 октября 2006 года.
  23. Jain, Parita. The Impact of Agile Software Development Process on the Quality of Software Product // 2018 7th International Conference on Reliability, Infocom Technologies and Optimization (Trends and Future Directions) (ICRITO) / Parita Jain, Arun Sharma, Laxmi Ahuja. — Noida, India : IEEE, август 2018. — P. 812–815. — ISBN 978-1-5386-4692-2. — doi:10.1109/ICRITO.2018.8748529.
  24. Ambler, Scott. Agile Modeling: Effective Practices for EXtreme Programming and the Unified Process. — John Wiley & Sons, 12 апреля 2002. — P. 12, 164, 363. — ISBN 978-0-471-20282-0.
  25. Vasiliauskas, Vidas Developing agile project task and team management practices. Eylean (2014). Дата обращения: 15 сентября 2014. Архивировано 15 сентября 2014 года.
  26. Lisa Crispin. Agile Testing: A Practical Guide for Testers and Agile Teams / Lisa Crispin, Janet Gregory. — Addison-Wesley, 2009.
  27. Mitchell, Ian. Agile Development in Practice. — Tamare House, 2016. — P. 11. — ISBN 978-1-908552-49-5.
  28. Boehm, B. Balancing Agility and Discipline: A Guide for the Perplexed / B. Boehm, R. Turner. — Boston, MA : Addison-Wesley, 2004. — ISBN 978-0-321-18612-6.
  29. Larman, Craig. Chapter 11: Practice Tips // Agile and Iterative Development: A Manager's Guide. — Addison-Wesley Professional, 2004. — P. 253. — ISBN 9780131111554.
  30. Rakitin, Steven R. (2001). “Manifesto Elicits Cynicism: Reader's letter to the editor by Steven R. Rakitin”. IEEE Computer. 34 (12): 4. DOI:10.1109/MC.2001.10095. S2CID 221106984. ...
  31. Scott Ambler. Agile/Lean Documentation: Strategies for Agile Software Development (16 апреля 2023). Архивировано 19 октября 2025 года.
  32. Guide to Agile Practices. the Agile Alliance. Архивировано 9 февраля 2014 года.
  33. Aydin, M.N.; Harmsen, F.; Slooten; Stagwee, R. A. (2004). “An Agile Information Systems Development Method in use”. Turk J Elec Engin. 12 (2): 127—138.
  34. Morris, David. The Paradox of Agile Transformation: Why trying too hard to be Agile stops organisations from becoming truly agile. — NZ : University of Auckland, 2015. — doi:10.13140/RG.2.2.32698.08640.
  35. Boehm, B. Balancing Agility and Discipline: A Guide for the Perplexed / B. Boehm, R. Turner. — Boston, MA : Addison-Wesley, 2004. — P. 55–57. — ISBN 978-0-321-18612-6.
  36. W. Scott Ambler (2006) Supersize Me в Dr. Dobb’s Journal, 15 февраля 2006.
  37. Cawley, Oisín. Lean/Agile Software Development Methodologies in Regulated Environments – State of the Art // Lean Enterprise Software and Systems / Oisín Cawley, Xiaofeng Wang, Ita Richardson. — 2010. — Vol. 65. — P. 31–36. — ISBN 978-3-642-16415-6. — doi:10.1007/978-3-642-16416-3_4.
  38. Beck, Kent. Extreme Programming Explained. — Addison-Wesley, 2000. — P. 1–24. — ISBN 978-0201616415.
  39. How Agile Are You? (Take This 42 Point Test). allaboutagile.com/. Дата обращения: 3 апреля 2026. Архивировано 5 мая 2014 года.
  40. 2013 State of Agile report: Why Agile? stateofagile.com (27 января 2014). Дата обращения: 13 августа 2014. Архивировано 28 августа 2014 года.
  41. Beck, Kent. Extreme Programming Explained. — Addison-Wesley, 2000. — P. 48–49. — ISBN 978-0201616415.
  42. Goldstein, Ilan Sprint issues – when sprints turn into crawls. www.axisagile.com.au (11 октября 2011). Дата обращения: 8 июня 2014. Архивировано 15 августа 2025 года.
  43. Bourne, Lynda What Does a Project Sponsor Really Do? blogs.pmi.org. Дата обращения: 8 июня 2014. Архивировано 7 июня 2014 года.
  44. 9th State of Agile Report. Stage of Agile Survey. VersionOne. Дата обращения: 8 июня 2014. Архивировано 12 января 2015 года.
  45. Sims, Chris. The Elements of Scrum / Sims, Chris, Johnson, Hillary Louise. — Kindle. — Dymaxicon, 2011-02-15. — P. 73.
  46. Berczuk, Steve Mission Possible: ScrumMaster and Technical Contributor. www.agileconnection.com. Дата обращения: 14 июня 2014. Архивировано 14 июля 2014 года.
  47. McMillan, Keith Time, Resources, Scope... and Quality. www.adeptechllc.com (13 мая 2010). Дата обращения: 15 июня 2014. Архивировано 18 сентября 2025 года.
  48. “Current study on limitations of Agile”. Procedia Computer Science. 78: 291—297. 2016-01. DOI:10.1016/j.procs.2016.02.056. Проверьте дату в |date= (справка на английском)
  49. The Procurement Call for Agile, What does it mean? (1 ноября 2019). Архивировано 24 августа 2025 года.
  50. Agile Project Management. VersionOne. Дата обращения: 3 апреля 2026. Архивировано 9 июня 2015 года.
  51. Benson, Jim. Personal Kanban: mapping work, navigating life / Jim Benson, Tonianne De Maria Barry. — Seattle, WA : Modus Cooperandi Press, 2011. — P. 38. — ISBN 978-1-4538-0226-7.
  52. Smith, Preston G. Flexible Product Development. — Jossey-Bass, 2007. — P. 25. — ISBN 978-0-7879-9584-3.
  53. Larman, Craig. Top Ten Organizational Impediments to Large-Scale Agile Adoption / Craig Larman, Bas Vodde. — InformIT, 2009-08-13.
  54. Barlow, Jordan B.; Justin Scott Giboney; Mark Jeffery Keith; David W. Wilson; Ryan M. Schuetzler; Paul Benjamin Lowry; Anthony Vance (2011). “Overview and Guidance on Agile Development in Large Organizations”. Communications of the Association for Information Systems. 29 (1): 25—44. DOI:10.17705/1CAIS.02902.
  55. Kupersmith, Kupe Agile is a Fad (4 июля 2011). Архивировано 9 августа 2011 года.