Minerva Media — Блог о новых трендах в корпоративном обучении
2024-10-18 16:08

Что такое гибкая методология (Agile)

IT
Agile, или гибкая методология ― это подход к управлению проектами. Сегодня по этой методологии работают многие российские и международные компании, особенно в сфере диджитал и IT.

В статье рассмотрим основные принципы метода, его преимущества и недостатки, а также самые популярные фреймворки.

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

Agile: что это такое

Сегодня подход Agile используют в двух значениях. Так называют:

  • Философию управления проектами, которая появилась в IT-сфере в начале 2000-х годов. В этом случае говорят о гибких ценностях и принципах.
  • Семейство гибких методологий разработки, которые появились на базе этой философии. В этом случае имеют в виду инструменты и регламенты, которые помогают планировать время и налаживать коммуникацию в команде.

До появления гибкой методологии проектами в IT часто управляли по принципу Waterfall, или каскадной модели. Важно отметить, что Agile шире, чем просто метод или набор инструментов. Здесь мы сравниваем только основные принципы, а не напрямую один метод с другим.

В Waterfall команда составляет техническое задание и согласовывает с заказчиком. А затем двигается строго по плану.
На первый взгляд кажется, что всё удобно и упорядоченно: сначала собирают требования к продукту и проектируют, потом разрабатывают и тестируют. Для некоторых направлений такой подход отлично работает. Например, сюда относится разработка для государственных структур, где продукт строится на основе регламентов, продиктованных законодательством. Его нет необходимости систематически править и дорабатывать — продукт в любом случае будет востребован. Плюс такой подход используют там, где велика стоимость ошибки, например, при запуске космического спутника.

В Waterfall-подходе команде не обязательно всё время взаимодействовать лично или по Zoom — каждый может сосредоточиться на своей части проекта. И уровень компетенций в команде может быть разным.

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

Agile возник как альтернатива, которая позволяла быстрее реагировать на изменения и создавать востребованные продукты.

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

Пример. Компания, которая использует каскадный метод для разработки приложения по доставке еды, будет работать по такому алгоритму:

  • соберёт все бизнес-требования;
  • спроектирует и разработает приложение;
  • приступит к внедрению.

В аджайл команда вместо полного сбора всех бизнес-требований обратится к владельцу продукта (это специальная роль в методологии), который поможет определить набор требований с самым высоким приоритетом.

Например, регистрация и авторизация пользователей, просмотр меню ресторанов, корзина ― без этих функций в приложении просто нет смысла. Чтобы спроектировать, сделать дизайн и написать код, уйдёт несколько недель или месяцев. В результате получится MVP ― неидеальная версия продукта, пусть и без некоторых функций, но уже работающая. Команда может выпустить приложение и дорабатывать его по обратной связи от пользователей. Например, добавить интеграцию с приложением для курьеров, сторис с актуальными предложениями, возможность добавлять блюда в избранное.

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

Agile-манифест и его основные ценности

Agile-манифест написала группа разработчиков со всего мира в 2001 году. В нём они зафиксировали основные ценности подхода. Вот они.
Люди и взаимодействия важнее процессов и инструментов.

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

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

Постоянное взаимодействие с клиентом позволяет уточнять требования, реагировать на изменения и делать продукт лучше. Важно не просто следовать контракту, а добиваться совместных целей.
Готовность к изменениям важнее следования изначальному плану.

В мире, где всё меняется, Agile позволяет адаптироваться к новым условиям. Изменения на проекте — это не сбой, а возможность улучшить продукт.

Принципы Agile

Помимо ценностей в манифесте также записали 12 принципов. Они описывают, как правильно работать над проектами по гибкой методологии.

1. Приоритет — удовлетворить клиента

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

2. Изменять требования даже на поздних этапах ― это нормально

Гибкость — ключевая черта Agile. Гибкие методологии управления проектами разрешают и даже поощряют изменения требований по ходу работы.

3. Промежуточный результат нужно показывать клиенту как можно чаще

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

4. Заказчик и разработчики совместно работают на протяжении всего проекта

Постоянное общение помогает точно понимать требования, уточнять детали и вносить изменения по ходу проекта.

5. Над проектом должны работать мотивированные люди

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

6. Личные встречи — самый эффективный способ передачи информации

Документы или переписки не заменят живое общение. Лучше всего регулярно встречаться хотя бы онлайн. На встречах можно быстро обсудить проблемы, обменяться идеями и принять решения.

7. Работающий продукт — главная мера прогресса

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

8. Процессы ― гибкие и устойчивые

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

9. Постоянное внимание к техническому совершенству и качеству дизайна

Команда должна стремиться к тому, чтобы каждая итерация не только приносила результаты, но и улучшала архитектуру, код и дизайн продукта. Техническое совершенство снижает риски появления ошибок и увеличивает надёжность продукта.

10. Простота необходима

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

11. Лучшая работа возникает в самоорганизующихся командах

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

