Введение
Подход к управлению проектами Agile был разработан как более гибкий и эффективный способ вывода продукции на рынок. Английское слово agile означает способность быстро и легко двигаться. Соответственно, подход Agile позволяет командам проектов легче и быстрее адаптироваться к изменениям.
Количество неизвестных во многих сегодняшних проектах превышает возможности их адекватной обработки в рамках традиционной методологии управления проектами. Такая неопределенность сильно усложняет документирование требований и успешную адаптацию к изменениям.
Из этого руководства вы узнаете о сути методологии Agile, а также о том, на каких проектах целесообразно использовать гибкий подход и о способах его эффективного внедрения.
Что такое методология Agile?
Методология Agile представляет собой подход к управлению проектами, использующий для организации проектов четыре ценности и 12 принципов.
В манифесте Agile (Agile Manifesto) заявлены следующие четыре ценности:
- Люди и взаимодействие важнее процессов и инструментов.
- Работающий продукт важнее исчерпывающей документации.
- Сотрудничество с заказчиком важнее согласования условий контракта.
- Готовность к изменениям важнее следования первоначальному плану.
Метод Agile состоит в разбиении планирования и выполнения проектов на итерации (спринты), что позволяет непрерывно адаптировать и совершенствовать план, объем работ и структуру на протяжении всего проекта.
Agile-проекты требуют итерационного подхода, который обеспечивает регулярное и последовательное предоставление заказчикам или клиентам все более работоспособных продуктов. Этот инновационный метод управления проектами гарантирует вашей проектной группе возможность раз за разом выпускать конкретные продукты без задержек из-за изменений и уточнения требований.
Гибкая методология предполагает активное участие клиентов и частую проверку хода работ как со стороны проектной группы, так и со стороны клиента.
Для управления Agile-проектами можно использовать разные фреймворки. К самым популярным относятся:
- Scrum
- Канбан
- Экстремальное программирование
- DSDM
Посмотрите видео о методологии Agile, в котором подробно рассказывается об этом подходе, его ключевых принципах и фреймворках.
История методологии Agile
По разным источникам, зарождение методологии Agile началось в 1990-х, в 1975-м или даже в 1960-х годах. Однако все согласны в том, что укоренение Agile началось с Манифеста гибкой разработки программного обеспечения, также известного как манифест Agile.
Впервые манифест Agile был издан в феврале 2001 года для создания нового способа управления разработкой программного обеспечения. Его текст был написан группой ведущих разработчиков, собравшихся на горнолыжном курорте в штате Юта для обсуждения отраслевых проблем и потенциальных решений.
Они осознали, что отрасль нуждается в лучшем, более быстром способе вывода продуктов на рынок. Их цель состояла в разработке новых методов для внесения изменений в продукты и проекты без ущерба для стоимости или графика производства.
Они пришли к выводу, что разделение проекта на короткие итерации позволит ускорить разработку и тестирование. В конце каждой итерации (спринта) следует получать отзывы клиента (ретроспективы) и вносить изменения, не дожидаясь конечного продукта.
Таким образом, изначально манифест Agile создавался как решение для управления разработкой ПО, но с тех пор методология Agile расширилась и теперь включает различные сферы деятельности.
12 принципов методологии Agile
«Манифест гибкой разработки программного обеспечения» определяет 12 принципов, которым должны следовать все проекты. Вот они:
- Наивысшим приоритетом для нас является удовлетворение потребностей заказчика благодаря регулярной и ранней поставке ценного программного обеспечения..Первый принцип методологии Agile предполагает, что клиенты должны получать результаты работы по проекту или итерациям через регулярные промежутки времени на протяжении всего проекта, а не один финальный продукт в самом конце.
- Изменение требований приветствуется, даже на поздних стадиях разработки. Agile-процессы позволяют использовать изменения для обеспечения заказчику конкурентного преимущества.Авторы манифеста установили, что в рамках традиционного управления проектами трудно реализовать запросы на изменения, полученные в последний момент. Этот принцип туверждает, что Agile-проекты способны адаптироваться к любым изменениям, сколь угодно поздним, с минимальной задержкой.
- Работающий продукт следует выпускать как можно чаще, с периодичностью от пары недель до пары месяцевПланы Agile-проектов состоят из коротких интервалов, достаточных для быстрого выпуска работоспособных продуктов. Команды часто разбивают Agile-проекты на спринты, или проектные интервалы, продолжительностью 1–4 недели, каждый из которых заканчивается сдачей продукта.
- На протяжении всего проекта разработчики и представители бизнеса должны ежедневно работать вместе.Этот принцип методологии Agile подразумевает, что регулярное общение со всеми участниками проекта необходимо для успеха проекта. Обычно проводят короткие ежедневные совещания с участием как проектной группы, так и других заинтересованных сторон.
- Над проектом должны работать мотивированные профессионалы. Чтобы работа была сделана, создайте условия, обеспечьте поддержку и полностью доверьтесь им.Ключевая концепция методологии управления проектами Agile – назначить подходящих исполнителей на соответствующие позиции и предоставить им независимость для выполнения поставленных задач. Важно создать проектную группу на основании не должностей в компании, а способностей сотрудников. Менеджер проектов должен не чрезмерно контролировать, а мотивировать и поддерживать проектную группу.
- Непосредственное общение является наиболее практичным и эффективным способом обмена информацией как с самой командой, так и внутри команды.Создатели манифеста Agile подчеркивали важность близкого размещения команд и участников проекта друг к другу, поскольку личное взаимодействие эффективнее, чем общение по электронной почте или телефону. Если разместить вашу команду в одном офисе не представляется возможным, рекомендуется проводить видеоконференции, ведь на них тоже можно использовать невербальные средства общения.
- Работающий продукт — основной показатель прогресса.В методологии Agile важно предоставлять готовые и функционирующие результаты работы. Это всегда должно быть важнее, чем выполнение дополнительных требований, например составления проектной документации. Другие показатели (такие как учет времени) также уходят на второй план после предоставления работающего продукта.
- Инвесторы, разработчики и пользователи должны иметь возможность поддерживать постоянный ритм бесконечно. Agile помогает наладить такой устойчивый процесс разработки.Согласно этому принципу, у Agile-проектов должен быть стабильный темп выполнения каждого цикла итерации или спринта в проекте. Подобная разбивка по частям должна предотвратить добавления переработок или срыв сроков при регулярном предоставлении функционирующих продуктов. Она также создает цикл работы, который команда может повторять необходимое количество раз.
- Постоянное внимание к техническому совершенству и качеству проектирования повышает гибкость проекта.В Agile-проекте основное внимание уделяется улучшению конечного продукта и непрерывному достижению прогресса. Каждая итерация всегда должна быть лучше предыдущей, а команда всегда должна искать новые возможности для инноваций.
- Простота — искусство минимизации лишней работы — крайне необходима.Цель Agile-проекта – сделать столько, сколько необходимо для успешного выполнения проекта и соответствия поставленным требованиям. Необходимо избегать любой дополнительной документации, шагов, процессов или задач, не представляющих ценности для клиента или раздувающих общий объем работы.
- Самые лучшие требования, архитектурные и технические решения рождаются у самоорганизующихся команд. Методология Agile основана на убеждении, что для достижения лучших результатов и разработки лучших продуктов нужны мотивированные, самостоятельные и высококвалифицированные команды. У них должны быть полномочия на самостоятельную организацию и создание необходимой структуры. Им нужно предоставить свободу взаимодействовать и внедрять инновации на свое усмотрение, не давить на них чрезмерным контролем.
- Команда должна систематически анализировать возможные способы улучшения эффективности и соответственно корректировать стиль своей работы.Успешная самомотивированная команда должна концентрироваться на совершенствовании навыков и процессов для непрерывного роста и процветания. Команда должна регулярно оценивать результаты работы, в том числе обсуждать возможности улучшения.
Преимущества методологии управления проектами Agile
У методологии управления проектами Agile есть множество преимуществ для следующих типов организаций и проектов:
- Любой проект, меняющийся с течением времени, без четкого объема работ и требований на начальном этапе.
- Организации, работающие в быстро меняющейся среде, например в сфере технологий.
- Организации, тесно сотрудничающие с клиентами и другими сторонними участниками на протяжении всего проекта.
- Компании, стремящиеся улучшать продукцию и организацию процессов и ищущие возможности для внедрения инноваций.
- Проекты со множеством взаимозависимых задач, требующих тесного взаимодействия участников команды и регулярного общения для достижения успеха.
- Компании, которым перед разработкой конечного продукта сначала нужно создать прототип.
- Проекты, требующие быстрой ответной реакции от заинтересованных сторон по каждой итерации перед переходом к следующей версии или варианту.
Перечислим 5 основных преимуществ применения метода Agile:
Непрерывное контактирование с клиентами
Традиционные подходы к управлению проектами обычно предполагают контакт проектной группы с клиентом только в начале и конце проекта. Если требования или ожидания клиента не были четко сформулированы в начале или изменились со временем, проектная группа не узнает об этом до самого конца. При подходе Agile непрерывный контакт с клиентом на протяжении всего процесса и представление результатов итераций гарантируют правильность действий команды и полное соответствие конечного продукта желаниям клиента.
Способность к адаптации
Что делать, если ваш клиент сообщает в середине работы над проектом, что ему нужно изменить объем работ? При традиционном подходе к управлению проектами это либо невозможно будет сделать вообще, либо значительно повлияет на стоимость и сроки выполнения проекта. В методологии Agile изменения вносятся с минимальными усилиями, независимо от стадии работ.
Ускоренная сдача результатов
Метод Agile предполагает непрерывную разработку, то есть ваша команда будет регулярно предоставлять функционирующие продукты. А значит, клиенту больше не придется ждать конечного результата 6–12 месяцев, он будет получать рабочую версию через короткие промежутки, обычно раз в 2–4 недели.
Минимизация рисков проекта
Поскольку ваша команда регулярно разрабатывает версии продукта и сразу получает реакцию клиента, риск провала проекта сокращается до минимума. Разбив большой проект на итерации, вы сократите риски до провала одной итерации или варианта. Вы с большей вероятностью сможете обнаруживать небольшие проблемы на ранних стадиях, когда их проще решить, и вам не придется справляться с большой проблемой на стадии финального тестирования перед окончательной сдачей работ. Если обнаружится проблема или проект нужно будет отменить, на это уйдет меньше времени и средств.
Непрерывное внедрение инноваций
Методология Agile поддерживает взаимодействие и непрерывное совершенствование для внедрения инноваций и разработки новой продукции и функционала. Размещение команд в одном офисе и проведение ежедневных совещаний благоприятствуют творчеству и созданию новых идей. Подход Agile поддерживает «меритократию идей», когда предпочтение отдается лучшей идее независимо от авторства. Проектная группа, другие заинтересованные стороны и клиент могут совместно определять функциональные возможности и характеристики продукта.
Когда не следует применять методику управления проектами Agile
Несмотря на множество преимуществ методологии Agile, она может не подойти для некоторых проектов или организаций. Но как понять, когда не нужно использовать метод управления проектами Agile? В чем его плюсы и минусы?
Приведем 4 примера, когда методология Agile не подойдет:
Четкий и неизменный результат проекта
Agile поможет сократить стоимость внедрения изменений и наличия сомнений за счет разбивки проекта на итерации, или этапы управления проектом. Однако если сомнений практически нет, а возможность внесения изменений минимальна, Agile не станет вашим эффективным решением. Например, если вы работаете в сфере с жесткими регулятивными нормами или заранее известными требованиями к проекту, вам не нужно использовать итерационное планирование и разрабатывать множество вариантов.
Ваш проект предполагает многократное повторение результов
По определению, проект – это «ограниченная по времени совокупность мероприятий с началом и окончанием для создания уникального продукта, услуги или результата». А если клиент просит вас построить 5 одинаковых домов и вы решаете создать отдельный проект и сформировать проектную группу по каждому дому? С помощью метода Agile результатом станут не 5 одинаковых, а 5 уникальных домов. Один из недостатков этой методологии – в том, что она не подходит для повторного воспроизведения.
Заинтересованные стороны не хотят использовать Agile
Agile-проект требует постоянного контактирования с заинтересованными лицами. Однако не у всех есть время, возможности и желание непрерывно взаимодействовать по проекту. Если проект обладает небольшой ценностью и почти не подвержен рискам, они могут выбрать более традиционный подход к участию: только на ключевых этапах и при финальной сдаче работ.
Ваша компания не может поддержать метод Agile
Если ваша компания или проектная группа не готова к применению цикла разработки Agile, у вашего проекта могут появиться дополнительные риски.
5 признаков того, что ваша компания не готова к применению метода Agile:
- Нет понимания сути методологии Agile. Если ваша команда и компания не обучены пользованию этой гибкой методологией или не обладают полным пониманием ее принципов, практических методов и моделей, они не готовы к ее применению.
- Не согласны заинтересованные стороны. Если кто-то не согласен применять Agile (будь то спонсор проекта или ключевой исполнитель), нужно решить эту проблему до начала использования методологии.
- Ваша организация не может поддержать ежедневное взаимодействие. Если есть серьезные препятствия для ежедневного взаимодействия и открытого сотрудничества между участниками команды, Agile может стать не лучшим решением.
- Структура компании не поддерживает активное взаимодействие между отделами. В Agile-проекте сотрудники из разных отделов проводят совещания, общаются и совместно работают над проектом. Если в вашей компании есть разногласия между отделами, вряд ли получится реализовать этот проект.
- В вашей организации много документации. Если в вашей компании нужно составлять большие объемы документации и множество отчетов, Agile может стать слишком дорогим решением. Один из 12 принципов гибкой методологии основан на сокращении отчетов по проекту, требований и матриц отслеживания.
Agile или Scrum
Метод Agile включает оптимальные способы организации проектов на основании 4 ключевых ценностей и 12 принципов разработки программного обеспечения, перечисленных в «Манифесте гибкой разработки». Возможно, вы уже изучали сравнение методик Scum и Agile. Scrum – это «методология управления проектами с акцентом на командной работе, подотчетности и разбивке на итерации для достижения четко поставленной цели». Scrum – это модель внедрения принципов, ценностей и практических методов Agile.
Разница между методологиями Agile и Scrum в том, что Scrum – это практическое руководство по применению подхода Agile к управлению проектами. Scrum содержит необходимые правила, роли, мероприятия, инструменты и возможности для успешного использования идеологии Agile.
Основное различие между Agile и Scrum: Agile – процесс, которого вы хотите достичь, а Scrum – инструмент для его успешной реализации. Зачастую Scrum и Agile взаимно друг друга заменяют, поскольку Scrum – самая популярная модель внедрения методологии Agile. Однако это не единственный способ планирования и управления Agile-проектом.
Управление проектами: Agile или Waterfall
Методологии управления проектами Agile и Waterfall (или каскадная методология) – два наиболее популярных метода организации проектов. При оценке способов планирования нового проекта вы наверняка начнете со сравнения методов управления проектами Agile и Waterfall для выбора наиболее подходящего.
Waterfall – более традиционный подход к управлению проектами с линейной структурой работы. Он идеально подойдет для проектов с четко установленными с самого начала сроками и требованиями к результатам. Другими словами, если основные проектные ограничения уже сформулированы и зафиксированы, вашим лучшим выбором станет Waterfall.
Ключевые принципы Waterfall:
- Предварительный сбор всех требований
- Выполнение всего объема работ структурированными, последовательными, заранее определенными этапами
- Выполнение тестирования после завершения разработки или конструирования продукта
Методика Agile, напротив, разработана для управления проектами с неизвестными ограничениями.
Как обсуждалось ранее, к методологии Agile относится разбивка проектов на итерации и гибкий подход. Эта методология позволяет планировать реализацию проекта поэтапно, то есть по спринтам, чтобы проект мог развиваться и совершенствоваться по мере получения новой информации.
При выборе между управлением проектами по принципам Waterfall или Agile все сводится к степени проработки конечного продукта и понимания результатов и требований проекта на стадии инициации.
Дополнительные ресурсы по методологии Agile
Ниже представлены ресурсы по методологии Agile для подробного изучения и успешного внедрения: