Как внедрять Agile-методологии в разработке IT-решений
Agile-методология изначально появилась в IT-компаниях и использовалась исключительно для разработки ПО, но со временем стала применяться и в других отраслях, поэтому ее постулаты доступны и для иных менеджеров. Agile– это философия, которая подразумевает использование принципов и системы ценностей, с которыми работает команда проекта.
Они перечислены в Agile-манифесте. Принципы: работа в команде, получение работающего продукта, устойчивое развитие проекта. Популярность Agile в разработке IT-решений обусловлена вовлеченностью заказчика, скоростью реализации, тестированием и параллельными разработками, минимизацией документооборота и удовлетворенностью команд. В этой статье своиv опытом делится it компания Centicore Group.
Преимущества Agile для разработки IT-решений
Главные плюсы методологии:
- Ускорение выхода продукта на рынок.
- Гибкие методологии разработки.
- Повышение качества и удовлетворенности клиентов.
- Улучшение коммуникации внутри команды.
Благодаря тому, что работоспособность продукта проверяется на самых ранних стадиях разработки продукта, убыстряется процесс его создания и выхода на рынок. При использовании принципов методологии команда получает возможность адаптироваться к изменениям в проекте. Применение гибкого подхода позволяет избежать проблем из-за устаревания требований и необходимости переработки из-за непредвиденных изменений.
За счет ускорения разработки и улучшения качества получаемого продукта улучшается удовлетворенность продуктом. Улучшение коммуникации происходит за счет организации регулярных встреч, использования визуальных компонентов, проведение ретроспектив.
Методологии Agile
Выделяют 2 главных метода Agile - Scrum и Kanban. Популярностью пользуется и ExtremeProgramming (XP).
Scrum: как работать спринтами
В Scrum используются спринты и ретроспективы. Спринт представляет собой цикл работы над продуктом стандартной продолжительностью 1-4 недели. Сначала производится его планирование на основании предыдущего цикла, в результате чего получают промежуточный продукт, называемый инкрементом.
На ежедневных встречах обсуждаются результаты работы. Инкремент представляется заказчику. В процессе ретроспективы команда анализирует проделанную работу в течение спринта. В спринте выделяется бэклог, в котором ставятся задачи для конкретного цикла.
Kanban: визуализация и управление задачами
С помощью Канбан объем работы подразделяется на отдельные задачи. При применении метода используются Канбан-доски, позволяющие визуализировать процесс работы команды. Здесь расставляются задачи по приоритетности с концентрацией на самых основных из них, после чего ищут перегруженные этапы работы.
ExtremeProgramming (XP): упор на качество кода
Эта методология помогает упростить разработку, минимизировать документацию и обеспечить качественную обратную связь с заказчиками. На этапах разработки предусмотрено проведение тестирования еще до написания кода, в результате чего определяется действие функционала программы и обеспечивается потоковая проверка качества. Предусматривается парное программирование и обзор кода для выявления ошибок.
Разница между методологиями и их использование в разных проектах
В Scrum определены четкие роли и временные спринты, подходит для работы со сложными задачами и стартапами. Канбан отличается тем, что не имеет зафиксированных итераций, роли определены нечетко или могут отсутствовать. Прогноз результата выполняется на основе анализа предыдущей работы для создания равномерной нагрузки на каждого члена команды и ее в целом.
ExtremeProgramming (XP) сосредоточена на повышении качества продукта и адаптации к изменяющимся требованиям клиента. Доминирующий акцент – на технической стороне разработки.
Этапы внедрения Agile в IT-компании
Внедрение Agile в IT-компании происходит в 8 этапов:
- Подготовка к делегированию полномочий от руководителя сотрудникам.
- Беседа с сотрудниками.
- Проектирование экономической модели.
- Создание конкретных задач.
- Разработка структуры бизнес-процессов.
- Установление границ.
- Формирование системы мотивации.
- Разработка очередного цикла улучшений.
Но прежде всего нужно определиться с целью и выбрать метод работы.
Практические инструменты для Agile-команд
Главные инструменты для Agile:
- Jira, Trello, Asana для управления задачами.
- Slack и MicrosoftTeams для общения.
- Confluence для документации.
- CI/CD.
Jira, Trello, Asana
Jira– мощный инструмент, использующийся в IT-компании. Разработчик использует гибкую ценовую политику, благодаря чему она доступна для крупных и небольших разработчиков. Здесь представлен обширный функционал, включающий диаграмму Ганта, отчетность, мобильное приложение, но характеризуется неотзывчивым интерфейсом.
Trello– аналог Jira, использующий технологию Kanban. Визуальный инструмент представлен досками, карточками и списками, что делает его очень удобным для команды. Командная работа обеспечивается не только интерфейсом, но и функциональностью, интеграциями, документацией и поддержкой. В бесплатной версии программы доступна только 1 доска.
Asana позволяет осуществлять управление проектами и предлагает хорошую функциональность, удобный интерфейс, интеграции. Имеет бесплатную версию с лимитом на количество участников и проектов.
Slack и MicrosoftTeams
И то, и другое решения позволяют обмениваться файлами, проводить видеоконференции и совместные чаты. В отличие от MS Teams в Slack регистрация проводится по электронной почте. При выборе приложения для обмена большими файлами предпочтительнее использовать MS Teams. В Teams данные защищены с помощью MicrosoftIntune, в Slack нет аналогичного сервиса.
В бесплатной версии Slack бесконечные аудио- и видеозвонки предусмотрены только в формате «один на один», в платной – ограничение на 15 пользователей, в MS Teams во всех версиях ограничение в 250 пользователей. Последний улучшает возможности записи экрана, а в Slack это не реализовано. Однако Slack интегрируется более чем с 1000 приложений, а MS Teams– менее чем 200. И то, и другое приложение являются кроссплатформенными.
Confluence
Центр, предоставляющий возможности для совместной работы. Позволяет просматривать график спринтов и отслеживать его в календарях команды. Если участники команды получают расширенные права они могут работать над документами в закрытом режиме до момента их публикации. По своей сути, представляет собой Canva для управления проектами.
Здесь представлены шаблоны для различных проектов, допустимо использование макросов, позволяющих изменять формат, макет страницы, отображать мультимедиа и упорядочивать содержимое.
CI/CD (непрерывная интеграции и доставки) в Agile
Использование CI/CD (непрерывной интеграции и доставки) в Agile ускоряет процесс разработки основного продукта. При этом повышается качество кода и улучшается безопасность, то есть присутствует оптимизация IT-проектов.
Частые ошибки при внедрении Agile
Самыми часто встречающимися ошибками при внедрении Agile являются:
- Отсутствие четкой цели и плана.
- Неподготовленность команды к изменениям.
- Неверная интерпретация Agile как полной свободы действий.
- Недостаток прозрачности в задачах и результатах.
В Agile требования могут меняться, из-за чего конечный результат сильно отличается от первоначально задуманного. Поэтому важно определять цели и требования в начале спринта, способствовать коммуникации между членами команды.
Чтобы ликвидировать неподготовленность команды к изменениям необходимо выявить причины, повысить командный настрой или проконсультироваться у специалиста, обладающего соответствующей квалификацией.
Неверная интерпретация Agile как полной свободы действий способна привести при внедрении методологии к появлению ошибок. Полная свобода не предоставляется, поскольку от сотрудников требуется получение результата. Невозможно выбирать одни инструменты, использующиеся одной частью команды и другие, применяющиеся другой.
Недостаток прозрачности в задачах и результатах при использовании Agile проявляется в:
- нерелевантности или отсутствии документации;
- краткосрочном планировании;
- появлении после ряда итераций новых требований;
- снижении качества получаемых продуктов.
Для повышения прозрачности нужно проводить визуальный контроль и работать с командой в общем пространстве.
Примеры успешного внедрения Agile
В 2015 году мобильный оператор МТС привлек консультанта по Agile, оказавшего помощь в процессе разработки ПО и устранении проблем, связанных с многочисленными согласованиями и отсутствием обратной связи от клиентов. Были внедрены команды, процессы согласования упростились, из-за чего МТС смогла уменьшить сроки разработки ПО.
Советы по долгосрочному успеху с Agile
Успех в длительной перспективе при работе с Agile достижим при:
- Постоянном обучении и совершенствовании.
- Регулярных ретроспективах.
- Адаптации методологии к конкретным условиям бизнеса.
Необходимы периодические тренинги в онлайн-школах, воркшопах, самостоятельно изучать литературу. Проведение регулярных ретроспектив позволяет проводить качественный анализ. Для адаптации методологии к условиям бизнеса нужно, помимо непрерывного обучения, определиться с целями и ценностями, иметь поддержку у топ-менеджмента, сформировать кросс-функциональные команды, интегрировать гибкие практики и постоянно оценивать результаты.


