Все об Agile. Что это: методология, метод или философия

Все об Agile. Что это: методология, метод или философия

Что такое agile простыми словами

Agile — это подход к управлению проектами, который фокусируется на гибкости, быстрой адаптации к изменениям и постоянном улучшении. Основная идея в том, чтобы работать небольшими итерациями (короткими этапами), регулярно получать обратную связь и вносить изменения на основе этой обратной связи.

Вместо того чтобы планировать проект от начала до конца, как в традиционных методах, команды Agile работают поэтапно, что позволяет быстро реагировать на изменения в требованиях или условиях. Такой подход особенно полезен в IT и разработке программного обеспечения, где требования могут меняться очень быстро.

Чем Agile отличается от методологий

Термин «методология» часто применяется к Agile, аналогично более ранним подходам к разработке программного обеспечения, таким как RAD, RUP или XP. Но те, кто работал с Agile, знают, что он отличается от этих подходов, которые детально описывали весь процесс разработки. Agile гораздо более лаконичен и основывается всего на 4 ценностях и 12 принципах. В то время как RUP (Rational Unified Process) — это объемное описание, включающее десятки страниц с множеством приемов и алгоритмов. Например, RUP делит жизненный цикл разработки на 4 фазы, рекомендует распределение работы по 9 потокам (workflows) на каждой фазе и предлагает конкретные инструменты для каждого потока. OpenUP, последняя версия RUP, стала более краткой и гибкой, но всё же не настолько лаконичной, как Agile.

Методология — это набор методов и приемов, используемых в различных сферах. Метод — это способ достижения цели.
Agile сам по себе не предоставляет конкретных алгоритмов, методов или приемов. Однако в рамках Agile часто применяются подходы, которые включают конкретные методы. Например, в XP (экстремальном программировании) есть такие практики, как парное программирование и планировочные игры, которые предписывают определенные действия. Даже Scrum, который считается фреймворком, а не процессом или методом, всё же включает несколько ролей, мероприятий и артефактов, необходимых для его эффективного использования.
Основой Agile являются высокоуровневые ценности, а не конкретные процессы или элементы процессов. Эти ценности помогают ускорить разработку и повысить бизнес-эффект от продуктов. Однако стоимость разработки может увеличиться, поэтому Agile подходит не во всех случаях. Более подробно это рассмотрено в разделе «Область применения Agile».

схема гибких подходов взята из книги Бориса Вольфсона «Гибкие методологии разработки»

Пример приведённой выше схемы гибких подходов взят из книги Бориса Вольфсона «Гибкие методологии разработки». Этот справочник был полезен в 2012 году, когда Agile в основном использовался в IT-сфере. Если ваша работа не связана с этой областью, лучше обратиться к более современным источникам, не сосредоточенным исключительно на IT.

Ценности Agile простыми словами

Термин «методология» часто применяется к Agile, аналогично более ранним подходам к разработке программного обеспечения, таким как RAD, RUP или XP. Но те, кто работал с Agile, знают, что он отличается от этих подходов, которые детально описывали весь процесс разработки. Agile гораздо более лаконичен и основывается всего на 4 ценностях и 12 принципах. В то время как RUP (Rational Unified Process) — это объемное описание, включающее десятки страниц с множеством приемов и алгоритмов. Например, RUP делит жизненный цикл разработки на 4 фазы, рекомендует распределение работы по 9 потокам (workflows) на каждой фазе и предлагает конкретные инструменты для каждого потока. OpenUP, последняя версия RUP, стала более краткой и гибкой, но всё же не настолько лаконичной, как Agile.

В 2001 году был создан Agile-манифест, который стал результатом обобщения множества существовавших тогда методологий разработки. В этом документе были изложены ключевые ценности Agile.

Ценности определяют приоритеты в работе вне зависимости от специфики процесса или предмета. В Agile ценности выражены в формате «X важнее Y», где X включает:

  1. Людей,
  2. Рабочий продукт,
  3. Сотрудничество с заказчиком,
  4. Готовность к изменениям.

