Agile

Автор статьи
Джулия Фатхутдинова

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

Agile переводится с английского как «гибкий». Этот подход возник в IT, но и получил распространение и в других отраслях.

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

Сравнение традиционной и Agile компании

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

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

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

Agile-манифест заявляет принципы и ценности гибкой разработки. Он составлен в 2001 году группой программистов. Полная версия документа опубликована на официальном сайте альянса.

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

Agile базируется на основных четырех ценностях, изложенных в манифесте.

Agile-манифест

Ключевые ценности Agile

Из этих ценностях возникают 12 принципов Agile-разработки.

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

Изменения требований к продукту приветствуются. Гибкие методы разработки позволяют улучшить и трансформировать продукт на любом этапе. То есть заказчик получит конкурентное программное обеспечение, которое соответствует актуальным требованиям и ситуации на рынке.

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

Скришнот сайта Mindbox

Разработчики Mindbox регулярно обновляют продукт

 

Обратная сторона быстрой поставки кода — техдолг. Это неоптимальные, компромиссные решения. Техдолг появляется, когда скорость приоритетнее качества. В результате программа работает, но её необходимо улучшать и дорабатывать.

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

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

Личное общение — лучший способ обмена информацией с командой и внутри нее. Поэтому Agile предполагает регулярные обсуждения и встречи онлайн или оффлайн. 

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

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

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

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

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

Скриншот сайта AvitoTech

Разработчики в AvitoTech работают в небольших кросс-функциональных командах

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

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

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

Полной противоположностью Agile среди классических методологий является Waterflow. «Водопадная» или каскадная модель подразумевает строгий поэтапный план. Сравним эти два подхода по ключевым характеристикам.

Agile Waterflow
Суть Гибкая модель разработки Жесткая последовательность процесса разработки
Сроки Меняются в процессе разработки и зависит от появления новых задач Фиксированные
Стиль управления Самоуправление и сотрудничество внутри команды Директивное управление, строгая иерархия
Общение в команде Неформальное Формальное
Роли в команде Взаимозаменяемые, сотрудники могут сами выбирать задачи для работы, совмещать несколько ролей Индивидуальные, развита специализация сотрудников, строгое распределение обязанностей
Участие заказчика Составляет техническое задание, дает обратную связь на каждом этапе разработки, вносит изменения в ТЗ по мере необходимости Составляет четкое техническое задание, определяет конечный вид продукта, принимает только конечный готовый продукт
Гибкость Изменения возможны на любом эпате разработки, так как промежуточные итоги работы подводят после каждой итерации (спринта) Изменения вносят только после того, как полностью завершена работа над продуктом

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

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

Таким образом компания повышает вовлеченность сотрудников и сокращает срок разработки. 

Интерфейс портала

Интерфейс портала «Большой Agile». Источник

Где используют гибкие методологии

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

Гибкие методы управления проектами подходят для стартапов и небольших проектов. Изначально Agile создавался для IT-компаний, которые разрабатывали программы, интерфейсы, игры. 

Сейчас его применяют и в других отраслях: автомобилестроении, производстве одежды, образовании. Различные инструменты Agile используют Toyota, Bosch, Tesla, SpaceX, Zara, «Газпром», «Сбер»,«Альфа-банк», «М.Видео».

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

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

Преимущества и недостатки Agile

У Agile-подхода есть много преимуществ для бизнеса:  

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

Недостатки и ограничения методологии:

  • Непредсказуемые сроки. Изменения могут появиться на любом этапе проекта и увеличить срок разработки.
  • Результат зависит от квалификации команды и внутреннего взаимодействия. Если один разработчик ушел, а на его место приняли другого, то это уже новая команда. Новичка с нуля придется вводить в контекст проекта и процессы.
  • Требует активного участия заказчика. Если у клиента нет времени или возможности дать обратную связь, срок может затянуться.
  • Потеря фокуса. Новые требования к продукту отвлекают от первоначальной цели, отодвигают во времени конечный результат. Вместо рабочего продукта можно бесконечно улучшать одну форму или функцию.
  • Сложно внедрить. Недостаточно научить команду пользоваться определенными инструментами, соблюдать правила и практики Agile. Необходимо обучить сотрудников ценностям и принципам, поменять мышление организации в целом. Кроме того Agile всегда нужно адаптировать под особенности и потребности каждой компании.
Agile в издательство «МИФ»

При внедрении Agile в издательство «МИФ» одной из ключевых задач было найти такой процесс управления проектами, который подходит корпоративной культуре компании

Основные методы управления проектами по Agile

К методам управления по Agile относятся Scrum, Kanban, Extreme Programming. Коротко рассказываем о каждом.

Scrum

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

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

Каждый цикл или спринт состоит из нескольких этапов:

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

Основные этапы работы над проектом по Scrum. Источник

Kanban

Kanban — это метод управления процессами с помощью визуализации текущих задач и процессов. Для этого используют виртуальные или оффлайн Kanban-доски.

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

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

Фотография Kanban-доски

«12 Storeez» внедрили Agile в период активного роста компании, чтобы сохранить качество и скорость развития. Благодаря методике Kanban удалось синхронизировать разные блоки производства и сопутствующие подразделения — склад, логистику, закупку

Extreme Programming

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

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

Agile: главное

Это общий термин для группы методов и подходов, основанных на ценностях и принципах гибкого управления проектами. К методам управления по Agile относятся Scrum, Kanban, Extreme Programming.

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

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

Вы нашли ответ?

0
0