12. Важно постоянно анализировать и самосовершенствоваться

Agile-команды постоянно учатся на своём опыте. После каждой итерации команда анализирует, что сработало хорошо, а что можно улучшить. Эти размышления (ретроспективы) помогают скорректировать подход и постоянно улучшать процессы.
В Minervasoft мы работаем согласно подходу Agile, чтобы постоянно совершенствовать продукт, добавлять новые фичи и улучшать существующие. Также мы всегда учитываем пожелания наших клиентов к системе (КМС) и оперативно на них реагируем. А каждый член нашей команды может вносить любые предложения, к которым прислушиваются остальные. Поэтому принципы аджайл нам так близки.

Основные фреймворки Agile

Что нужно делать: ключевое правило — не перегружать! Первый день на новом месте и так стрессовый. Постарайтесь сделать его максимально комфортным: познакомьте новичка с командой, проведите небольшую экскурсию по офису или, если это удалёнка, по рабочему пространству.
Как мы уже упоминали, Agile — это скорее философия работы над проектами, чем строгое руководство к действию. Она задаёт общее направление, где главные приоритеты — гибкость, команда и продукт.
Конкретные методы и инструменты предлагают фреймворки Agile. Вот самые популярные из них.

Scrum

Scrum — один из самых известных фреймворков Agile. В его основе лежат следующие элементы:

  • Роли. В Scrum есть три главные роли — владелец продукта, Scrum-мастер и команда разработки. Владелец продукта отвечает за видение продукта, Scrum-мастер помогает всем участникам следовать Agile-принципам и общаться, а команда разработки работает над созданием продукта.
  • События. В Scrum регулярно проводятся встречи (мероприятия) — планирование спринта, ежедневные встречи (Daily Scrum), обзор спринта и ретроспектива. На них участники собираются вместе, синхронизируют работу и обновляют требования.
  • Артефакты. В Scrum важны такие артефакты, как бэклог продукта, бэклог спринта и инкремент продукта.
В скрам много деталей, и внедрить его может быть нелегко. Часто компании используют только какую-то часть фреймворка, например, проводят планирование и дейли, но не ретроспективы. Хотя на начальных этапах это может работать, лучше использовать все инструменты фреймворка для максимальной эффективности.
Scrum подходит для проектов с чётко структурированными этапами и регулярной обратной связью, например, в разработке ПО.

Kanban

Главная особенность Kanban — визуализация задач с помощью доски (Kanban Board), где задачи распределяются по трём колонкам: «Запланировано», «В работе», «Готово».
В отличие от Scrum, где работа делится на итерации (спринты), Kanban предполагает непрерывный процесс выполнения задач без чётких временных рамок.
Kanban идеально подходит для проектов, где важна гибкость и задачи приходят постепенно, например, в редакции или маркетинговом агентстве, где ежедневно выпускают статью, видео и другие материалы.

Преимущества Agile

У Agile много плюсов, которые делают её популярной среди современных компаний.
  • Гибкость и адаптивность. Можно учитывать новые требования и вносить изменения на любом этапе.
  • Клиент на первом месте. Agile ориентирован на постоянную обратную связь, что помогает создавать продукт, который действительно нужен клиенту.
  • Повышение мотивации команды. В Agile каждый член команды вовлечён в процесс принятия решений, а значит, мотивация сотрудников выше.
  • Качество продукта. Частые итерации и тестирование позволяют быстрее выявлять ошибки и повышать качество конечного продукта.

Недостатки Agile

Agile имеет и недостатки.
  • Необходимость высокой вовлёченности заказчика. Клиент должен быть вовлечён в проект, что не всегда удобно ему самому.
  • Высокие требования к квалификации команды. Чтобы работать по Agile, нужны опытные специалисты, которые отлично разбираются в своей области, а также могут подхватить задачи коллег. Как правило, это сеньоры или крепкие мидлы. Такие специалисты дорогие и найти их сложнее.
  • Нет точных сроков и бюджета. Гибкость означает, что первоначальные оценки времени и стоимости могут меняться ― иногда происходит перерасход ресурсов.

Что в итоге

  • Гибкая методология Agile ― это подход к управлению проектами.
  • Возникла как альтернатива традиционному подходу, чтобы быстрее реагировать на изменения и создавать востребованные продукты.
  • Это скорее философия работы над проектами, чем строгое руководство к действию.
  • Базируется на четырёх принципах:
  • Люди и взаимодействия важнее процессов и инструментов.
  • Работающий продукт важнее точной и подробной документации.
  • Сотрудничество с заказчиком важнее условий договора.
  • Готовность к изменениям важнее следования изначальному плану.
  • У Agile много плюсов, которые делают её популярной среди современных компаний: гибкость и адаптивность, клиентоориентированность, повышение мотивации команды, фокус на качестве продукта.
  • Недостатки: необходимость вовлечённости заказчика, высокие требования к квалификации команды и отсутствие точных сроков и бюджета.