Каталог курсов

Онлайн-обучение

Перейти в каталог курсов


Agile

Что такое методология Agile

Что такое методология Agile

Agile - это гибкая методология управления проектом на основе взаимосотрудничества с командой и заинтересованными сторонами. В рамках определения Agile все рабочие процессы также разбиваются на этапы, образуя единый цикл, пока совершенствование продукта не будет полностью завершено. Этот цикл всегда включает в себя планирование, реализацию и оценку результатов, которые также дробятся на итерации (популярный синоним - спринт), то есть последовательные шаги разработки. Такой подход обеспечивает команде целостное видение конечного продукта и стабильное, организованное решение определенных задач - от более простых к более сложным.

Одна из характерных характеристик Agile заключается в том, что эта методология гарантирует высокий уровень вовлеченности сотрудников, так как в процессе разработки Agile регулярно проводятся встречи с командой, поддерживается связь с заказчиком и тщательно освещаются все детали прогресса. Вдобавок Agile позволяет в случае необходимости увеличивать срок итераций, возвращаться к предыдущим или ставить новые с новыми задачами, если в ходе разработки возникли дополнительные проблемы или условия. Именно поэтому управление проектами Agile предназначается прежде всего для организации работы в сфере IT и разработки программного обеспечения или технологических продуктов.

Agile-манифест

