Сейчас проекты редко развиваются строго по составленному заранее плану: появляются новые технологии, меняются запросы клиентов и финансовая составляющая. Поэтому многие компании перешли к гибким подходам. В блоге ГигаЧат разбираем наиболее известный из них — Agile.
Agile — это философия управления проектами и организации работы команды, которая предполагает быструю адаптацию к изменениям, регулярную обратную связь от заказчика (конечного пользователя) и создание продукта небольшими частями.
Подход можно сравнить с ремонтом квартиры, в котором постоянно участвует ее владелец. Вместо того чтобы сразу покрасить стены, уложить пол, расставить мебель по первоначальному плану и показать результат, строители согласуют и демонстрируют каждый этап работы. Если владелец понимает, что хочет заменить краску на обои или поменять расположение мебели, строители могут сделать это, не испортив уже готовые результаты ремонта.
Agile работает точно так же в маркетинге, дизайне, разработке ПО и других сферах. Команда разбивает работу на небольшие этапы и показывает их результаты заказчику — он может протестировать продукт и дать обратную связь, чтобы получить улучшенную версию в будущем.
Agile Manifesto — это документ с описанием ценностей и принципов подхода, опубликованный в 2001 году.
До 2000-х годов IT-проекты строились на модели Waterfall. Она предполагает четкое и неизменное техническое задание, заранее понятный результат, подробную документацию. Следуя ей, команды сначала собирали требования, описывали все этапы работы, проектировали систему, а затем приступали к программированию и тестированию. В конце результат представляли заказчику.
Модель хорошо работает в проектах с изначально понятными требованиями (которые не будут меняться), но в разработке ПО такое бывает редко. Пока команда создает продукт, могут измениться технологии, законы, ожидания пользователей или бизнеса. Из-за того, что клиент не участвует в разработке, выяснить, все ли функции реализованы так, как ожидалось, можно только на финальном этапе.
Agile-манифест создали 17 программистов, собравшихся на горнолыжном курорте штата Юта в феврале 2001 года. Они понимали недостатки используемых тогда подходов и разработали Agile как альтернативу. Уже после метод вышел за рамки IT — теперь на него опираются в маркетинге, производстве, образовании, логистике, консалтинге и т. д.
Цель Agile — создание продукта, который максимально соответствует требованиям рынка и конечных пользователей. Поэтому в центре находится не выполнение формального плана, а удовлетворение запросов заказчика.
Гибкая методология считает нормальным, что требования могут быстро меняться на любом этапе проекта по множеству причин, включая появление конкурентов и уточнение пожеланий заказчика после тестирования версий продукта. Более того, изменения рассматриваются как возможность улучшить результат.
Готовность к корректировке направления работы не говорит о том, что у команды нет стратегии, поскольку общая цель проекта сохраняется.
Еще один принцип методологии — постоянно демонстрировать заказчику или пользователям версии решения. Они не должны содержать весь запланированный функционал, главное — чтобы они уже приносили пользу и могли использоваться для решения части задач. Каждая следующая версия становится логическим продолжением предыдущей, постепенно увеличивая ценность продукта.
В гибких командах специалисты разных направлений (например, разработчики, дизайнеры, аналитики, менеджеры) работают в тесной коммуникации. Они регулярно обсуждают текущие задачи, делятся результатами и совместно решают проблемы. Для этого могут проводиться короткие ежедневные встречи, длительные совещания, презентации итогов этапа работы и т. д.
Постоянное взаимодействие помогает избежать ситуаций, когда важная информация становится известной слишком поздно.
Команды в рамках Agile обладают высокой самостоятельностью: вместо жесткого контроля со стороны руководства они получают возможность самим выбирать методы решения задач. При этом управляющий определяет общие приоритеты и результат, который ожидается.
Необходимо улучшать не только продукт, но и способы его создания. Поэтому после каждого спринта команды анализируют свою работу: что получилось хорошо, что можно улучшить, какие трудности возникали и т. д. Это может касаться планирования задач, качества коммуникации, распределения ответственности и других рабочих процессов.
В этом разделе кратко расскажем о наиболее известных методологиях Agile. Понять, как использовать их в работе поможет ГигаЧат — бесплатная нейросеть от Сбера.
Scrum используют для управления сложными проектами с постоянно меняющимися требованиями. Особенность методологии в том, что работа разбивается на спринты — короткие временные интервалы (1–4 недели), когда команда решает заранее согласованный объем задач. В конце спринта коллектив демонстрирует результат руководству или заказчику, собирает обратную связь и начинает планировать следующую итерацию.
Три главные роли в Scrum:
Kanban отличается от Scrum тем, что предполагает непрерывное решение задач (без строгого деления на спринты). Главный инструмент методологии — Канбан-доска, которая отображает все этапы работы. Классический вариант предлагает три колонки: «Нужно сделать», «В работе», «Готово». Со временем задачи перемещаются между колонками — на доске команда видит состояние проекта в режиме реального времени. Если нужно, команда может добавить свои колонки, например, «Тестирование» или «Согласование».
Lean фокусируется на максимальном создании ценности для клиента при минимальных затратах ресурсов. Другими словами, цель — найти и устранить все действия, которые не создают ценности для конечного потребителя. Например, избыточное документирование, ожидание согласований, повторное выполнение одной и той же работы. Обычно Lean используют вместе с другими Agile-методологиями.