Методология Agile
Методоло́гия Agile (аджайл, эджайл; от англ. agile – гибкий, проворный), семейство «гибких» методов и методологий управления проектной работой, которые помогают рабочей группе эффективнее мыслить, принимать решения и осуществлять деятельность. Представляет собой обобщающий термин для целого ряда подходов и практик (таких как система организации производства канбан, методологии Scrum, XP, Lean и т. д.), основанных на ценностях Agile-Манифеста гибкой разработки программного обеспечения (ПО) и 12 принципах, лежащих в его основе. Эти подходы также иногда называют фреймворками, или agile-методологиями.
Методология Agile (Agile Software Development) применяется как эффективная практика организации труда небольших групп (10–15 сотрудников), выполняющих творческую работу, при управлении ими комбинированным (либеральным и демократическим) методом.
Методология Agile возникла в ИТ-среде, а затем распространилась и на другие сферы – от промышленной инженерии до искусственного интеллекта.
История возникновения методологии Agile
Начало создания agile-методологий относится к 1970-м гг., когда американский учёный У. Ройс, занимаясь проблемами методологии разработки программного обеспечения, создал документ «Управление развитием крупных программных систем» (Royce. 1970).
Позже, в 1990-х гг., были внедрены гибкие методы разработки ПО.
Основные идеи и принципы Agile-Манифеста гибкой разработки программного обеспечения
В феврале 2001 г. в штате Юта (США) состоялась встреча 17 разработчиков ПО, на которой обсуждались различные методы разработок программного обеспечения и решались вопросы повышения их гибкости. После этой встречи был принят Манифест о гибкой разработке программного обеспечения, или Agile-Манифест. В основе этого манифеста лежат 4 основные идеи (ценности) и 12 принципов, описанные далее.
Идеи Agile-Манифеста
Четыре основные идеи Agile-Манифеста заключаются в следующем.
1. Люди всегда важнее технических средств. Agile-подход к управлению подразумевает персонализированное отношение к каждому проекту и всем участвующим в нём заинтересованным лицам. При этом команды ориентируются на постоянное взаимодействие, а не на жёстко распланированный выпуск обновлений продукта, регламент и бюрократические процедуры.
В менеджменте компании настоящая ценность выражается в виде индивидуального подхода к каждом клиенту и участнику рабочей команды, а также возможности каждого сотрудника высказывать свои идеи по поводу выработки необходимого решения для потребителя. Например, предоставление гибких рабочих часов сотрудникам, возможность удалённой работы, поощрение инициативы со стороны сотрудников без длительных процедур согласования принимаемых решений с руководителем проекта.
2. Работающий продукт имеет приоритет перед документацией. Команды, реализующие гибкий подход к работе, предпочитают работу на результат, отдавая приоритет работающему продукту или эффективному решению рабочей задачи, нежели подготовке исчерпывающей документации. В работе применяют гибкие программные решения, а не традиционный набор документов.
В области управления организацией данная ценность может быть реализована путём наиболее быстрого предоставления заказчику вариантов продукта без доведения каждого плана или образца до совершенства. Например, предоставление дизайн-агентством ряда макетов полиграфических материалов без полной проработки, с целью получения обратной связи от заказчика и оперативной корректировки продукта. Так минимизируются бесполезные трудозатраты на продукт, который не удовлетворяет заказчика.
3. Тесное сотрудничество с клиентами и понимание их проблем важнее условий контракта. Сотрудничество является одним из ключевых аспектов работы гибких команд. Регулярные обновления, обратная связь по проекту от клиентов и заинтересованных сторон являются основой для повышения эффективности работы и внесения в неё необходимых корректив.
Способность идти на компромисс во взаимодействии между заказчиком и исполнителем без излишней бюрократизации позволяет наиболее полно удовлетворить нужды клиента. Так, в контракте на предоставление услуг по организации мероприятия event-агентством может быть указано ограниченное число консультаций, но коммуникация с клиентом может требовать большей частоты взаимодействия без внесения изменений в контракт.
4. Всегда нужно быть готовыми внести изменения в проект. Agile-команды чутко реагируют на изменения и успешно адаптируются к новым условиям и вызовам.
Примером внедрения этой ценности в управление компанией может служить ситуация, в которой компания, предоставляющая образовательные услуги (например, онлайн-школа по изучению иностранного языка), вносит изменения в учебную программу в зависимости от индивидуального запроса обучающихся непосредственно в процессе освоения курса.
Принципы Agile-Манифеста
Двенадцать принципов Agile перечислены далее.
1. Наивысшим приоритетом для компании является удовлетворение потребностей заказчика проекта благодаря регулярной и ранней поставке ценного ПО. Главное для agile-команды – удовлетворённость клиентов, поэтому они в обязательном порядке представляют заказчикам результаты своей работы через регулярные промежутки времени, а не заставляют их ждать результата в конце проекта.
Данный принцип может быть применим не только к ПО, но и к различным индивидуализированным продуктам и услугам: например, регулярное предоставление заказчику промежуточных результатов работы компании-производителя одежды.
2. Изменение требований приветствуется даже на поздних стадиях разработки проекта. Agile-процессы позволяют использовать изменения для обеспечения конкурентного преимущества заказчика. В этом заключается их достоинство по сравнению с традиционными командами, которым, как правило, сложно управлять изменениями.
Регулярное внесение изменений делает возможным учёт пожеланий клиента даже на завершающих этапах предоставления услуги. Так, изменение цветовой гаммы реализуемого дизайн-проекта квартиры или дома сотрудниками дизайн-агентства становится возможным, если команда работает с применением гибких методологий.
3. Работающий продукт следует выпускать как можно чаще, с периодичностью от 2 недель до 2 месяцев. Agile-команды ценят постоянное общение с клиентами, а не жёстко распланированный выпуск обновлений, которые могут слишком далеко отстоять друг от друга по времени, что может оказаться неприемлемым для клиентов. Например, команды Scrum, которые также руководствуются методологией Agile, разбивают свою работу на периоды от 1 до 4 недель, известные как спринты. Работа с применением спринтов может осуществляться и в рамках производства продуктов, таких как разработка модели автомобиля, открытие кофейни и др.
4. На протяжении всего проекта разработчики ПО и представители бизнеса должны ежедневно работать вместе. Сотрудничество является основой методологии Agile, причём подразумевается взаимодействие не только между членами команды, но и с заинтересованными сторонами, разработчиками, клиентами и другими партнёрами компании.
5. В проекте должны быть задействованы мотивированные профессионалы: «...чтобы работа была сделана, создайте им условия, обеспечьте поддержку – и полностью им доверьтесь» (см. Lindsay. 2021). Agile-команды эффективны, поскольку в них работают только необходимые для проекта люди. Если участники такой команды получат поддержку, возможность работать вместе и требующиеся для работы инструменты, они достигнут успеха.
6. Непосредственное общение является наиболее практичным и эффективным способом обмена информацией как с самой командой, так и внутри неё. Главный принцип управления проектами – личное сотрудничество – примени́м и в нынешнее время при гибридных и удалённых моделях работы. Zoom и Teams представляют собой альтернативу телефонным звонкам и электронной почте, а в ключевых точках проекта возможны и личные встречи команд.
7. Основной показатель прогресса agile-команды – это работающий продукт. Смысл этого принципа заключается в том, что главной целью команды всегда является предоставление клиенту наиболее качественного результата. Таким образом, удовлетворённость клиента – главный показатель успеха проекта.
8. Инвесторы, разработчики ПО и пользователи должны иметь возможность беспрерывно поддерживать постоянный рабочий ритм. Многие команды изначально демонстрируют быстрый прогресс, который не получается сохранить до конца проекта.
9. Постоянное внимание к техническому совершенству и качеству проектирования повышает гибкость проекта. Каждый новый проект – это возможность для инноваций, а не для повторения одних и тех же идей.
10. Принципиальное значение имеет простота как искусство сократить до минимума лишнюю работу. Agile-команды не занимаются усложнением стоящих перед ними задач: они просто соблюдают проектные требования и качественно выполняют свою работу, а затем переходят к следующему проекту.
11. Лучшие требования, архитектурные и технические решения генерируются самоорганизующимися командами. Лучшие команды – это те, у которых есть лидер, предоставляющий им свободу самовыражения. Руководители нижнего и среднего звена управления редко улучшают качество работы и продуктивность команд, и agile-команды являются ярким примером успешных команд, не применяющих такой подход.
12. Команда должна систематически анализировать возможные способы повышения своей эффективности и соответствующим образом корректировать стиль работы. Методология Agile базируется на непрерывном совершенствовании, поэтому регулярные проверки эффективности команды в целом могут помочь избавиться от тех привычных способов работы, которые негативно влияют на эффективность труда, и добиваться бо́льшего.
Перечисленные выше принципы agile-методологии подчёркивают необходимость прислушиваться к пожеланиям клиентов при разработке любого проекта или программного продукта. Они делают акцент на готовности работать гибко и вносить изменения на протяжении всего процесса разработки проекта. При этом приветствуется совместная работа: чем теснее будет сотрудничество между сотрудниками и успешнее коммуникация, тем быстрее и эффективнее будет реализован проект. Существенное значение также имеет поддержка и мотивация членов команды, т. к. они будут работать лучше, чем те, кто недоволен условиями труда. Необходимо работать быстро и поддерживать постоянный темп работы, ничего не усложняя и адаптируясь к постоянно меняющимся условиям рынка, что позволит производить конкурентоспособные продукты.
Характерные черты методологии Agile
Характерные черты agile-методологии включают:
использование итеративной разработки проектов (подразумевающей выполнение работ параллельно с непрерывным анализом полученных результатов и корректировкой последующих этапов работы) и минимизацию рисков;
динамическое формирование и обеспечение реализации требований заказчика;
постоянное взаимодействие внутри рабочих групп;
самоорганизующиеся команды, состоящие из специалистов различного профиля;
коллективную ответственность.
Значимым аспектом применения agile-методов и методологий в управлении работой команды является тот факт, что гибкий подход следует применять не как набор отдельных техник, а как целостное мировоззрение и новую концепцию управления.
Команда, которая фокусируется только на отдельных практиках, может проигнорировать более глобальные цели, такие как улучшение коммуникации и оперативное реагирование на изменения.
Ключевые отличия традиционных методов управления работой команды приведены в таблице ниже (Стеллман. 2022).
Сравнение традиционных и гибких методов управления
Критерий сравнения | Традиционные методы управления | Гибкие методы управления |
Распределение ролей в рабочей команде | Несколько ролей: например, маркетолог и менеджер продукта, менеджер проекта. Между ними делится ответственность за создание продукта. | Один человек – владелец продукта – отвечает за продукт и возглавляет проект. |
Взаимодействие менеджера и рабочей группы | Менеджеры команды отделены от команды разработчиков: они выполняют разные процедуры, работают в разных отделах и располагают разными производственными мощностями. | Владелец продукта является членом команды, он постоянно и тесно сотрудничает со scrum-мастером (фасилитатором команды) и всей командой. |
Особенности этапа предварительной подготовки и планирования | Разработке проекта предшествуют обширное исследование рынка, планирование продукта и бизнес-анализ. | Минимальная предварительная работа проводится в основном для выработки общей идеологии и примерных оценок функциональности продукта. |
Целевые характеристики продукта | Предварительное исследование и определение характеристик продукта, во время которых разрабатываются и окончательно устанавливаются подробные требования к продукту. | Исследование продукта – это постоянный процесс, требования к конечному продукту возникают как его следствие. Отсутствуют фаза определённости и чёткое указание требований к рынку или продукту. Бэклог (перечень основных задач и целевых характеристик) продукта динамичен, и его содержание варьируется в зависимости от отзывов клиентов и пользователей. |
Получение обратной связи | Отзывы пользователей собираются на более позднем этапе – в ходе рыночного тестирования и после запуска (релиза) продукта. | Максимально быстрые и частые релизы вместе с краткосрочными обзорными совещаниями порождают ценную обратную связь от пользователей и клиентов, что позволяет создать продукт, который оценят клиенты. |