В 2001 году семнадцать IT-специалистов отправились на горнолыжный курорт в штате Юта, где собирались весело провести свой отпуск за катанием на лыжах и вкусной едой. Однако вместе с этим компания специалистов неожиданно занялась вопросом систематизации подходов к разработке ПО, в результате чего они и назвали себя группой Agile Alliance. И хотя на тот момент методология Agile еще не существовала (появилось лишь ее название, был создан Agile-манифест - краткий документ с перечислением 12 принципов наиболее эффективной разработки ПО. Этот документ стал ответом на растущую потребность IT-сообщества в альтернативном подходе к работе с технологиями с целью облегчить управление командой и ведение документации. Манифест Agile конкретизировал идеи, на основе которых впоследствии и появилась современная методология Agile.

12 принципов Agile

12 принципов Agile

Agile Манифест включает в себя следующие принципы:

  1. Главный приоритет любой разработки - удовлетворение запросов клиентов.

  2. Изменения допустимы и приветствуются даже на последних этапах разработки, если они позволяют усовершенствовать продукт и усилить конкурентное преимущество заказчика.

  3. Продукт должен демонстрироваться заказчику регулярно на разных этапах работы, поэтому эти этапы предпочтительно делить на наиболее короткие отрезки времени.

  4. Все заинтересованные в проекте стороны должны работать вместе в одной команде ежедневно в течение всего периода разработки.

  5. Команде необходимо обеспечить комфортную рабочую обстановку, доверить им самостоятельное выполнение задач и предоставлять любую необходимую поддержку.

  6. Самым эффективным способом передачи информации является общение лицом к лицу.

  7. Успех проекта во многом предопределяет рабочее программное обеспечение, которое используется для его реализации.

  8. Развитие проекта должно быть последовательным и устойчивым, в едином темпе, с возможностью продления дедлайнов.

  9. Постоянное техническое совершенствование и совершенствование в области дизайна продукта способно обеспечить ему максимальную маневренность.

  10. Минимизация лишней работы также способствует успеху проекта.

  11. Самые эпические архитектурные решения и дизайнерские идеи возникают у самоорганизующихся команд.

  12. Команда должна регулярно корректировать свою работу и обсуждать способы сделать продукт еще лучше на совместных встречах.

Ключевые компоненты и инструменты Agile

Для эффективной реализации Agile могут использоваться следующие инструменты:

  • Пользовательские истории в Agile - это упрощенное описание потенциальных пользователей, их запросов и потребностей, которые вносятся в «блоки» и являются основой для построения следующих «этажей» фреймворка. Пользовательские истории гарантируют, что команда достигнет не только целей заказчика, но и удовлетворит запросы будущих клиентов продукта.

  • Agile-доска - инструмент для совместной работы команды, который представляет собой визуальное отображение текущих, законченных и будущих задач, а также уровень прогресса в их решении. Эта доска доступна для всех членов команды и может создаваться как онлайн при помощи облачных программ, так и офлайн непосредственно в офисе.

  • Бэклог продукта - это перечень всех функций с их кратким описанием, которые должен иметь продукт в конечном результате. Впоследствии их также можно использовать для маркетинга.

  • Spike - формат активности, который применяется командой Agile тогда, когда в ходе спринта они столкнулись с неизвестной и неожиданной задачей. Данная активность может включать в себя самые разные способы аналитики и обсуждения, от мозгового штурма до кластеризации, на выбор команды.

Церемонии Agile

Церемонии Agile

В контексте Agile церемонии или, проще говоря, встречи команды носят регулярный характер и, как правило, происходят каждый день для обсуждения готовности текущих задач и проблем. На крупных же встречах, которые проводятся два раза за спринт (в начале и конце), также проводится ретроспектива пройденного пути. Повседневные встречи никогда не длятся больше 15 минут и нацелены лишь на то, чтобы члены команды могли поделиться возникшими сложностями и в случае необходимости совместно разработать более комфортный и эффективный маршрут работы, что, помимо повышения качества результата, также способствует вовлечению и укрепляет отношения внутри коллектива.

Agile и Scrum

Agile и Scrum - два понятия, которые часто считают синонимами и которые сложно противопоставить друг другу, так как они являются частями одного целого. Так, определение Agile представляет собой теоретическую методологию, своего рода «рабочую философию», которая определяет ценности и принципы работы. Scrum же - это набор инструментов, который позволяет реализовать принципы Agile на практике.

Несмотря на то, что Agile может использовать в качестве инструментария и другие методы (например, Scaled Agile Framework или Канбан), чаще всего заимствуются именно инструменты Scrum. Итерация или спринт - это как раз один из компонентов Scrum, как и обозначение Мастера, Владельца продукта и других ролей.

Agile vs Waterfall

Agile и Waterfall представляют собой два абсолютно разных подхода к реализации проектов. Если продакт-менеджмент Agile итеративный и гибкий, базирующийся на циклах и союзе всех участников бизнес-процессов друг с другом, а также допускающий внесение изменений и новых задач, то Waterfall - его противоположность.

Методология Waterfall строго последовательна, основана на принципе Release Train и не допускает возможности возвращаться к прошлым итерациям или добавлять новые. Хоть заинтересованные стороны в ней также работают совместно, они лишены самостоятельности и свободы действий. За счет своей линейности и условных ограничений Waterfall является более простой методологией работы. Однако она также включает в себя проектирование и планирование реализации проекта, определение требований, разработку необходимых элементов, проверку качества и техническое обслуживание.

Роли в Agile

Все члены команды не просто выполняют задачи в рамках своей компетенции, но и распределяются по ролям. Так, структура команды в Agile обязательно включает в себя:

  • Руководитель группы. Если ценности Agile комбинируются с методологией Scrum (а такая разновидность и практикуется чаще всего), то руководитель получает своеобразный титул «Scrum-мастер». В комбинации с другими методологиями его также могут называть Team coach или Project lead. Выполняя функции формального и неформального лидера в Agile, скрам-мастер отвечает за техническое снабжение команды, распределение ресурсов и задач, отслеживание прогресса и помощь в решении возникающих проблем. Для этой роли особенно важны soft skills, навык управления командой, планирование спринта Agile, умение составлять графики, понимание отраслевой специфики. Многое также зависит от настроя мастера.

  • Разработчик. Это член команды, который отвечает за реализацию проекта. В команде разработчиков может быть неограниченное количество человек, но если Agile использует принципы Scrum, то в команде должно быть не больше 7-8 человек. Именно devops отвечают за моделирование, программирование, дизайнерские решения, тестирование и все ключевые рабочие процессы.

  • Владелец продукта. Это по сути заказчик продукта, который является главным ответственным и самым дисциплинированным лицом проекта, определяет список требований и элементов разработки, принимает жизненно важные для бизнеса решения и своевременно предоставляет актуальную информацию о рынке.

Заинтересованные лица. В эту категорию входят все, кто прямо или косвенно имеет к проекту отношение. Например, потенциальные пользователи, инвесторы, менеджеры по продажам, разработчики связанных и интегрированных систем и т.д.

Жизненный цикл разработки программного обеспечения Agile и рабочий процесс

Цикл разработки по модели Agile состоит из следующих этапов:

  1. Разработка концепции

На данном этапе многое зависит от владельца продукта, то есть заказчика, поскольку именно он определяет масштаб и рамки проекта. Если проектов несколько, то они расставляются по приоритету. Все условия и требования фиксируются в специальном документе, как и ожидаемые результаты с оптимальными практиками Agile. Все это должно быть изложено максимально кратко, так как в процессе разработки документ и требования могут дополняться. На этой стадии владелец продукта лишь оценивает необходимое время на реализацию проекта и его стоимость, проводит подробный анализ и оценивает готовность команды приступить к работе посредством покера планирования или любой другой оценочной техники.

  1. Запуск работы

После разработки концепции начинается сбор команды разработчиков. Владелец продукта сам оценивает компетенции имеющихся у него кандидатов и отбирает самых лучших из них, после чего предоставляет команде необходимые ресурсы и инструменты. После этого команда приступает к проектированию, то есть созданию макета продукта и строительству его архитектуры. При помощи диаграмм и анализа целевой аудитории конкретизируются требования к продукту и прописываются его обязательные функции.

  1. Итерации

Далее работа над продуктом разбивается на короткие этапы продолжительностью от 2 до 4 недель, называемые итерациями. Это самый долгий этап Agile-цикла, так как он подразумевает выполнение всей основной работы. Руководитель команды, то есть Scrum-мастер, распределяет задачи согласно компетенциям набранных специалистов и контролирует, чтобы перед тем, как команда перейдет к следующей итерации с новыми задачами, были выполнены задачи прошлой итерации. Цель данного этапа в том, чтобы создать базовый функциональный продукт, который можно будет затем доработать и усовершенствовать.

  1. Тестирование

Готовый базовый продукт тестируется с точки зрения функциональности, дизайна и удобства сначала на команде разработки, а затем на выборке из целевой аудитории. В процессе команда проверяет чистоту кода, устраняет возникающие ошибки и выявляет слабые стороны продукта для дальнейшей его корректировки. После того как этот этап завершается и продукт доработан с точки зрения выявленных дефектов, продукт запускается в производство в том виде, который приобрел во время финальной (корректирующей) итерации.

  1. Техническое обслуживание

После того как программное обеспечение становится доступным для клиентов, команда сосредотачивается на его технической поддержке. Так, разработчики отслеживают и исправляют ошибки, выявленные самими пользователями, обеспечивают стабильность системы и параллельно с этим обучают пользователей пользоваться их продуктом. На этом этапе могут быть запущены новые дополнительные итерации с целью обновить функции продукта, внедрить новые функции и устранить не замеченные ранее ошибки.

  1. Вывод из эксплуатации

Данный этап наступает по двум причинам: либо ПО заменяется более новой и совершенной версией, либо ПО устаревает и становится непригодным для компании. Команда разработчиков в данном случае уведомляет пользователей о скором прекращении технического обслуживания ПО и либо переводит пользователей на новый продукт, либо закрывает доступ к нему по истечении оговоренного срока.

Каждый из данных этапов может включать в себя множество итераций, поскольку в Agile запрещено переходить к следующему этапу, пока на предыдущем не будет достигнут минимальный желаемый результат.

Инструменты Agile

Инструменты Agile

Сегодня существует огромное множество сервисов и платформ, предназначенных специально для реализации подхода Agile на практике. Наиболее известными и надежными из них являются:

  1. ClickUp. Позволяет спланировать спринты и каждый процесс в Agile, установить стори поинты и отслеживать прогресс работы над проектом. Включает в себя управление данными, задачами, статусами, документами и автоматизацию всех спринтов.
  2. Jira. Чаще всего применяется для выявления и отслеживания ошибок программного обеспечения, однако также предлагает возможности для самостоятельной настройки посредством языка JQL. Самостоятельно тестирует продукты, контролирует выполнение задач и спринты, обрабатывает полученные данные, выводит статистику с отчетами и буквально берет на себя часть работы Scrum-мастера.
  3. GitHub. Система, фиксирующая в режиме реального времени все изменения, вносимые в продукт вашей командой, и каждую трансформацию в Agile до мельчайших деталей. Любые члены команды, от разработчиков до владельца продукта, могут работать над одним кодом одновременно за счет бесшовных облачных технологий, что также позволяет формировать и отслеживать требования и задачи.
  4. Lean Kit. Приложение, основанное на принципе «бережливого производства», то есть реализации проекта с точки зрения экономии ресурсов за счет своевременного выявления и устранения дефектов и неэффективных процессов. С точки зрения визуала представляет собой карточки с рабочими элементами и текущими статусами задач.
  5. Planbox. Приложение для контроля и оптимизации итераций, анализирующее продуктивность сотрудников в решении задач и отображающее метрики Agile в формате различных графиков. Благодаря этому команда может наглядно отслеживать, как далеко она находится от завершения спринта и всего проекта.

Сертификация Agile

Получение сертификата, подтверждающего владение методологией Agile, не считается обязательным. Как правило, сертификация может потребоваться специалисту по двум причинам:

  • Для того чтобы проверить уровень ваших знаний в контексте требований рынка. Многие специалисты и проект-менеджеры уверены, что мастерски владеют Agile, так как у них уже имеется опыт в управлении. Однако прохождение сертификации очень часто доказывает, что опыт этот ничего не стоит, и до мастерского владения Agile еще предстоит учиться и учиться.

  • Для того чтобы повысить свою профессиональную ценность в глазах работодателей. Многие IT-компании и команды, практикующие Agile на постоянной основе, серьезно относятся к профильному образованию и документальному подтверждению навыков. Чаще всего сертификаты Agile требуют компании-интеграторы, которые хотят продемонстрировать высокий рейтинг своего аутстаффинга, и компании-энтерпрайз, где сертификаты у сотрудников являются неотъемлемым аксессуаром для статусности компании. Также сертификация необходима для официального Agile-коучинга, если вы рассчитываете стать высокооплачиваемым консультантом или тренером.

Таким образом, если вы уже зарекомендовали себя в нише, владеете реальными навыками Agile на практике и в вашем портфеле есть кейсы, способные это доказать, то переживать о получении сертификата не стоит. Если же вы новичок в Agile и находитесь только в процессе освоения методологии, то прохождение и получение сертификата Agile станет хорошим образовательным и карьерным бонусом на старте.

Поделиться: