Из каких шагов состоит гибкий цикл разработки Agile

По какой-то причине Agile (Аджайл) многие разработчики воспринимают как самостоятельную методологию (фреймворк) работы над проектами. В реальности Agile – это скорее философия, общий подход, который объединяет целую группу гибких методологий (Scrum, Lean, Kanban и т.п.).

Вообще, методологии могут быть и не гибкими. Например, Waterfall. Лучшие практики для управления проектами можно посмотреть в нашем списке Топ-10.

Ниже остановимся на отдельном вопросе – из каких шагов будет состоять цикл разработки проекта по Agile-методикам.

О принципах Agile

Как сказано выше, аджайл – это не методика, это парадигма или общая модель. Поэтому у неё нет конкретных шагов или подробной документации. Это свод принципов, их всего 12, они были утверждены в 2001 году группой независимых разработчиков.

Официальную версию принципов на русском языке можно увидеть на сайте agilemanifesto.org.

  1. Высший приоритет отдаётся потребностям заказчика.
  2. Требования к проекту могут меняться на любом этапе, даже на поздних стадиях разработки.
  3. Цикл выпусков проекта должен быть частым (от 2 недель до 2 месяцев).
  4. Представитель бизнеса (заказчика) должен работать в команде.
  5. Над проектом должны работать только мотивированные профессионалы.
  6. Лучший способ обмена информацией в команде – непосредственное общение.
  7. Главный показатель прогресса – работающий проект (продукт).
  8. Ритм разработки может быть бесконечным, и заказчики/пользователи должны иметь возможность поддерживать такой ритм.
  9. Постоянное внимание к техническому совершенству.
  10. Для минимизации расходов и работ все участники проекта должны стремиться к простоте.
  11. Команды должны быть самоорганизующимися (для достижения лучших архитектурных решений).
  12. Работу нужно постоянно анализировать и оптимизировать.

Ключевые идеи манифеста Agile:

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

Если взглянуть на эти принципы со стороны, то легко проследить наличие ключевых функций менеджмента: планирование, налаживание коммуникаций, контроль выполнения проекта (в случае с Agile-методиками он получается сквозным и непрерывным за счёт наличия представителя заказчика в команде), анализ деятельности и оптимизация процессов.

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

Методологии Agile (гибкие методологии управления проектами)

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

Канбан и циклы разработки проектов

Здесь придерживаются следующих принципов: нужно поощрять лидерство; все участники соглашаются с тем, что проект будет постоянно эволюционировать и совершенствоваться; начинать новые циклы нужно с того, что имеется в настоящее время (как вариант последовательного развития проекта); нужно уважать процессы/роли/обязанности.

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

Технические особенности, относящиеся к циклам разработки:

  • Итерации в канбан необязательны.
  • Темпы планирования и циклы могут устанавливаться исходя из стоящих задач и других обстоятельств.
  • Жесткой привязки к циклам релизов или к фиксированным циклам разработки здесь нет.
  • При этом время минимального цикла (итераций разработки) – это базовая метрика, позволяющая оценить общие затраты времени на проект.
  • Ключевые показатели (KPI) и вообще какие-либо оценки необязательны.
  • Нет чётких требований к приоритетам в разработке.
  • Новые требования могут быть выдвинуты заказчиком в любой момент.
  • На доску канбан можно занести сразу все задачи (бэклог) и отслеживать их состояния на протяжении всей жизни продукта.
  • Какие-либо правила к объёму или сложности задач отсутствуют.

Несмотря на отсутствие явных требований к цикличности совещаний и других внутренних мероприятий, у многих канбан-команд вырабатываются свои частные практики:

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

Scrum и циклы разработки

Скрам придерживается твёрдых циклов в работе над проектом (здесь они называются спринты). Хотя это тоже гибкая методология, правда, с детально прописанной документацией и принципами. Обратите внимание, если вы используете в работе аналогичный подход, но что-то в нём поменяли под свои нужды, его уже нельзя назвать Scrum, таковы правила разработчиков стандарта.

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

Бэклог проекта может быть общим (список пожеланий/задач клиента) и только для одного спринта.

Что касается технических нюансов циклов разработки по Scrum:

  • Итерации всегда стандартной (одинаковой) продолжительности. Продолжительность устанавливается при запуске проекта по согласованию с клиентом и всеми участниками команды.
  • Обязательно используются метрики (KPI или аналоги), которые позволяют оценить прогресс проекта.
  • У каждого спринта есть конкретная цель и задачи. Изменить их до конца «забега» нельзя, только на новой итерации (на новом спринте).
  • Требования к задачам таковы, что объём работ обязательно должен укладываться во временные рамки одного спринта.
  • Строго определяются роли участников команды (скрам-мастер, владелец продукта и остальные члены команды).
  • Бэклоги спринтов действуют только для каждого отдельно «забега». После окончания спринта его лог удаляется. Сквозным можно назвать только общий бэклог проекта.
  • У каждого элемента бэклога обязательно должен быть проставлен приоритет.

Теперь поговорим о шагах разработки.

Гибкие (agile) циклы и шаги разработки

Конкретных шагов у гибких циклов разработки проектов нет и быть не может. Здесь используются только такое понятие, как «события». Например, событие планирования, которое предшествует стадии разработки внутри спринта при Scrum-подходе. Ежедневные собрания (митинги) – это тоже события.

В SCRUM порядок событий строго определен. Они должны происходить в следующей последовательности (в рамках одного спринта):

  1. Планирование спринта (Sprint Planning).
  2. Daily Scrum – ежедневная 15-минутная встреча перед началом работы над задачами из бэклога спринта.
  3. Спринт ревью (Sprint Review) – предпоследнее событие спринта, нужно для инспекции результата.
  4. Ретроспектива спринта (Sprint Retrospective) – событие анализа, последнее событие «забега».

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

Тем не менее, никто не мешает вам совместить модель последовательной разработки с любым agile-подходом.

Как это может выглядеть.

  • Так как любой программный продукт или проект имеет свой жизненный цикл, вы можете задействовать принципы последовательной/каскадной модели разработки (Waterfall): сбор и систематизация требований к продукту, аналитика, проектирование архитектуры (дизайн), реализация кода, тестирование, внедрение.
  • Чтобы не распалять силы на всех направлениях и на реализации всех задач, логично начать с минимально жизнеспособного продукта (MVP). То есть список функций и задач должен включать только те пункты, без которых работа продукта просто невозможна.
  • Когда MVP реализована, и вам есть что передать заказчику для внедрения, можно перейти на Agile-методики. Например, на Scrum.
  • Далее составляется общий бэклог задач к реализации, и на каждый новый спринт выносятся наиболее приоритетные фичи.
  • Представитель заказчика активно участвует в событиях и перед каждой новой итерацией может актуализировать список задач по проекту.