Давайте рассмотрим, почему эти ценности важны.

1. Люди и их взаимодействие важнее процессов и инструментов

Для повышения эффективности работы важно, чтобы процессы и инструменты не ограничивали людей. В Agile нет жестких предписаний, что и как делать; команды сами определяют, как адаптировать процессы и инструменты под свои нужды.
Эффективное взаимодействие между людьми подразумевает прямую коммуникацию, без излишней документации или посредников. В современном мире онлайн-общение стало необходимостью, но и здесь важно использовать видеосвязь и интерактивные доски, а не ограничиваться письмами и чатами.

2. Рабочий продукт важнее исчерпывающей документации

Главное для клиентов — это рабочий продукт, а не документация. Разработчики должны сосредоточиться на быстром создании работающего продукта, а не на составлении списков, диаграмм и отчетов.
Документация часто замедляет процесс разработки и увеличивает затраты. Поэтому важно поддерживать только ту документацию, которая действительно необходима.

3. Сотрудничество с заказчиком важнее согласований условий контракта

Чтобы создать продукт, действительно ценный для заказчика, важно отказаться от чрезмерной детализации в контракте. Жесткие условия контракта могут мешать адаптации под новые данные и приоритеты, возникающие в процессе разработки.
Постоянное взаимодействие с заказчиком позволяет оперативно реагировать на изменения и решать возникающие проблемы. Доверие между исполнителем и заказчиком является ключом к успешному сотрудничеству.

4. Готовность к изменениям важнее, чем следование плану

Agile подразумевает не только итеративный подход к работе, но и готовность к изменениям на всех этапах. Это помогает избежать рисков на поздних стадиях разработки.
Команда должна быть готова к внесению существенных изменений в продукт, если того требуют обстоятельства. Заказчики, в свою очередь, должны быть готовы пересмотреть приоритеты и отказаться от менее важных аспектов ради новых, более ценных возможностей.

Agile — философия, Scrum — ее реализация

Agile — это не просто методология, а философия, основанная на ценностях, которые помогают разработчикам создавать продукты быстрее и эффективнее, принося больше пользы бизнесу. Эти ценности включают:

  1. Эффективное взаимодействие с клиентами и внутри команды, без жестких ограничений контрактов или внутренних процессов.
  2. Способность быстро реагировать на изменения, причем с обеих сторон.
  3. Фокус на создании работающего продукта, а не на документации и других второстепенных аспектах.

Готовность к изменениям важнее строгого следования плану, и поэтому Agile часто называют философией. Понятие «гибкий образ мышления» (Agile Mindset) отражает осознание и принятие этих ценностей.Изменить традиционный подход к работе на гибкий — это один из самых сложных шагов для внедрения Agile в команде или компании. Чаще всего это реализуется через фреймворк Scrum, поэтому Agile и Scrum часто упоминаются вместе.Если сотрудники не принимают Agile-мышление, внедрение Scrum может привести к увеличению затрат из-за необходимости дополнительных коммуникаций, обучения и новых ролей. С другой стороны, без конкретного подхода, такого как Scrum, Agile рискует остаться просто красивой идеей, не претворенной в жизнь.Таким образом, изучение Agile и Scrum обычно идет рука об руку. На нашем сайте можно найти множество статей по этой теме в разделе «Аджайл и Скрам». Также в Agile входит метод Kanban, и международный сертификат ICAgile Certified Professional охватывает как Scrum, так и Kanban.

Agile сложнее, чем 4 ценности

Во-первых, в Agile-манифесте содержатся не только основные ценности, но и 12 принципов, которые их детализируют и дополняют.

