В прошлой статье мы разбирали, как элементы экстремального программирования помогают управлять качеством кода и процессом разработки. Нужен был не просто новый процесс, а что-то вроде иммунной системы: механизм, который не лечит болезни постфактум, а распознаёт угрозы заранее и вырабатывает к ним «антитела». Такой системой для нас стали практики 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 также может стать удобным и практичным решением.