Agile: искусство гибкого управления проектами

31.05.2024
Agile: искусство гибкого управления проектами

Agile — это набор методик, которые помогают командам управлять проектами. «Agile» в перевод с английского означает «гибкий». Это точно описывает его суть. Гибкость лежит в основе и философии, и методологий.

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

  • Adaptive (адаптивный) – способность к адаптации под изменяющиеся условия и требования.

  • Gradual (постепенный) – реализация проекта малыми, управляемыми частями.

  • Iterative (итеративный) – разработка через повторяющиеся циклы планирования, выполнения и оценки.

  • Lean (бережливый) – минимизация отходов и оптимизация процессов.

  • Empirical (эмпирический) – принятие решений на основе наблюдаемых данных и опыта.

История

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

Основы Agile заложены ещё в 1970-х, когда Уинстон Ройс критиковал последовательный подход в разработке ПО и предложил более гибкую фазовую систему. Это привело к созданию методов, которые сделали процесс эффективнее и проще: RAD, DSDM, Scrum, Crystal Clear, XP, FDD.

13 февраля 2001 года в США, штате Юта, 17 разработчиков собрались и, обсудив эти методы, опубликовали «Манифест о гибкой разработке программного обеспечения Agile». Они были уверены, что существующие методы управления проектами уже не отвечают современным требованиям — они слишком громоздки и медлительны.

После публикации Манифеста Agile, подход быстро завоевал популярность. Через год создатели и сторонники документа встретились, чтобы обсудить, как лучше распространить эти идеи среди специалистов. Они начали писать статьи и проводить лекции. Также была создана рабочая группа, которая со временем эволюционировала в организацию Agile Alliance с более 30 000 участников.

Несколько раз в год проводится главное событие Agile-практиков в СНГ— Agile Days, символизирующее развитие и распространение гибких методологий. Оно собирает практиков, экспертов и энтузиастов из разных стран для обмена опытом, обсуждения новых идеи и тенденций в Agile-подходах. Программа Agile Days включает в себя мастер-классы, лекции, кейс-стади, интерактивные сессии, нацеленные на улучшение навыков участников и продвижение Agile-культуры в их организациях.

Принципы

В манифесте Agile кроме основных ценностей представлено 12 ключевых принципов:

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

Эти принципы помогают оценить, насколько точно команда следует философии Agile.

Методологии

Agile объединяет разные методологии, чтобы сделать управление проектами более гибким и продуктивным. Самые популярные из них — Scrum и Kanban, которые стали практически синонимами Agile.

Scrum

Scrum (регбийный термин, обозначающий борьбу за мяч) основан на итеративном подходе, когда большие проекты разбиваются на меньшие, управляемые части, которые называют спринтами. Каждый спринт длится от 1 до 4 недель и представляет собой законченный цикл, который включает планирование, разработку, тестирование и оценку.

Как распределяются роли в команде:

  • Владелец продукта (Product Owner) – определяет требования к продукту и приоритеты, управляет бэклогом продукта.

  • Скрам-мастер (Scrum Master) – помогает команде работать максимально эффективно, устраняет препятствия, следит за соблюдением принципов Scrum.

  • Команда разработчиков – проектирует и создает продукт, работая в тесной координации.

  • Из каких событий состоит процесс разработки:

  • Планирование спринта (Sprint Planning) – определение работы, которая должна быть выполнена.

  • Ежедневный стендап (Daily Scrum) – это короткая встреча продолжительностью 15 минут, которая проводится каждый день в установленное время и на постоянном месте во время спринта. На ней каждый участник команды отвечает на три вопроса: 1. Что было сделано вчера? 2. Какие планы на сегодня? 3. Есть ли трудности или нужна ли помощь?

  • Обзор спринта (Sprint Review) – демонстрация достигнутых результатов и получение обратной связи от заинтересованных сторон.

  • Ретроспектива спринта (Sprint Retrospective) – анализ спринта командой для улучшения процессов.

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

Kanban

Kanban (в переводе с японского – «визуальный знак») фокусируется на визуализации рабочего процесса и оптимизации производительности путем управления потоком задач. Главная цель – сократить время, которое задачи проводят в ожидании или в процессе выполнения, и равномерно распределять нагрузку между членами команды.

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