Во-вторых, в статье «Что такое Agile-подход и зачем он нужен бизнесу» описаны 6 ключевых характеристик работы по Agile, которые предоставляют более конкретное представление, чем сами ценности и принципы. Вот их краткое описание:

  1. Понимание потребностей клиента всей командой. В Agile важно, чтобы не только бизнес и менеджер продукта, но и каждый член команды знал, кто является клиентом, какие у него потребности и какие проблемы решает продукт. Это помогает создавать наиболее подходящие решения.
  2. Упрощенные процессы и организационные структуры. Правила и процессы работы в Agile-командах должны быть максимально простыми, чтобы команда могла сосредоточиться на нуждах клиента и создании продукта.
  3. Работа в коротких циклах (итерациях). Продолжительность каждого цикла составляет около недели или месяца, в течение которого команда должна представить работающий результат, полезный для клиента.
  4. Постоянное получение и использование обратной связи. Команда демонстрирует продукт заказчику, получает обратную связь и информацию о возможных изменениях, после чего вносит улучшения. Этот процесс помогает не только улучшать продукт, но и оптимизировать саму работу команды, устраняя задержки и другие препятствия.
  5. Широкие полномочия исполнителей. В идеале, каждый член команды имеет возможность самостоятельно принимать решения и нести за них ответственность. Это ускоряет решение проблем и повышает общую продуктивность.
  6. Внутренняя мотивация вместо внешних стимулов. Agile-методы создают такую среду, где сотрудники чувствуют свободу и удовлетворение от своей работы, видят её ценность для клиентов и имеют возможность для самореализации. Люди с внутренней мотивацией более эффективны, особенно в условиях творческой и сложной работы.

Эти признаки характерны для многих гибких подходов при их правильном применении. Теперь давайте более подробно рассмотрим, что представляют собой различные гибкие подходы.

Кратко о том, что входит в Agile сегодня

К гибким методам управления относятся такие инструменты, как фреймворк Scrum и методология Kanban. Согласно исследованию Agile в России, Kanban уверенно занимает второе место по популярности после Scrum, если не учитывать уникальные гибкие подходы, создаваемые в российских компаниях.
Scrum структурирует работу в спринты — короткие итерации с фиксированной продолжительностью. Команда состоит из разработчиков, владельца продукта (отвечающего за успех продукта) и скрам-мастера (следящего за эффективностью и правильным применением Scrum). Команда самостоятельно решает, кто, что и когда будет делать.
Все члены команды совместно планируют спринты, демонстрируют результаты заинтересованным лицам и ищут решения для проблем, связанных как с продуктом, так и с процессом работы. В течение спринта разработчики ежедневно обсуждают препятствия, краткосрочные планы и распределение задач.
Kanban — это методология, направленная на повышение качества сервиса. Она включает набор принципов и практик, которые ускоряют работу и делают ее более соответствующей ожиданиям потребителей.
Kanban отличается от Scrum по нескольким параметрам:

  • Применяется более широко (подходит не только для новых продуктов, но и для поддержки и операционных процессов).
  • Внедрение происходит постепенно, без резких изменений текущих процессов и организационной структуры.
  • Сфокусирован не только на ускорении, но и на равномерности процессов.
  • Использует другие метрики, которые не требуют оценки трудоемкости задач (например, время прохождения задачи в системе).
  • Не акцентируется на самоорганизации команды и не имеет прямой связи с Agile-ценностями (у Kanban свои ценности, которые согласуются с Agile, например, клиентоориентированность, сотрудничество и прозрачность).

Одной из наиболее популярных практик Kanban является визуализация процесса с помощью Канбан-доски. Это может быть физическая или электронная доска со стикерами, обозначающими различные задачи. В отличие от Скрам-доски с тремя столбцами, Канбан-доска отображает каждый этап процесса и делится на две части — «в работе» и «готово к следующему этапу».
Scrum и Kanban — это далеко не единственные подходы в рамках Agile. Другие гибкие подходы часто направлены на решение проблем крупных организаций, стремящихся конкурировать со стартапами по скорости вывода новых продуктов на рынок и принятия решений. В таких случаях применяются методы SAFe (Scaled Agile Framework), LeSS (Large-Scale Scrum) и практика Scrum of Scrums. Эти три подхода являются наиболее популярными для масштабирования Agile, согласно исследованию Agile в России.
Особенности всех популярных в России подходов, связанных с Agile и Business Agility, можно увидеть на нашей карте гибких подходов для бизнеса, доступной в виде изображения и плаката, пригодного для печати.

