В прошлой статье мы разбирали, как элементы экстремального программирования помогают управлять качеством кода и процессом разработки. Нужен был не просто новый процесс, а что-то вроде иммунной системы: механизм, который не лечит болезни постфактум, а распознаёт угрозы заранее и вырабатывает к ним «антитела». Такой системой для нас стали практики Extreme Programming (XP).

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

И именно в таких случаях Kanban помогает усилить Scrum: сохранить ритм работы, управлять потоком задач и быстрее реагировать на срочные изменения.

Разберём, что общего у Scrum и Kanban, как Kanban можно использовать внутри Scrum-фреймворка и какие задачи это решает на практике.

Кратко о Scrum

Scrum – это подход к организации работы короткими итерациями, или спринтами.

В Scrum Team есть три основные роли:

  • Product Owner;
  • Scrum Master;
  • Developers.

В начале спринта команда планирует работу (Sprint Planning), каждый день синхронизируется на Daily Scrum, а в конце проводит Sprint Review и Sprint Retrospective.

Главная идея Scrum – работать в стабильном ритме и регулярно поставлять готовый результат.

Подробнее о Scrum читайте в Scrum Guide.

Кратко о Kanban

Kanban – это метод, позволяющий управлять потоком задач.

Работа отображается на доске, где каждая колонка соответствует этапу процесса: например, To Do, In Progress, Testing и Done.

Для каждого этапа задаются WIP-лимиты (Work In Progress) – ограничение на количество задач, которые можно выполнять одновременно.

Главная идея Kanban проста: сначала завершай начатое, потом бери новое. Подробнее о Kanban читайте в Kanban Guide.

Что общего у Scrum и Kanban

Несмотря на различия, Scrum и Kanban преследуют одни и те же цели.

Оба подхода помогают:

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

Scrum задает ритм работы, а Kanban помогает управлять потоком задач внутри этого ритма.

Внедрение Kanban в Scrum

Kanban в Scrum – это не замена Scrum-фреймворка, а способ сделать его гибче.

Официальные рекомендации от Scrum.org по тому, как правильно встроить Kanban в Scrum можно почитать тут, а ниже мы расскажем, как это сделали мы.

Как работает Kanban в Scrum на практике

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

Что остается от Scrum

  • роли в команде;
  • спринты;
  • Sprint Planning;
  • Daily Scrum;
  • Sprint Review;
  • Sprint Retrospective.

Что добавляется из Kanban

  • Kanban-доска;
  • WIP-лимиты;
  • pull-модель работы;
  • метрики потока: lead time, cycle time, throughput.

Роли и события

Мы сохраняем роли и события Scrum – спринты, планирование, ежедневные встречи, обзор и ретроспективу, – но дополняем процесс инструментами Kanban.

Kanban-доска

Используем доску с колонками, отражающими этапы рабочего процесса, например: To Do, In Progress, Testing (может быть дополнительно детализирована на тестирование, проводимое на разных окружения), Ready for Production, Done. Это дает полную видимость статусов всех задач в любой момент времени.

Лимиты WIP

Для каждой колонки устанавливаем максимальное количество задач, которые можно взять в работу одновременно. Это предотвращает перегрузку команды, помогает завершать начатую работу, прежде чем брать новую, а также увидеть “узкие места” на каждом из этапов работ.

Pull-система

Команда берёт задачи в работу по мере появления свободной емкости, где основная часть задач – это зафиксированные элементы Sprint Backlog, а оставшаяся – ad-hoc задачи.

Метрики потока

На ретроспективах анализируем среднее время выполнения задач (lead time), среднее время активной работы над задачей (cycle time) и пропускную способность (throughput), а также сопоставляем cumulative flow diagram с burndown chart. Это помогает выявлять узкие места и улучшать процесс.

Таким образом, Scrum задаёт ритм работы, а Kanban помогает управлять потоком задач внутри этого ритма.

Как это работает

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

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

Практический кейс из HR-tech

На одном из наших HR-tech проектов команда одновременно:

  • работала над новым функционалом;
  • поддерживала уже работающий продукт;
  • исправляла срочные баги в продакшене/выполняла иные ad-hoc задачи.

Если следовать только Scrum, срочные задачи могли нарушить план спринта или пришлось бы откладывать критичные исправления до следующего спринта.

Решением стало встроить Kanban в Scrum-процесс, в котором мы фиксировали обязательный объем работ по ходу спринта, но одновременно с этим оставляли “гибкую” часть для маневра.

На практике это выглядело так: при средней velocity 30 SP на спринт мы в планировании брали в работу 20–25 SP.

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

Команда продолжала работать по спринтам: проводила планирование, ежедневные встречи, обзоры и ретроспективы, при этом весь бэклог вёлся на Kanban-доске, а для колонок In Progress и Testing мы установили WIP-лимиты.

Когда появлялась незапланированная задача, а переменная часть нашего Velocity еще не была израсходована, команда могла взять задачу в работу. Это позволяло быстро реагировать на изменения без перегрузки и без срыва спринта.

В результате:

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

Итого: что даёт Kanban в Scrum?

Гибкость без потери предсказуемости

Команда сохраняет ритм спринтов, но может оперативно брать срочные задачи.

Контроль загрузки

WIP-лимиты помогают избежать перегрузки и показывают реальную ёмкость команды.

Быстрое выявление проблем

Доска делает блокировки и зависшие задачи заметными сразу.

Улучшение процесса на основе данных

Метрики потока помогают точнее планировать и находить узкие места.

Таким образом, сочетание структурированного планирования Scrum и гибкости Kanban позволяет одновременно работать по итерационным планам и брать в работу внеплановые/разовые запросы, требующие немедленного решения.

Заключение

Kanban в Scrum – это способ усилить Scrum-фреймворк за счёт визуализации потока задач и контроля нагрузки.

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

Если команде нужно одновременно развивать новый функционал и оперативно решать срочные проблемы, Kanban в Scrum также может стать удобным и практичным решением.