Из этого материала вы узнаете:
Что такое agile и о правилах его внедрения в работу сегодня должен знать каждый человек, который так или иначе связан с проектной деятельностью. Даже если вы просто являетесь скромным членом команды, эта информация все равно должна быть вам известна.
Благодаря agile-разработке можно правильно организовать рабочие процессы, сэкономить время и иные важные ресурсы. Сегодня подробно поговорим об особенностях такого подхода и расскажем про основные принципы применения.
История возникновения agile
Для того чтобы понять, что такое agile, нужно вернуться в семидесятые годы прошлого века. Именно тогда начались системные разработки программного обеспечения и активная работа над проектами.
Ключевым событием можно считать момент, когда в США было опубликовано исследование американского ученого Уинстон Ройса «Управление развитием крупных программных систем». В нем был проведен анализ недостатков действующих принципов разработки ПО и сделан вывод о том, что нужно отказаться от метода поочередного завершения каждого периода работы над программой и полностью изменить подход к данному процессу.
История возникновения agile
Его идея состояла в реализации фазового подхода. Он считал, что начинать работу нужно со сбора всех необходимых для реализации проекта требований и лишь затем заниматься структурой и дизайном ПО, прописывать код и осуществлять остальные необходимые действия.
На базе этой идеи удалось получить целый комплекс гибких методов разработки программного обеспечения, которые позволили исключить многочисленные трудозатратные и излишне усложненные процессы. Хронология появления методов была следующей:
- 1991 год – метод ускоренной разработки приложений RAD.
- 1994 год – метод разработки динамических систем DSDM.
- 1995 год – платформа гибкой разработки Scrum.
- 1996 год – гибкая методология разработки Crystal Clear и также экстремальное программирование XP.
- 1997 год – интерактивная методология разработки ПО FDD.
Перечисленные методы в последующем вошли в группу гибких методов создания программного обеспечения.
А в 2001 году на встрече семнадцати ведущих разработчиков ПО, которая состоялась в штате Юта, был совместно издан «Манифест о гибкой разработке программного обеспечения agile». Слово «agile» в данном случае было выбрано потому, что его можно перевести не только как «подвижный», «проворный», «быстрый», но и как «гибкий». Этот манифест стал общепринятой нормой для программистов во всем мире.
Основные идеи и принципы agile
В основе манифеста лежит четыре фундаментальных идеи и 12 принципов эффективного управления проектами. Разные варианты их использования являются базой для построения всех систем управления проектами, созданными с помощью принципов agile.
Итак, в чем суть agile, что это такое простыми словами? Основа идеи будет следующей:
- Процессы и инструменты вторичны – на первом месте люди.
- Документация не должна быть приоритетнее, чем рабочее ПО.
- Обсуждение условий контракта менее важно, чем сотрудничество с клиентами.
- Любой готовый план должен быть изменен без проблем в случае необходимости.
Основными принципами agile являются следующие:
-
Удовлетворять потребительские запросы, ритмично поставляя ПО для заказчиков и заблаговременно предупреждая их о вносимых изменениях.
-
Не устанавливать жесткие рамки для конечного продукта, а менять их в процессе разработки.
-
Поставлять рабочее ПО через определенное время (например, еженедельно или ежемесячно).
-
Находиться на связи с заказчиком во время всего процесса разработки.
-
Создавать благоприятные условия для работы команды, мотивировать ее членов на успешное выполнение задач проекта.
-
Обеспечивать идеальные условия для коммуникаций между сотрудниками, занимающимися разработкой.
-
Изменять прогресс лишь при условии, что это повысит функциональность ПО и соответствует запросам клиента.
-
Следить за непрерывным темпом и оптимальной скоростью работы.
-
Обращать внимание на технические детали и дизайн, так как это дает возможность регулярно совершенствовать продукт и улучшать его качество.
-
Стремиться к простоте рабочего процесса и разработке ПО, которое будет удобно и понятно для потребителя.
-
Повышать уровень самостоятельности команды – обмен идеями в процессе непосредственного общения разработчиков увеличит вероятность получения качественного продукта.
-
Поддерживать уровень конкурентоспособности, проявляя умение адаптироваться к условиям постоянно меняющейся внешней среды.
Особенности применения agile-разработки
Говоря о том, что такое agile-методология, нужно прежде всего обратить внимание на визуальный контроль. Простым и удобным инструментом контроля являются цветные карточки, каждая из которых фиксирует информацию о стадии разработки – окончание планирования работы над элементом конечного продукта, степень готовности и т. д. Визуализация процесса способствует тому, что у всех участников проекта формируется одинаковый взгляд на его текущее состояние.
При условии, что клиент также может следить за ходом выполнения своего заказа и находится в постоянном контакте с командой, все процессы получения информации участниками проекта проходят быстрее. Тот факт, что все вопросы решаются коллегиально, исключает опасность недопонимания и является основой для эффективной деятельности и быстрого достижения желаемого результата.
Особенности применения agile-разработки
Совместная деятельность и прозрачность процесса разработки позволяет очень быстро находить оптимальные варианты выхода из затруднений.
Особую роль играет в данном случае руководителя проекта. Он не нацелен на то, чтобы отдавать распоряжения и требовать их точного исполнения. Его роль – лидер, определяющий вектор деятельности команды и правила ее осуществления. Весь процесс agile-управления также является очень гибким и строится по принципу адаптации к существующим задачам.
К основополагающим принципам Agile-методологии также относится обязательное разделение проекта на части. Каждая команда при этом может сосредоточить свои усилия на выполнении полученной задачи, а весь процесс разработки значительно упрощается.
Навыки и знания, полученные в процессе работы над определенным циклом, помогают членам команды повысить уровень своей компетентности, а анализ возникших ошибок исключает вероятность их повторения в ходе реализации следующих проектов.
Разбирая, что такое agile-подход, обязательно нужно упомянуть о таких значимых мероприятиях, как спринты. Это промежутки времени, находящиеся в рамках дедлайна, во время которых команда должна успеть справиться с определенными задачами. С их помощью команда может увидеть текущий результат и оценить собственные действия.
Попробуем описать данный подход на примере и разъяснить подробнее, что это такое в системе работы agile-команды. Допустим, время проекта делится на 10 спринтов продолжительностью по 10 дней каждый. То есть в течение десятидневного спринта разработчики встречаются ежедневно. Цель встречи – обсудить состояние дел и увидеть уровень достижений.
Встречи эти очень короткие – не более четверти часа. Но за это время каждый участник команды должен получить ответы на вопросы:
-
Чем я был занят вчера?
-
Что я буду делать сегодня?
-
Какие препятствия могут помешать моей эффективной работе?
Все это дает возможность контролировать происходящее, определять стадию разработки для каждого члена команды, заранее устранять возможные трудности и препятствия на пути к конечному результату. Если сформулировать в нескольких словах, что такое внедрение agile-методологии, то нужно указать необходимость соблюдения следующих условий:
- Четкое понимание значения проекта.
- Активное взаимодействие команды с клиентом.
- Пошаговая процедура выполнения действий.
- Нацеленность на конечный результат.
- Небольшая численность каждой рабочей подгруппы (7-9 участников).
Сегодня менеджмент-проекты с поддержкой agiel чаще всего реализуются в IT-сфере. Но уже можно отметить наличие положительного опыта применения этой системы в бизнесе, обучении и других деловых сферах. Гибкое управление выбирают в качестве основы своей деятельности многочисленные фирмы и государственные структуры.
Методы управления проектами с использованием agile-методологии применяются правительствами Нигерии и Новой Зеландии, Пенсионным фонд Норвегии, компанией – разработчиком ПО Return Path, компанией – производителем кондитерских изделий Oreo, крупнейшей IT-компанией Hewlett-Packard, ПАО «Сбербанк» и другими правительственными и бизнес-структурами.
Поскольку методы менеджмента проектов каждая организация выбирает в соответствии со своими задачами, существует большое количество вариантов управления проектами на основе agile. Изучить особенности этих методов также важно, как понять суть методологии.
Преимущества и недостатки agile
Как у любой другой методологии, у agile есть свои положительные стороны и недостатки, о которых обязательно нужно иметь представление. Прежде всего отметим наличие большого количества достоинств.
Самое главное из них – гибкость. Применение этой методологии исключает необходимость строго соблюдать последовательность операций на каждом этапе деятельности. Ее задача заключается в том, чтобы в любой момент перестроить работу под запросы и пожелания потребителя конечного продукта.
Наличие в agile-подходе принципа спринт-этапов позволяет регулярно контролировать качество продукта в процессе его создания и практически исключает возможность возникновения дефектов на выходе.
Agile-проекты запускаются в кратчайшие сроки, обеспечивают непрерывную связь членов команды между собой, позволяют регулярно общаться с заказчиком и гибко реагировать на его запросы и любые другие изменения. Но тем не менее минусы у данной методологии все же имеются.
Например, регулярная обратная связь с клиентом и меняющиеся запросы могут сдвигать сроки выполнения работ и способствуют увеличению времени работы над проектом. Среди заказчиков порой встречаются те, кто постоянно будет требовать улучшений, не обращая внимания на уже предпринятые командой усилия для достижения предполагаемого результата.
Следующий недостаток связан с необходимостью адаптации проектной документации в случае изменения условий. К тому же при несвоевременном информировании о том, что такое изменение произошло, agile-команда может продолжить работу на основании уже неактуальной документации, что приведет к необходимости возвращаться на исходные позиции.
И третьим минусом agiel является организация обязательных встреч. В них, несомненно, заложен определенный смысл, но наряду с повышением эффективности они могут стать причиной, которая хоть и на время, но отвлекает от решения текущих задач.
К минусам также можно отнести непрерывное общение с заказчиком, сложность разработки долгосрочных планов, особый подход к подбору высококвалифицированных специалистов и разработку системы их мотивации. Кадровые задачи особенно актуальны в процессе внедрения agile-управления в деятельность компании.
Советы по внедрению agile в работу
Опыт компаний, руководствующихся в своей работе нормами данной методологии, говорит о том, что такое внедрение требует соблюдения определенных принципов agile-культуры и проведения ряда обязательных мероприятий.
Прежде всего необходимо выбрать метод, подходящий под специфику ваших условий, после чего поставить цель и описать важнейшие задачи. Очень четко должно быть просчитано время основного дедлайна и определены сроки спринтов. Не менее важно определить оптимальную численность членов команды и т. д. В завершение необходимо еще раз подумать над тем, насколько хорошо выбранный метод будет отвечать заявленным требованиям.
Советы по внедрению agile в работу
Внедрение нового подхода к принципам работы организации не может пройти успешно, если ваша компания недостаточно хорошо готова к изменениям. Нужно не только знать, что такое agile, каковы его базовые идеи, но и быть способными реализовывать их на практике. Для этого нужна команда хорошо подготовленных профессионалов, прошедших обучение у специалистов agile.
Поэтому одним из этапов процесса изменений является сотрудничество с опытным специалистом, на практике способным продемонстрировать, в чем заключается суть основных принципов, как проводятся спринты, какие функции закрепляются за членами команды и т. д. При его содействии формируется новая команда, происходит распределение функционала, подбираются инструменты рабочего процесса.
Первый опыт реализации проекта можно считать завершающим этапом внедрения. Вряд ли он пройдет идеально гладко, но это будет реальная адаптация методологии к специфике компании, в ходе которой придет окончательное понимание того, что такое agile.
Автор: Владимир Сургай