Ключевые элементы:

  • Доска Kanban – визуальное представление работы с колонками, которые обозначают стадии процесса (например, «К выполнению», «В процессе», «Выполнено»).

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

  • Лимиты WIP (Work In Progress) – установленные ограничения на количество задач, которые могут находиться на определенной стадии одновременно, чтобы избежать перегрузки команды и ускорить выполнение работы.

  • Хотя Scrum и Kanban – это методологии одного и того же Agile, они применяются в различных контекстах и имеют свои особенности:

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

  • Kanban подойдет для проектов, которые требуют большой гибкости и постоянного управления потоком работ. Это хороший выбор для непрерывных проектов или там, где объем работ может значительно меняться.

Возможности

Гибкие методы управления проектами(Agile Project Management) позволяют быстро адаптироваться к изменениям и работать так, чтобы результаты были видны уже на ранних этапах.

Возможности Agile раскрываются через его преимущества:

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

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

  • Сокращение времени на разработку. Методология позволяет ускорить создание продукта благодаря постоянному улучшению и оптимизации ресурсов.

  • Повышение качества продукта. Непрерывное тестирование и рефакторинг делает конечный продукт надежнее и удобнее для пользователя.

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

Ценности

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

  1. Первостепенное в работе — это люди и их взаимодействие. Процессы и инструменты важны, но это помощь, а не цель. Команде важно общаться и понимать друг друга, чтобы быстро решать проблемы и адаптироваться, минуя бюрократию. В Agile особое внимание уделяется открытому общению и совместному поиску решений.
  2. Рабочий продукт важнее томов документации. Agile признает ее необходимость, но предпочитает, чтобы она не тормозила разработку. Вместо подробного описания каждой детали важнее сделать продукт функционирующим и полезным для пользователей.
  3. Сотрудничество с клиентом и понимание его потребностей ценнее жестких контрактных рамок. В Agile клиент активно участвует в разработке. Это делает процесс более гибким и ориентированным на создание нужного продукта, а не заточенное выполнение формальных условий.
  4. Готовность к изменениям важнее следования первоначальному плану. Мир быстро меняется, и то, что было актуально на момент планирования, может устареть к моменту реализации. Гибкость и адаптивность команды позволяют быстрее реагировать на новые вызовы и тенденции, делая продукт более актуальным и конкурентоспособным.

Внедрение

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

Рассмотрим процесс внедрения Agile на примере компании «Диасофт», которая занимается разработкой ПО для финансовых организаций. Изменения начались с перехода от функциональной структуры к работе продуктовых команд, которые владеют кодом и отвечают за результат до самого конца.

  1. Первым шагом стало обучение и тренинги для сотрудников. Были взяты существующие подходы и скорректированы под нужды компании. Особое внимание уделялось изучению основ Scrum, ролям Product Owner и Scrum Master, поскольку правильное понимание их функций критично важно для успеха всей команды. Командам объяснили прикладной смысл каждой практики, зачем это компании и в чем их личная выгода от использования. После подтверждения понимания внедрение продолжается.
  2. Компания начала переход с традиционного водопадного метода управления проектами на Scrum. Это включало разделение больших проектов на короткие двухнедельные итерации — спринты. В начале каждого спринта проводилось планирование, на котором команда, вместе с Product Owner, определяла объем работы, который выполняется в течение спринта.

1.png

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

2.png

Результат и эффективность команды оценивается с учетом метрик Agile:

  • Производительность. Определяет объем работы, который команда выполняет за определенное время.

  • Частота ошибок. Подсчитывает количество ошибок на каждую единицу продукции.

  • Удовлетворенность клиентов. Оценивает, насколько клиенты довольны продуктом или услугой.

  • Вовлеченность пользователей. Оценивает активность пользователей в использовании продукта.

  1. Для стимулирования команд в процесс добавлен соревновательный момент – игровой рейтинг. Команды выполняют практики, соревнуясь между собой, и сами выбирают, на какую конкретную практику сделать упор, чтобы прорваться вперед и получить награду. Это входит в систему. И вот практики, которые вчера команда делала за награду, выполняются по привычке.

3.png

Пример внедрения Agile в «Диасофт» можно наглядно увидеть на проекте разработки новой платежной системы для крупного банка. Команда начала с создания минимально жизнеспособного продукта (MVP), который включал только ключевые функции, необходимые для первых пользователей. Это позволило получить обратную связь от банка на раннем этапе и учесть ее в дальнейшей разработке.

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

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

Чего добились в Диасофт при применении Agile:

  • Повышение эффективности производства, снижение стоимости разработки в 10 раз. Там, где раньше требовалось 100 команд, теперь надо 10. При этом не потерян контроль и возможность идентифицировать узкие места в производстве

  • Запущен непрерывный процесс улучшения со встроенными практиками в ДНК компании. Поэтому каждая новая команда изначально работает правильно.

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

Будущее

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

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

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

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