Область применения Agile

Основные ценности Agile понятны и легко воспринимаются, поэтому его применяют в самых различных отраслях: от банков и страховых компаний до розничных сетей, телекоммуникаций, энергетики и промышленности. Хотя многие принципы Agile были изначально разработаны для IT, большинство из них можно успешно использовать и за пределами этой сферы.

Согласно исследованию Agile в России 2023 года, IT-отрасль утрачивает свою монополию на Agile: менее 70% всех, кто участвует в Agile-трансформациях, работают в IT.

Agile давно уже не ограничивается разработкой программного обеспечения. Однако это не означает, что гибкие подходы подходят для применения везде и без ограничений.

Одним из главных ограничений Agile является фокус на «разработку новых продуктов». Хотя понятие «продукт» можно трактовать широко, новые продукты создают лишь немногие. Agile наиболее эффективен в условиях творческой работы и неопределенности. В противном случае затраты на Agile-процессы могут превышать выгоды, особенно если эти процессы настроены неправильно.

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

Кратко о том, что входит в Agile сегодня

Резюме. Место Agile среди родственных управленческих подходов

Agile — это не просто методология, набор инструкций, доски со стикерами или стандартные командные встречи, как в Scrum.

На сегодняшний день Agile имеет два основных значения:

  1. Agile — это система ценностей, образ мышления или философия, которая помогает быстро создавать продукты, максимально отвечающие потребностям клиентов.
  2. Agile — это также общее название для множества различных подходов к управлению разработкой, некоторые из которых даже не придерживаются всех четырех ценностей Agile (например, Kanban). Это сложилось исторически.

Agile сосредоточен на разработке и поставке готовых продуктов. Для генерации и проверки идей новых продуктов его дополняют такие подходы, как Customer Development и Design Thinking.

Важный момент: Agile касается организации процесса разработки, а не технических деталей, которые зависят от конкретной отрасли. В IT, например, для быстрой доставки ценности клиенту применяют инженерные практики и DevOps, которые не входят в Agile.

Agile решает две основные задачи современного бизнеса:

  1. Сокращение времени вывода продуктов на рынок и их доставки клиенту.
  2. Ускорение принятия решений на уровне команд и выше.
Место Agile среди родственных управленческих подходов

Когда речь идет об ускорении процессов на уровне программ и портфелей проектов в крупных организациях, правильнее использовать термин Enterprise Agility. Подходы, направленные на повышение гибкости и скорости принятия решений на уровне всего бизнеса, выходят за рамки Agile и называются Business Agility. Этот термин стал популярным в конце 2010-х годов и включает не только быструю доставку ценности клиентам и оперативную реакцию на изменения, но и гибкость в постановке целей и распределении ресурсов в организации.Если рассматривать взаимосвязь Business Agility и Agile, можно увидеть, что среди 12 доменов бизнес-гибкости Agile полностью покрывает домен «Гибкость процессов» и частично связан с пятью другими доменами.Таким образом, несмотря на появление Agile задолго до многих современных управленческих терминов, он сохраняет свою актуальность. Независимо от того, являетесь ли вы топ-менеджером, руководителем проектов или разработчиком продуктов, понимание и запоминание ценностей и принципов Agile-манифеста поможет вам достичь ожидаемых результатов от гибких процессов.Для лучшего понимания и запоминания ценностей и принципов Agile можно скачать плакат с их наглядным представлением.Надеюсь, что эта обзорная статья станет для вас хорошим путеводителем в мир Agile. Она поможет отличать качественные материалы по гибким подходам от непрофессиональных и предотвратит использование Agile в неподходящих ситуациях.

Алина Ян
Алина Ян

Инструктор курсов по Scrum, Business Analysis и SA, а также преподаватель программы PMI. Профессионал, обучающий ключевым навыкам для успешного IT-менеджмента.
Опыт преподавания с 2005 года.