Компания «Перфоманс Лаб» в рамках изучения рынка ПО опросила 350 руководителей отделов тестирования и IT-директоров из России. По результатам опроса, свыше 90% респондентов используют методологии Agile. Это помогает им адаптироваться к требованиям и тенденциям рынка, создавать востребованные технологичные продукты в короткие сроки и повышать профессионализм своих команд.
Исследование проходило в 2020–2021 годах. Теперь, когда многие компании работают в еще более нестабильных условиях, гибкие методики Agile становятся все популярнее.
Рассказываем, что собой представляет внедрение Agile в компании.
Agile — что это такое простыми словами
Agile (аджайл) переводится как «гибкий», «маневренный», «подвижный», «энергичный». Так называют подход к управлению проектами и разработке. Методика аджайл востребована в разных сферах. Ей руководствуются лидеры мирового рынка и сотни, а то и тысячи других организаций.
Основные компоненты и идеи Agile:
- Сотрудничество. Команда работает над задачами слаженно, участники обмениваются информацией и регулярно помогают друг другу. Чтобы процессы были максимально согласованными, сотрудники работают в одном офисе, либо постоянно сверяют результаты на онлайн-планерках — стендапах.
- Гибкость. Методики аджайл отлично работают в условиях неопределенности и быстрых изменений. Команда с готовностью адаптируется под новые требования заказчика или внешние обстоятельства, ведь сделать это в рамках короткого спринта гораздо проще, чем переписать один большой план.
- Обратная связь. В самом начале определите, как, когда и где вы будете получать комментарии от заказчика и коллег. Клиент должен быть вовлечен в процесс не меньше исполнителя — это одно из главных условий Agile.
- Продуктивность. Чтобы сократить время вывода продукта на рынок, сфокусируйтесь на том, без чего задачи никак не выполнить. Согласно манифесту Agile, для достижения цели можно жертвовать регламентами, условиями контракта, стандартными инструментами, документацией, первоначальными планами.
- Адаптация. Корректируйте рабочие процессы на основе опыта и обратной связи. Проект от этого лишь выиграет. К внезапным нововведениям должны быть готовы все: заказчики, исполнитель, рабочая группа.
- Динамичный темп. В аджайл многое зависит от скорости работы. Даже при изменении сроков нельзя замедляться или останавливаться. Если есть возможность потратить на проект несколько недель, а не месяцев, используйте все инструменты, чтобы воспользоваться ей.
Рабочий процесс разбивают на этапы (спринты). Каждая итерация выглядит следующим образом:
Ценности и принципы Agile
Agile продвигает следующие идеи:
- Люди ценнее процессов и инструментов. Основное внимание уделяется командной работе, сотрудничеству и коммуникации между участниками проекта.
- Работающий продукт важнее детальных отчетов. Основной показатель успеха — результат, которым доволен заказчик. Документооборот не должен отвлекать участников проекта, перегружать их информацией.
- Открытое сотрудничество полезнее переговоров и контракта. Непрерывное взаимодействие с клиентом даст гораздо больше для понимания его потребностей, чем формальности.
- Готовность к изменениям важнее планов. Аджайл выбирают, когда есть вероятность рисков и постоянных корректив. Сама методика изначально предназначена для работы в меняющихся условиях.
Рабочий процесс разбивают на этапы (спринты). Каждая итерация выглядит следующим образом:
Помимо ценностей есть также 12 принципов, которые лежат в основе работы всех Agile-команд:
- Удовлетворенность заказчика зависит от непрерывной работы над ПО и скорости сдачи готового продукта.
- Изменения условий и требований к работе нормальны как на ранних, так и на более поздних стадиях проекта.
- Поставка работающих компонентов продукта занимает недели, а не месяцы. Если не получается, значит, итерации недостаточно продуманы — спринты слишком короткие или в них берут слишком много задач.
- Сотрудничество между деловыми партнерами и разработчиками — тесное, ежедневное, налаженное.
- Реализацией проекта занимаются целеустремленные люди, на которых можно положиться.
- Предпочтительная форма общения — лицом к лицу.
- Основной показатель прогресса — работающее ПО. Все остальное вторично.
- Уделять внимание стоит прежде всего техническому совершенству и дизайну продукта.
- Способность поддерживать постоянный темп работы — гарант устойчивого развития.
- Вместо того чтобы создавать сложные и избыточные решения, команда Agile-разработчиков максимально упрощает задачи и дизайн продукта.
- Сформированные в начале проекта команды должны самоорганизовываться и предлагать лучшие решения.
- Команда постоянно размышляет о том, как стать более эффективной, и вносит соответствующие коррективы.
Каждый принцип имеет более развернутое объяснение. Например, десятый, применительно к разработке программного обеспечения, может означать:
- Устранение избыточности. Избегайте ненужных функций, которые не приносят реальной ценности пользователям или бизнесу.
- Упрощение дизайна. Проектируйте простой и интуитивно понятный интерфейс, который легко использовать.
- Оптимизация кода. Разрабатывайте простые и понятные алгоритмы.
- Минимальное количество зависимостей. Исключите лишние связи между компонентами системы, чтобы сделать ее более гибкой и легкой.
В каждом проекте трактовка принципов Agile будет индивидуальной.
Методики Agile
Наиболее популярные:
- Scrum. Выполнение задач организуют в виде спринтов продолжительностью две–четыре недели. Весь процесс движется от разработки более приоритетных функций к менее значимым. На ежедневных встречах (стендапах) обсуждают планы и анализируют ошибки.
- Kanban. Основан на визуальном управлении рабочим процессом с помощью досок и карточек. Позволяет наглядно представить команде и заказчику весь поток работы.
- Extreme Programming (XP). Здесь команды уделяют особое внимание техническим практикам: парному программированию, тестированию на ранних стадиях и непрерывной интеграции.
- Lean Agile. Приоритет — устранение всех видов переработок, таких как ожидание, избыточный документооборот, лишние опции.
- Crystal. Целое семейство методологий, внутри каждой из которых — свой фреймворк. Их отличительная черта — человекоориентированность, а именно обеспечение участникам команды возможности обучаться и обмениваться опытом.
- Feature-Driven Development (FDD). Фокусировка на разработке конкретных функциональных возможностей (фич) и их интеграции в систему. Чтобы не допускать ошибок и не выполнять лишнюю работу, помните, что элементы должны быть полезны прежде всего для заказчика и его целевой аудитории.
- Dynamic Systems Development Method (DSDM). Подчеркивает важность достижения быстрых результатов. В рамках методики необходимо четко разграничить обязанности каждого, кто заинтересован в реализации проекта.
Методики можно сочетать.
Плюсы и минусы Agile
Преимущества | Недостатки |
|
|
Нередко компании сочетают Agile с другими методологиями. Например, гибкие техники на ранних этапах проекта позволяют обеспечить понимание процесса и приоритизировать задачи. А классические методы (Waterfall) — создать сотрудникам комфортные условия на протяжении основного времени работы.
Как внедрить Agile в компании: пошаговая инструкция
Внедрение подхода Agile — многогранный процесс.
Шаг 1. Подготовка и обучение:
- Проведите анализ текущих возможностей и проблем компании, чтобы понять, что изменится с внедрением Agile.
- Обучите и подготовьте команду.
- Выясните, какая методика Agile подходит вам больше всего. Например, в ходе обучения вы можете заметить, что специалисты охотнее применяют Scrum, Kanban или XP.
- Подготовьте инструменты и ПО, проведите инструктаж. Например, в планировщике задач или CRM можно организовать системную работу над проектом.
Шаг 2. Определение проекта-пилота:
- Выберите небольшой проект, который станет тестовым для внедрения Agile. Он не должен быть слишком простым, иначе вы не сможете объективно оценить пользу методологии.
- Сформируйте команду специалистов.
Шаг 3. Планирование:
- Определите с заказчиком итерации и согласуйте план.
- Составьте список задач (бэклог).
- Разделите крупные задачи на более мелкие, которые можно будет выполнить за короткий срок.
Шаг 4. Выполнение:
- Команда работает над задачами в соответствии с выбранными методами Agile и условиями спринта.
- В конце итерации покажите результаты заказчику и коллективу. Получите обратную связь и при необходимости скорректируйте план.
Шаг 5. Доработка:
- На последнем этапе каждого спринта проводите ретроспективу. Выявите, что работало хорошо, что можно улучшить, какие изменения стоит внести.
- По мере успешного завершения проекта-пилота масштабируйте Agile на другие проекты и команды.
- Продолжайте совершенствовать процесс внедрения Agile, адаптируя его к потребностям компании и каждого коллектива.
Частые вопросы о внедрении Agile
Аджайл — это подход к управлению проектами и разработке программного обеспечения. Он помогает сделать процесс более гибким и продуктивным. В Agile на первом плане сотрудничество, обмен информацией и быстрая адаптация к изменениям в рамках проекта.
Через регулярные итерации и обратную связь процесс разработки постоянно совершенствуется. Непрерывное взаимодействие с заказчиком помогает лучше понимать его потребности и в итоге создать качественный продукт.
Работа команды становится прозрачной, корректировать и согласовывать планы — в разы проще. Специалисты повышают свои навыки самоорганизации и самоуправления.
Начните с внедрения на тестовой группе. Последовательность этапов:
- Ознакомьтесь с основами Agile и его методологиями. Обучите ключевых сотрудников и руководителей.
- Создайте команду для внедрения Agile, определите роли и обязанности.
- Оцените текущие процессы в организации. Решите, в каких проектах или отделах вы будете внедрять Agile в первую очередь.
- Решите, какой метод Agile подходит лучше всего для вашей организации (например, Scrum, Kanban, XP). Подберите подходящие инструменты для выбранного метода.
- Составьте команду(ы) для работы по Agile в формате эксперимента. Объясните специалистам преимущества методологии.
- Выберите небольшой проект-пилот для внедрения аджайл.
- Определите требования к функциональности для первой итерации (спринта).
- Создайте бэклог задач, которые сотрудники будут выполнять в рамках проекта-пилота. Разбейте его на более мелкие задачи для работы в течение итераций.
- Запланируйте и проведите первый цикл (спринт).
- Покажите результаты пилотного проекта заказчику и команде.
- Получите обратную связь и определите, что можно улучшить.
После успешного пилота масштабируйте Agile на всю компанию:
- Обучите больше сотрудников Agile-подходам.
- Регулярно проводите ретроспективы и анализируйте, что работало хорошо, а что можно усовершенствовать.
- Вносите корректировки в процессы и практики Agile на основе опыта и обратной связи.
- Старайтесь постепенно внедрять принципы методологии в корпоративную культуру и ценности организации.
- Поддерживайте команды в их инициативах по внедрению аджайл, поощряйте участников.
- Готовьтесь к изменениям и совершенствуйте процессы по мере необходимости.
Алгоритм отражает общую схему внедрения, но он не универсален. Каждая организация уникальна, поэтому шаги могут отличаться.
Agile — это гибкая методология, которая возникла, когда разработчики начали осознавать ограниченность традиционных подходов к созданию ПО. Манифест Agile написали в 2001 году 17 независимых программистов. Они не всегда соглашались друг с другом, но пришли к консенсусу по четырем перечисленным выше ценностям.
Для того чтобы внедрить Agile, в компании необходимы свобода, доверие, прозрачность процессов, высокий уровень самоорганизации и ответственности сотрудников. Рамки их компетенций должны быть достаточно широки, чтобы понимать специфику деятельности других специалистов и, при необходимости, включаться в их работу. В такой команде каждый член активно общается с коллегами из других отделов, ясно видит общую картину проекта, его цели и ценность. Только на такой «почве» новая методология быстро принесет плоды.
Если процессы компании регламентированы, управление — строго вертикальное, сотрудники мало общаются друг с другом и занимаются только строго определенными задачами, внедрить Agile не получится. Потребуется коренные организационные изменения и проработка новой корпоративной культуры.
- Руководство само не в полной мере придерживается принципов Agile. Это дезориентирует сотрудников и вносит путаницу.
- Команда не подготовлена к Agile. Работа по новому подходу превращается в попытки понять, кто за что должен отвечать.
- Переход к Agile слишком резкий или, наоборот, затянутый. Это затрудняет адаптацию команды.
- Выбрана неподходящая методика, принципы которой не соответствуют культуре организации. Противоречие приводит к тому, что коллектив не понимает, как работать.
- Нет инструментов и налаженных каналов коммуникации между членами команды, заказчиками и заинтересованными сторонами.Без взаимодействия процесс не будет двигаться к результату.
Чтобы исключить эти проблемы, нужно переходить к работе по Agile поэтапно и пользоваться услугами специалистов по внедрению.
Сроки внедрения Agile зависят от различных факторов, включая размер компании, текущий уровень самоорганизации команды, количество проектов и сотрудников. Значимые результаты возможны уже после первых месяцев.
Что в итоге
- Аджайл — это способ справиться с неопределенностью.
- Agile — общий термин для набора фреймворков и практик, основанных на постулатах Манифеста гибкой разработки программного обеспечения. Перед тем как внедрить Agile в компании, ознакомьтесь с теоретической базой.
- После согласования организационных вопросов с заказчиком команда делит работу на итерации — спринты. В результате каждого из них получается функциональный продукт или его часть.
- Все участники процесса фокусируются на создании качественного и уникального продукта. Это важнее любых формальностей.