Kanban

Зачем нужно

Kanban — Agile-метод управления потоком работы. В отличие от Scrum, нет спринтов и фиксированных ролей. Задачи двигаются по доске от «To Do» до «Done» с ограничением количества задач в работе. Простой и гибкий подход, который легко внедрить.

Где используется

  • Поддержка продукта — баги и фичи без фиксированных спринтов
  • Личное планирование — организация своих задач
  • DevOps — управление инцидентами и задачами
  • RS School — отслеживание прогресса задания
  • Любая команда — визуализация работы

Kanban Board — доска

Базовая доска

┌───────────┬───────────┬───────────┬───────────┐
│  To Do    │In Progress│  Review   │   Done    │
│           │  (WIP: 3) │  (WIP: 2) │           │
├───────────┼───────────┼───────────┼───────────┤
│ ┌───────┐ │ ┌───────┐ │ ┌───────┐ │ ┌───────┐ │
│ │Task 5 │ │ │Task 3 │ │ │Task 1 │ │ │Task 0 │ │
│ └───────┘ │ └───────┘ │ └───────┘ │ └───────┘ │
│ ┌───────┐ │ ┌───────┐ │           │           │
│ │Task 6 │ │ │Task 4 │ │           │           │
│ └───────┘ │ └───────┘ │           │           │
│ ┌───────┐ │           │           │           │
│ │Task 7 │ │           │           │           │
│ └───────┘ │           │           │           │
└───────────┴───────────┴───────────┴───────────┘

Расширенная доска

┌──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐
│ Backlog  │  To Do   │   Dev    │   Test   │  Review  │   Done   │
│          │ (WIP: 5) │ (WIP: 3) │ (WIP: 2) │ (WIP: 2) │          │
├──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
│          │          │          │          │          │          │
│  Ideas   │ Selected │ Coding   │  QA      │   CR     │ Released │
│          │ for work │          │          │          │          │
└──────────┴──────────┴──────────┴──────────┴──────────┴──────────┘

WIP Limits — ограничение незавершённой работы

WIP (Work In Progress) limit — максимальное количество задач в колонке.

Без WIP limits:                С WIP limits:
─────────────────              ─────────────────
In Progress: 8 задач           In Progress (WIP: 3): 3 задачи
→ Все начаты, ничего           → Фокус, задачи завершаются
  не завершено                   быстрее
→ Переключение контекста       → Меньше переключений
→ Долгий цикл                  → Короткий цикл

Правило: если колонка заполнена до лимита — нельзя брать новую задачу. Сначала заверши текущую или помоги коллеге.

Как определить WIP limit

Для одного человека: 1-2 задачи в In Progress
Для команды: число членов команды × 1.5 (примерно)

Команда из 4 разработчиков:
- Dev: WIP = 4-6
- Review: WIP = 2-3

Flow — поток

Основные метрики

Метрика Описание
Lead Time Время от создания задачи до завершения
Cycle Time Время от начала работы до завершения
Throughput Количество завершённых задач за период
WIP Количество задач в работе прямо сейчас
Lead Time: ──────────────────────────────────────
           Backlog → To Do → Dev → Test → Done

Cycle Time:          ───────────────────────
                     To Do → Dev → Test → Done

Cumulative Flow Diagram

Tasks │
  30  │          ████████████████████  Done
      │       ███████████████
  20  │    ██████████████              In Progress
      │  █████████████
  10  │ ████████████                   To Do
      │████████
   0  │──────────────────────────────
      Week 1   Week 2   Week 3   Week 4

Если полоса «In Progress» расширяется — работа застревает.

Swim Lanes — дорожки

Горизонтальное разделение доски по типу работы или приоритету.

┌───────────┬───────────┬───────────┬───────────┐
│  To Do    │In Progress│  Review   │   Done    │
├───────────┼───────────┼───────────┼───────────┤
│ URGENT    │           │           │           │
│ ┌───────┐ │ ┌───────┐ │           │           │
│ │Bug #42│ │ │Bug #38│ │           │           │
│ └───────┘ │ └───────┘ │           │           │
├───────────┼───────────┼───────────┼───────────┤
│ FEATURES  │           │           │           │
│ ┌───────┐ │ ┌───────┐ │ ┌───────┐ │           │
│ │Feat #5│ │ │Feat #3│ │ │Feat #1│ │           │
│ └───────┘ │ └───────┘ │ └───────┘ │           │
├───────────┼───────────┼───────────┼───────────┤
│ TECH DEBT │           │           │           │
│ ┌───────┐ │           │           │ ┌───────┐ │
│ │Refact │ │           │           │ │Lint   │ │
│ └───────┘ │           │           │ └───────┘ │
└───────────┴───────────┴───────────┴───────────┘

Pull System — система вытягивания

PUSH (плохо):                    PULL (Kanban):
Менеджер → назначает задачи      Разработчик → берёт задачу
→ перегрузка                     когда освобождается
→ нет контроля WIP               → контроль WIP
                                  → самоорганизация

Принцип: задачу берёт тот, кто свободен. Никто не «пушит» задачи в команду.

Kanban vs Scrum

Параметр Scrum Kanban
Итерации Спринты (2-4 недели) Непрерывный поток
Роли PO, SM, Dev Team Нет обязательных ролей
Планирование Sprint Planning По мере появления задач
Изменения Не в текущем спринте В любой момент
Метрики Velocity Lead Time, Throughput
WIP Весь спринт Ограничен по колонкам
Церемонии 4 обязательных Опционально
Доска Очищается каждый спринт Постоянная
Лучше для Продуктовая разработка Поддержка, операции

Инструменты

Инструмент Бесплатный Особенности
Trello Да (базовый) Простой, интуитивный
GitHub Projects Да Интеграция с Issues/PR
Jira Да (до 10 человек) Мощный, сложный
Notion Да (базовый) Гибкий, база знаний
Linear Да (базовый) Быстрый, для разработчиков

GitHub Projects как Kanban

Repository → Projects → New Project → Board view

Колонки:
- 📋 Backlog
- 🔜 To Do
- 🔧 In Progress
- 👀 Review
- ✅ Done

Issues и PR автоматически перемещаются по доске.

Частые ошибки

Ошибка Проблема Решение
Нет WIP limits Всё начато, ничего не закончено Установи лимиты и соблюдай
Доска не обновляется Не отражает реальность Обновляй при каждом изменении
Слишком много колонок Сложность без пользы Начни с 3-4 колонок
Нет pull system Задачи «пушатся» сверху Команда сама берёт задачи
Игнорируют bottleneck Задачи копятся в одной колонке Проанализируй и устрани причину

Практика

  1. Создай Kanban-доску в GitHub Projects для своего проекта
  2. Установи WIP limits и попробуй их соблюдать
  3. Отследи Lead Time для 5 задач
  4. Добавь swim lanes для багов и фич
  5. Проведи анализ: где задачи застревают дольше всего

Связанные темы

Ресурсы