Agile Software Development — это термин, обозначающий набор практик и методик, основанных на 12 принципах и 4 идеях Manifesto for Agile Software Development. К таким подходам относят Scrum, FDD (Feature-Driven Development), Extreme Programming, методики Crystal.

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

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

Зачем нужна автоматизация agile-процессов?

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

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

Что даёт автоматизация?

  1. Сокращает время на выполнение типовых задач. Автоматизация стандартных действий работника позволяет высвободить время для более важных и сложных задач.
  2. Уменьшает влияние человеческого фактора. Чем типичнее задача, тем выше вероятность ошибки. Автоматизация же позволяет свести эту вероятность к минимуму.
  3. Помогает контролировать работу сотрудников. Такие системы позволяют отследить продуктивность каждой отдельно взятой команды.
  4. Даёт быстрый доступ к информации. Автоматизация позволяет иметь всю актуальную информацию под рукой. Если подготовка отчёта вручную может занять несколько рабочих дней, то программа справится с этой задачей за несколько секунд.
  5. Повышает эффективность бизнеса. Автоматизация позволяет организовать и упорядочить все процессы в компании, тем самым помогая быстрее и легче принимать важные решения.

Основные инструменты для автоматизации agile-процессов

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

Наиболее популярные agile-практики

Agile представляет собой семейство гибких методов управления, основанных на общей философии, принципах и идеях. Однако каждый метод имеет свой собственный набор практик и терминологию. Рассмотрим наиболее популярные методы.

Scrum

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

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

Использование Kanban-досок (досок задач)

Формально Kanban является частью концепции бережливого производства (lean production) и не относится к гибким методикам. Но один из инструментов Kanban – использование карточек и доски задач активно используется в большинстве гибких подходов.

XP — Extreme Programming

XP — самый дисциплинированный и гибкий метод, целью которого является создание продукта в условиях быстро меняющихся требований. Отличительная особенность ХР заключается в том, что данный метод применим только в области разработки ПО. ХР придаёт большое значение взаимодействию клиентов и разработчиков, парному программированию, а также стандартам кодирования, благодаря которым код выглядит целостно.

Crystal Methodology

Crystal — один из самых лёгких и гибких подходов из семейства Agile. В основе данного метода лежат два предположения:

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

Также Crystal включает в себя три основных свойства, необходимых для успешной работы: частую доставку кода, усовершенствование посредством рефлексии и «осмотическую» коммуникацию, которая осуществляется членами команды в пределах одного помещения.

Стоит отметить, что Crystal является семейством методов, которое включает в себя огромное количество вариантов, подходящих для различных проектов. Так, самая простая классификация Crystal — по размеру команды: Crystal Clear для команд от 2 до 8 человек, Crystal Yellow для 8–20 человек, Crystal Orange для команд от 20 до 50 человек и Crystal Red — от 50 до 100 человек в команде.

Feature-Driven Development (FDD)

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

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

Инструменты для управления agile-проектами

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

  • Доска задач (канбан доска) — это инструмент визуализации проекта. Доска должна состоять минимум из трёх столбцов: «сделать», «в процессе», «сделано». Так, в любой момент понятно, на каком этапе находится каждая задача.
  • Бэклог (backlog) — это список требований к функциональности, упорядоченный по их степени важности. Элементы этого списка называются пользовательскими историями (user story).
  • Поинт (point) — это умозрительная мера сложности выполнения задачи относительно других задач. Часто используются нелинейные шкалы (числа Фибоначчи, степени числа 2 и т.п.)
  • Диаграмма сгорания задач (Burndown Chart) — это график, позволяющий отслеживать прогресс проекта. На горизонтальной оси показываются дни, на вертикальной — количество оставшихся задач. Дополнительно строится идеальный график сгорания, показывающий запланированный прогресс в каждый день проекта.
  • Definition of Done (DoD) представляет собой список критериев, с помощью которых можно оценить степень готовности проекта.
  • Velocity — метрика, помогающая оценить количество задач, которое команда способна решить за промежуток времени.

Рассмотрим наиболее популярные инструменты для автоматизации agile-процессов

Jira

atlassian.co

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

Azure DevOps Server

azure.microsoft.com

Azure DevOps Server (ранее Team Foundation Server) — это инструмент управления жизненным циклом приложения в Visual Studio. Рабочий процесс можно регулировать с помощью agile-методов, используя готовые шаблоны для Scrum и доски Kanban.

VersionOne

collab.net

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

Asana

asana.com

Asana — инструмент, позволяющий в полной мере использовать возможности Kanban. Здесь можно применять теги, интегрировать сторонние сервисы, а также управлять несколькими проектами в рамках одной команды.

Rally

broadcom.com

Rally — это платформа, созданная для масштабирования методов agile-разработки. Rally помогает расставить приоритеты, распределить ресурсы и интегрировать команды между собой с помощью нескольких agile-методов.

ActiveCollab

activecollab.com

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

Trello

trello.com

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

SimpleOne

simpleone.ru

SimpleOne является облачной платформой для автоматизации всех сервисных бизнес-процессов, разработанной с учётом лучших практик (ITIL, VeriSM). Платформа, помимо прочего, позволяет автоматизировать управление микрокомандами, работающими по Scrum c использованием готовых встроенных инструментов. Преимуществом сервиса является возможность визуальной разработки и изменения автоматизированных процессов с минимальной необходимостью программирования.

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

Выбор инструмента, который поможет это осуществить, — важная и ответственная задача, для выполнения которой необходимо учитывать ряд факторов, таких как:

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

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

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