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

Какие задачи решает методология Agile

Манифест и принципы Agile

Этапы работы по Agile

Этап 1. Планирование

Этап 2. Проектирование

Этап 3. Разработка

Этап 4. Тестирование

Этап 5. Обратная связь

Этап 6. Запуск

Разные фреймворки в методологии AGILE

Роли и участники команды в AGILE

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

Разница Agile и Waterfall

Плюсы и минусы AGILE

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

Недостатки Agile

Какие задачи решает методология Agile

Быстрое предоставление ценности заказчику. Короткие циклы работы и постоянный контакт между участниками команды помогают видеть прогресс, обмениваться обратной связью и быстрее идти к конечной цели – рабочей версии ПО.

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

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

Улучшение коммуникации. Ценность Agile для бизнеса еще и в сплочении команд: сотрудники часто общаются по проекту, могут самостоятельно принимать решения, сообщать о проблемах, предлагать изменения и вовлекать заказчика и другие заинтересованные стороны. Инструменты для этого – ежедневные встречи, планирование спринта, анализ и ретроспективы спринта. 

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

Манифест и принципы Agile

Манифест Agile – это перечень принципов и ценностей гибкой разработки ПО, который создала группа разработчиков в 2001 году.

Вот 4 ценности Agile:

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

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

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

Авторы принципов Agile-манифестаАвторы принципов Agile-манифеста

Этапы работы по Agile

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

Схематичное представление этапов Agile от StecPointСхематичное представление этапов Agile от StecPoint

Этап 1. Планирование

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

Этап 2. Проектирование

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

Этап 3. Разработка

Всё начинается с прототипа – первого образца готового продукта, который показывает главные функции и интерфейс. Прототип может иметь низкую или высокую детализацию, в зависимости от цели и ресурсов команды. Его согласует команда и клиент, а затем прототип превращается в рабочее приложение, программу или сервис. Этап разработки в Agile делится на спринты, которые обычно длятся от 1 до 4 недель. Каждый спринт имеет свою цель и конкретные результаты, которых нужно достичь по итогу. 

Этап 4. Тестирование

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

Этап 5. Обратная связь

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

Этап 6. Запуск

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

Наглядная схема этапов Agile и вспомогательных элементовНаглядная схема этапов Agile и вспомогательных элементов

Разные фреймворки в методологии AGILE

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

Scrum. Это метод организации работ со спринтами длительностью 1-2 недели. Ключевые элементы Scrum – это короткие дневные встречи, планирование спринта, ретроспектива и обзор спринта.

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

Реальный пример канбан-доски в компании OptimizelyРеальный пример канбан-доски в компании Optimizely

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

Extreme Programming (XP). Это фреймворк, который ставит во главу угла скорость разработки, отзывчивость и качество кода. Он включает в себя такие инженерные практики, как написание тестов перед программированием, парное программирование и непрерывную интеграцию.

Петля планирования и обратной связи, в которой реализуются принципы управление проектами в Agile-фреймворке Extreme ProgrammingПетля планирования и обратной связи, в которой реализуются принципы управление проектами в Agile-фреймворке Extreme Programming

Роли и участники команды в AGILE

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

  1. Заказчик – это представитель бизнеса или клиента, который определяет требования к проекту и принимает решения о его разработке и приоритетах;
  2. Владелец продукта (Product Owner) – это член Agile-команды, который отвечает за видение продукта, управление бэклогом, приоритизацию задач и повышение ценности продукта для заказчиков и юзеров;
  3. Scrum-мастер или Agile-коуч – это сотрудник, который организует эффективное управление Agile-командой. Он помогает другим следовать принципам Agile-манифеста, координирует встречи и т. д.;
  4. Члены команды разработки в Agile – это программисты, тестировщики, UX-дизайнеры, технические писатели и другие специалисты, которые выполняют основную работу по созданию готового продукта. Вопреки распространенному мнению, эту роль в Agile играют далеко не только разработчики;
  5. Заинтересованные стороны – это люди, не входящие в команду, но имеющие интерес или влияние на результаты проекта (пользователи, менеджеры, акционеры и др.).

Если вы хотите узнать больше про роли, рекомендуем вам прочитать книгу Юргена Аппело «Agile-менеджмент. Лидерство и управление командами»Если вы хотите узнать больше про роли, рекомендуем вам прочитать книгу Юргена Аппело «Agile-менеджмент. Лидерство и управление командами»

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

Давайте разберем пример применения методологии AGILE в конкретной компании – Ticketland. Это сервис по продаже билетов на концерты, в театры, на соревнования и т.д. В один прекрасный момент он столкнулся с рядом проблем в своей работе:

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

Для решения этих проблем Ticketland решил внедрить методологию Agile. Вот как компания применила основные принципы Agile:

  • рассталась с традиционными руководителями, вместо них в каждой команде назначили и обучили Product Owner’ов;
  • внедрили ретроспективы – встречи, посвященные анализу ошибок и выявлению направлений работы;
  • начали оценивать предложения по фичам и функциям с финансовой точки зрения;
  • приняли 3 принципа принятия новых людей в команду: наличие знаний и умений, мотивация работать именно в этой компании, соответствие ценностям компании;
  • ввели кросс-дисциплину t-shape для получения знаний в смежных с основным полем деятельности сотрудника областях;
  • начали рассматривать каждое обновление с точки зрения пользовательских историй;
  • перешли с монолита на микросервисную архитектуру.

Переход на принципы Agile-управления позволил Ticketland решить обозначенные в самом начале проблемы, успешно нарастить штат и обороты, войдя в Forbes с оценкой компании в 84,2 млн долларов.

Разница Agile и Waterfall

AGILE и Waterfall – это противоположные подходы к управлению проектами.

Waterfall («водопад») – это традиционный метод, основанный на линейной и последовательной работе по шагам, установленным до старта проекта. Следующая стадия работы не начинается, пока не закончится предыдущая. По сравнению с Agile, Waterfall требует очень тщательного предварительного планирования и строгого соблюдения первоначального объема работ, иначе сроки рискуют непредсказуемо затянуться.

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

Agile vs Waterfall на наглядной схеме от Hackr.ioAgile vs Waterfall на наглядной схеме от Hackr.io

Плюсы и минусы AGILE

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

Гибкость при изменениях. Это главное преимущество Agile и DevOps – еще одной популярной гибкой методологии. Их часто используют вместе при разработке ПО. В Agile новые условия, вызовы или требования – это не угрозы всему проекту, а возможность совершенствоваться. Команда может быстро реагировать на действия конкурентов, изменение потребностей заказчика или рыночных условий.

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

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

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

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

Недостатки Agile

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

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

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

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

Эта статья и другие полезные ресурсы click.ru — после бесплатной регистрации

Вы получите доступ к функционалу экосистемы:

  • Все рекламные площадки в одном окне
  • Мастер маркировки любой рекламы
  • Профессиональные инструменты для решения рутинных задач (дашборды, защита от скликивания и многое другое)
  • Возврат до 16% на контекстную и таргетированную рекламу
  • Бесплатный доступ в платные маркетинговые сервисы
Эта статья и другие полезные ресурсы click.ru – после бесплатной регистрации