Kanban
Назначение: управление потоком работы команды, визуализация и оптимизация процесса.
Аудитория: PM, Scrum Master, команды разработки, operations-команды.
Статус: устоявшийся (Андерсон, 2010).
Не путать с: Scrum (итеративный фреймворк с ролями и спринтами), WIP-лимитами (отдельный инструмент, часть Kanban), Lean (философия-предок Kanban — отдельной статьи в БЗ пока нет).
Общее
Kanban — это метод управления потоком работы, при котором процесс становится наглядным, а объём незавершённой работы ограничивается явными лимитами. Команда не планирует работу порциями (как в спринтах Scrum), а берёт новую задачу тогда, когда в потоке появляется свободное место. Цель метода — не «делать больше», а делать быстрее, выравнивая поступление работы с пропускной способностью команды.
Слово канбан (看板, «рекламный щит», «карточка») пришло из производственной системы Toyota Production System (TPS), где инженер Оно Тайити (Taiichi Ohno) в 1950-х годах использовал физические карточки как сигнал для передачи деталей между станциями. Карточка двигалась по конвейеру и буквально «говорила» предыдущей станции: «дай мне ещё деталей». Так завод Toyota ограничивал перепроизводство — главный вид потерь в Lean.
Перенос идеи в разработку ПО выполнил Дэвид Андерсон (David J. Anderson). В 2007 году он обобщил свой опыт работы в Microsoft и Corbis и впервые представил Kanban как самостоятельный метод, а в 2010 году изложил его в книге Kanban: Successful Evolutionary Change for Your Technology Business. В отличие от Scrum, Kanban не вводит ролей, итераций и церемоний — он описывает способ управлять тем, что команда уже делает.
Ключевая идея метода — эволюционное, а не революционное изменение. Kanban не требует перестроить процесс «с нуля» или ввести новые роли; он начинается с того, что есть: текущий процесс визуализируют, ограничивают незавершённую работу и постепенно улучшают. Принцип сформулирован Андерсоном как «начните с того, что вы делаете сейчас» (start with what you do now).
Метод построен на трёх опорах:
- Визуализация — процесс отражается на Канбан-доске, где каждая стадия — отдельная колонка.
- Ограничение незавершённой работы — для колонок устанавливаются WIP-лимиты; без них доска остаётся просто картинкой.
- Непрерывное улучшение — команда управляет потоком и экспериментирует с процессом, опираясь на данные и метрики.
Kanban относится к семейству Agile-методологий: он разделяет ценности гибкости, частой поставки и непрерывного улучшения, но достигает их иным путём — через поток, а не итерации. Подробнее о месте Kanban среди подходов к управлению проектами — во введении в управление проектом.
История
Toyota и карточки Оно Тайити
В основе Kanban лежит производственная система Toyota (TPS), которую в 1950-х годах выстраивал Оно Тайити. Главный инструмент — карточка канбан, передававшаяся между рабочими станциями как сигнал «произведи» или «доставь». Система была нацелена на устранение семи видов потерь (муда): перепроизводства, ожидания, лишней транспортировки, излишней обработки, запасов, перемещений и дефектов. Принцип just-in-time — «точно вовремя» — означал, что каждая деталь производится ровно тогда, когда нужна следующей стадии.
Философская база TPS и производных от неё подходов позже получила имя Lean («бережливое производство»). Канбан в разработке ПО унаследовал от Lean идею потока, вытягивания (pull) и борьбы с незавершённой работой как формой «запаса». Свою книгу Оно Тайити издал в 1978 году (английский перевод — Toyota Production System: Beyond Large-Scale Production, 1988).
Перенос в программную инженерию
Первые попытки перенести идею «вытягивания» в разработку ПО относятся к началу 2000-х. В 2004 году появились ранние описания «Kanban for Software», а реальная проработка метода связана с работой Дэвида Андерсона и его коллег (в том числе Дэвида Ардуозо) в команде Microsoft XIT (External IT) в 2004–2006 годах. Там впервые применили доску с колонками и ограничениями незавершённой работы для сопровождения внутренних ИТ-сервисов.
Параллельно Карл Скотленд (Karl Scotland) и Кори Ладас (Corey Ladas) развивали практические приёмы канбана в веб-разработке. Ладас в 2009 году издал книгу Scrumban: Essays on Kanban Systems for Lean Software Development, в которой показал гибрид канбана и Scrum — так называемый Scrumban.
Канонизация метода
Ключевым событием стал 2010 год, когда Дэвид Андерсон опубликовал книгу Kanban: Successful Evolutionary Change for Your Technology Business. В ней метод был зафиксирован как набор из четырёх принципов и шести практик, опирающийся на две теоретические модели:
- Закон Литтла (Little’s Law, L = λW) из теории очередей — связывает число элементов в системе, скорость их поступления и среднее время выполнения.
- Теория ограничений (Theory of Constraints) Элияху Голдратта из книги The Goal (1984) — узкое место определяет пропускную способность всей системы.
В дальнейшем метод продолжил развиваться: в 2018 году вышла модель зрелости Kanban — Kanban Maturity Model (Андерсон и Теодора Божева), которая описала семь уровней зрелости организаций и связала их с практиками. Сегодня Kanban — один из двух (наряду со Scrum) самых распространённых Agile-подходов в мире.
Четыре принципа Kanban
Андерсон сформулировал метод не как набор правил «как работать», а как принципы отношения к изменениям. Принципы описывают, как внедрять метод, а не каким должен быть процесс.
1. Начните с того, что вы делаете сейчас
Start with what you do now. Kanban не требует менять процесс, роли или структуру команды до начала работы. Первое действие — зафиксировать текущий процесс таким, какой он есть: стадии, правила перехода, кто и что делает. Только увидев реальное положение дел, можно осмысленно его улучшать. Это отличает Kanban от Scrum, где с самого начала вводятся роли Product Owner, Scrum Master и Developers.
2. Соглашайтесь на эволюционные, постепенные изменения
Agree to pursue incremental, evolutionary change. Вместо «большого взрыва» — перестройки процесса под новый фреймворк — команда вносит маленькие, постепенные изменения, каждое из которых можно оценить и при необходимости откатить. Эволюционный подход снижает сопротивление и риск: люди продолжают работать в привычной структуре, а изменения накапливаются шаг за шагом. В этом смысле Kanban — метод эволюционный, а не революционный.
3. Уважайте текущие роли, обязанности и ответственность
Respect the current process, roles, responsibilities and titles. Kanban не упраздняет существующие роли и не назначает новых. Текущая организация процесса и ответственности может быть неоптимальной, но она не является препятствием для старта. Уважение к сложившейся структуре снижает страх перед изменениями и позволяет сосредоточиться на потоке работы, а не на реорганизации людей.
4. Поощряйте лидерство на всех уровнях
Leadership at all levels. Улучшения в Kanban не исходят только от руководителя или тренера — каждый участник команды вправе предлагать и проводить эксперименты. Лидерство здесь понимается как ответственность за процесс: наблюдение за потоком, выявление узких мест, формулировка гипотез улучшения. Это перекликается с Agile-принципом о том, что лучшие решения рождают самоорганизующиеся команды.
Шесть практик Kanban
Если принципы задают отношение к изменениям, то шесть практик описывают повседневную работу метода. Практики взаимосвязаны: визуализация без лимитов бесполезна, лимиты без управления потоком не работают, поток без явных правил непрозрачен.
1. Визуализируйте рабочий процесс
Visualize the workflow. Процесс отражается на Канбан-доске: каждая стадия — отдельная колонка, каждая единица работы — карточка, которая движется слева направо. Колонки соответствуют реальным стадиям (например, «Бэклог → В работе → Ревью → Готово»), а на доске видны и правила перехода между ними. Цель — сделать процесс «натянутым на стекло»: любой участник в любой момент видит, где что находится, где скопилась работа и что блокирует поток.
2. Ограничьте незавершённую работу
Limit Work in Progress. Для каждой колонки (или группы колонок) устанавливается максимальное число задач, которые могут в ней находиться одновременно, — WIP-лимит. Когда лимит достигнут, в колонку нельзя добавить новую задачу, пока оттуда не уйдёт старая. Это ключевая практика метода: без WIP-лимита Канбан-доска — это просто визуализация, а не Kanban. Лимиты заставляют команду завершать начатое, прежде чем брать новое, и делают узкие места видимыми — там, где работа скапливается, колонка «упирается» в лимит.
3. Управляйте потоком
Manage flow. Фокус смещается с «управления людьми» на управление потоком работы — скоростью и плавностью, с которой карточки движутся через доску. Команда следит, где ускоряется и застревает поток, и действует так, чтобы карточки двигались быстрее и равномернее. Это означает, что сначала завершают начатое (вниз по течению), а уже потом берут новое (вверх по течению), — так называемый принцип «завершай, потом стартуй» (stop starting, start finishing).
4. Сделайте правила процесса явными
Make process policies explicit. Чтобы потоком можно было управлять, правила должны быть записаны и согласованы: что значит «задача готова к переходу в следующую колонку» (Definition of Ready), что значит «задача завершена» (Definition of Done), какие критерии проверки. Явные правила превращают колонки из «статусов» в договорённости: если правило нарушено или не работает, его меняют сознательно, а не молча обходят. Без явных правил лимиты и метрики теряют смысл.
5. Внедрите циклы обратной связи
Implement feedback loops. Kanban не предписывает фиксированных встреч, но требует регулярных циклов обратной связи — кадансов (cadences). Кадансы — это ритм встреч разного уровня: ежедневный обзор доски, еженедельный обзор очереди, ежемесячный обзор сервиса (service delivery review) и более редкий operations review — стратегический обзор нескольких команд вместе. Обратная связь замыкает цикл улучшения: данные с доски и метрик превращаются в решения о следующих экспериментах.
6. Улучшайте совместно, развивайтесь экспериментально
Improve collaboratively, evolve experimentally. Команда улучшает процесс совместно, через проверяемые эксперименты, а не через единоличные решения руководителя. Гипотеза формулируется, проводится эксперимент (например, изменение WIP-лимита или добавление колонки), результат измеряется — и процесс обновляется. В основе этой практики лежат научные модели: теория ограничений Голдратта (работа с узким местом) и закон Литтла (математика потока). Опора на модели отличает «осознанное улучшение» от случайных догадок.
Канбан-доска
Канбан-доска — центральный артефакт метода. Это визуальное представление процесса, где работа течёт слева направо, от запроса до результата. Доска делает три вещи: показывает текущее состояние, ограничивает объём незавершённой работы и exposes правила перехода.
Структура доски
Минимальная Канбан-доска содержит три потока — «Сделать → В работе → Готово», — но на практике процесс детализируют под реальный поток ценности. Типовая структура для команды разработки выглядит так:
- Backlog — накопленный список всех запросов, приоритизированный сверху вниз. WIP-лимит обычно не установлен (это «озеро» входящей работы).
- Ready (или «Selected», «Next») — задачи, выбранные для ближайшей работы и готовые к старту по критериям входа (Definition of Ready). Здесь уже может действовать лимит.
- In Progress — задачи, над которыми работают прямо сейчас. Жёсткий WIP-лимит: столько задач, сколько позволяет лимит.
- Review (код-ревью, тестирование) — отдельная стадия проверки со своим лимитом, чтобы выявить узкое место между разработкой и приёмкой.
- Done — завершённые задачи, удовлетворяющие Definition of Done.
Каждая колонка может делиться на «в работе» и «готово к вытягиванию» (doing / done), что делает момент готовности к переходу явным. Вертикальные линии «пул-лэйнов» (swimlanes) разделяют потоки по классам обслуживания или командам.
Карточка
Карточка (ticket) — единица работы на доске. Содержание зависит от зрелости команды, но типовая карточка несёт:
- Тип работы — фича, дефект, задача, запрос от заказчика. Разные типы могут иметь разные классы обслуживания.
- Описание — что нужно сделать, критерии приёмки.
- Ответственный — кто работает над задачей прямо сейчас (в Kanban желательна концентрация на одной задаче, а не «у всех по три»).
- Признак блокера — флаг, что задача стоит и ждёт внешнего события; блокер снимается с потока отдельный сигнал.
- Дата входа и выхода — для расчёта Lead Time; без временных метрик метрики невозможны.
- Класс обслуживания (class of service) — приоритет и правила обработки.
Классы обслуживания
Классы обслуживания (Classes of Service, CoS) — это набор политик, определяющих, как разные типы работы проходят через систему. Андерсон выделил четыре стандартных класса:
- Standard — обычная работа, плановая. Идёт в порядке приоритета, ничего экстренного.
- Expedite — срочная, критичная задача (например, продакшен-инцидент). Обходит очередь, но обычно разрешается только одна-две такие задачи одновременно, чтобы «пожарная» работа не стала нормой.
- Fixed Date — задача с фиксированным сроком (релиз к дедлайну, обязательство перед регулятором). Планируется так, чтобы успеть к дате.
- Intangible — «неосязаемая» работа: технический долг, обучение, улучшение инфраструктуры. Важна, но не имеет срочности; её включают в поток, когда есть свободная пропускная способность.
Классы обслуживания превращают «всё срочное» в осознанный компромисс: команда явно выбирает, какую работу ускорять, и видит цену expedite-задачи для остального потока.
Метрики Kanban
Kanban управляется данными. Без измерений потока «улучшение» сводится к догадкам, поэтому метод опирается на небольшое, но строгое набор метрик. Все они строятся на двух опорах: времени прохождения задач и скорости потока.
Lead Time и Cycle Time
Lead Time (время выполнения заказа) — интервал от момента, когда запрос поступил в систему (клиент попросил фичу), до момента, когда она дошла до «Готово». Это то время, которое «чувствует» заказчик.
Cycle Time (время цикла) — интервал от момента, когда команда начала работу над задачей, до её завершения. Это то время, которое тратит команда.
Разница между ними — время ожидания в очереди (Ready). Большой разрыв означает, что задача долго лежит «в бэклоге на старт»: заказчик уже ждёт, а работа ещё не началась.
Обе метрики связаны с объёмом незавершённой работы через закон Литтла. В стационарной системе выполняется равенство L = λW, где L — среднее число элементов в системе, λ — средняя скорость их поступления (throughput), W — среднее время нахождения элемента в системе. Отсюда прямо следует практический вывод: чем меньше незавершённой работы (L), тем меньше среднее время выполнения (W) — при той же пропускной способности. Это математическое обоснование WIP-лимитов: ограничивая L, команда сокращает W и тем самым ускоряет доставку. Закон Литтла — математическая основа всего метода.
Кумулятивная диаграмма потока (CFD)
Cumulative Flow Diagram (CFD) — график, на котором по оси X отложено время, а по оси Y — суммарное число задач в каждой стадии процесса (отдельная цветная полоса для каждой колонки). Полосы накладываются друг на друга, образуя «горизонтальный слойёный пирог».
Как читать CFD:
- Наклон полосы «Готово» (самой нижней) — это throughput, скорость доставки. Чем круче, тем быстрее команда выдаёт результат.
- Расстояние по вертикали между полосой «В работе» и «Готово» — объём незавершённой работы (WIP) в данный момент.
- Расширение полос (растёт расстояние между «в работе» и «готово») — WIP растёт, поток замедляется; вероятное узкое место.
- Сужение — WIP падает, поток ускоряется.
Главный диагностический сигнал — расширение верхней части диаграммы: если полоса «в работе» расползается, значит, задачи входят в систему быстрее, чем выходят, и очередь нарастает. Это ранний признак узкого места, видный за недели до того, как он станет кризисом. WIP-лимит — инструмент, который не даёт этой полосе бесконтрольно расширяться.
Throughput и Control Chart
Throughput (пропускная способность) — число задач, завершённых за единицу времени (за день, неделю). Это «скорость выхода» потока; в отличие от velocity в Scrum, throughput измеряется в количестве задач, а не в story points, и не требует предварительной оценки сложности.
Control Chart (контрольная карта) — график, где по оси X отложено время завершения задач (Cycle Time), а по оси Y — частота. Точки сгруппированы вокруг среднего, а горизонтальные линии отмечают среднее и стандартные отклонения. Карта показывает:
- типичный Cycle Time и его разброс;
- «выбросы» — задачи, занявшие аномально долго; их разбирают как источник улучшений;
- стабильность системы — если точки укладываются в контрольные пределы, процесс предсказуем.
Service Level Expectation (SLE)
Service Level Expectation (SLE) — прогноз сроков выполнения, построенный не на оценках, а на статистике реального потока. Вместо обещания «мы сделаем это за 5 дней» команда смотрит на распределение Cycle Time и формулирует вероятность: «85% задач такого типа мы завершаем за 8 дней или быстрее». Процентиль (обычно 50%, 85% или 95%) выбирают под терпимость заказчика к риску.
SLE отличается от классических оценок тем, что опирается на исторические данные, а не на экспертную догадку, и выражает срок с явно указанной вероятностью. Это делает прогноз честным: вместо одной «обнадёживающей» цифры заказчик получает диапазон и уровень уверенности.
Kanban vs Scrum
Kanban и Scrum — два самых известных Agile-фреймворка, и их часто противопоставляют. Оба помогают команде поставлять ценность часто и предсказуемо, но решают эту задачу по-разному: Scrum структурирует работу ритмом спринтов, а Kanban — потоком с лимитами.
| Критерий | Kanban | Scrum |
|---|---|---|
| Каденс (ритм) | Непрерывный поток, задача берётся при появлении места | Спринты фиксированной длины (1–4 недели) |
| Роли | Не предписывает | Product Owner, Scrum Master, Developers |
| Изменения в процессе | В любой момент — новый элемент можно добавить в очередь когда угодно | Желательны между спринтами; во время спринта цель фиксируется |
| Оценка задач | Не обязательна; часто обходятся без неё | Story points / планируемая скорость (velocity) |
| Метрики прогноза | Lead Time, Cycle Time, SLE (процентили) | Velocity (сумма story points за спринт) |
| Ограничение работы | Явные WIP-лимиты по колонкам | Объём, выбранный на Sprint Planning + Sprint Goal |
| Встречи | Кадансы на усмотрение команды | Sprint Planning, Daily Scrum, Sprint Review, Sprint Retrospective |
| Доска | Перманентная, не обнуляется | Обнуляется (создаётся заново) каждый спринт |
| Бэклог | Единый непрерывный, приоритизированный | Product Backlog + Sprint Backlog |
| Подходит для | Operations, поддержка, сопровождение, работа по запросу | Продуктовая разработка, предсказуемый спрос |
Когда выбирать Kanban
Kanban предпочтителен, когда работа приходит по запросу (on-demand), а её объём и приоритет непредсказуемы: support, maintenance, operations, инфраструктурные команды, bug-fixing. Здесь спринты искусственны — задачи нельзя «отложить до следующего спринта», их нужно брать по мере поступления. Kanban также естественен, когда переход на Scrum встречает сопротивление: метод не требует новых ролей и церемоний, а начинается с текущего процесса. Наконец, Kanban выигрывает там, где важна скорость доставки отдельных задач (Lead Time), а не ритмичная поставка инкрементов.
Когда выбирать Scrum
Scrum лучше подходит для продуктовой разработки с предсказуемым составом команды и стабильным спросом: есть Product Owner, есть бэклог, есть возможность планировать спринты. Жёсткий ритм спринтов создаёт дисциплину планирования и обратной связи, а обязательные события (Review, Retrospective) гарантируют регулярную инспекцию. Когда нужна сильная общая цель на короткий горизонт (Sprint Goal) и явные роли ответственности — Scrum уместнее.
Scrumban
Scrumban — гибрид, предложенный Кори Ладасом (2009): сохраняются спринты, роли и события Scrum, но планирование становится «по требованию» (pull), а вместо оценки сложности используется WIP-лимит и метрики потока. Scrumban удобен как переходный путь от Scrum к Kanban или как способ сохранить структуру Scrum, добавив контроль потока. На практике многие команды, называющие себя «скрам-командами», работают в гибридном режиме, негласно ограничивая незавершённую работу в спринте.
Масштабирование Kanban
Kanban хорошо работает на уровне одной команды, но его принципы — визуализация, лимиты, поток, метрики — масштабируются на несколько команд и на уровень портфеля. Масштабирование не отменяет команды; оно добавляет слои координации сверху.
Уровень команды
На уровне команды всё сводится к классическому Kanban: одна доска, WIP-лимиты по колонкам, метрики Lead/Cycle Time. Это базовый случай, на котором метод работает проще всего и где достигается быстрый эффект — поток ускоряется уже за счёт ограничения незавершённой работы и явных правил.
Несколько команд
Когда над общим потоком работают несколько команд, появляются общие стадии и зависимости между досками. Здесь вводят upstream/downstream-доски: одна команда передаёт работу другой, и сигнал на передачу — свободное место в следующей доске (тот же принцип вытягивания, что и между колонками). Кадансы типа operations review собирают представителей команд, чтобы разобрать узкие места на стыках. Главный риск на этом уровне — локальная оптимизация: каждая команда ускоряет свой участок, а глобальный поток от этого не выигрывает (теория ограничений Голдратта: улучшать нужно узкое место всей системы, а не отдельной команды).
Portfolio Kanban и Lean Portfolio Management
На уровне портфеля Kanban применяется к потоку инициатив: крупным темам, эпикам, инвестиционным решениям. Portfolio Kanban отражает движение инициатив от идеи через анализ к реализации и поставке, с WIP-лимитами на число одновременно анализируемых и реализуемых инициатив. Лимиты на уровне портфеля решают ту же задачу, что и на уровне команды: не дать организации взяться за слишком много одновременно и размазать усилия.
Этот подход тесно связан с Lean Portfolio Management (LPM) — практикой управления портфелем в духе Lean: финансирование по потокам ценности, а не по проектам; децентрализованные решения; явные лимиты незавершённой работы на уровне стратегических инициатив. LPM отвечает на вопрос «на что мы вообще тратим деньги и сколько одновременно», а Kanban даёт механизм — визуализацию и лимиты — для этого уровня. На масштабировании метода построена упомянутая выше Kanban Maturity Model (2018), связывающая уровни зрелости организации с применимыми практиками.
Плюсы
Канбан популярен не потому, что моден, а потому, что даёт ощутимый эффект при низком пороге входа. Среди его сильных сторон:
- Плавный поток. Ограничение незавершённой работы и фокус на завершении начатого сокращают Lead Time: задачи доходят до «Готово» быстрее и предсказуемее, а не копятся в очередях.
- Минимум бюрократии и «встреч по расписанию». Метод не предписывает обязательных ролей и церемоний; кадансы команда подбирает сама. Это снижает накладные расходы и особенно ценно для команд, у которых работа приходит непредсказуемо.
- Раннее выявление узких мест. WIP-лимиты и кумулятивная диаграмма потока делают узкое место видимым задолго до того, как оно станет кризисом: колонка «упирается» в лимит, а полоса на CFD расширяется.
- Плавная адаптация к меняющемуся спросу. Работа берётся по запросу (pull): новый приоритет просто переупорядочивает входящую очередь, не требуя пересмотра «спринта» или оценок.
- Низкий порог входа. Kanban начинается с того, что уже есть: текущий процесс визуализируют и лимитируют, не меняя ролей и структуры. Это метод эволюционного изменения — его можно запустить за пару недель и постепенно улучшать.
См. также
- WIP-лимит — ключевой механизм Kanban: без лимитов доска остаётся просто визуализацией.
- Scrum — вторая ключевая Agile-методология; сравнение с Kanban приведено в соответствующем разделе.
- Agile — семейство гибких методологий, внутри которого существует Kanban.
- Введение в управление проектом — общая карта методологий проектного управления и место Kanban среди них.
Заключение
Kanban — это метод управления потоком, а не набор предписанных ролей и итераций. Его сила — в трёх простых опорах: визуализировать процесс, ограничить незавершённую работу и улучшать процесс экспериментально, опираясь на данные. Математический фундамент метода — закон Литтла (L = λW): чем меньше незавершённой работы, тем быстрее она выполняется, и именно это превращает ограничение WIP из «дисциплинарной меры» в инструмент ускорения.
Эволюционный характер метода — «начните с того, что есть» — делает его самым низкопороговым из Agile-подходов: команду не нужно перестраивать, достаточно увидеть поток и ограничить его. Поэтому Kanban так часто приживается там, где Scrum кажется тяжёлым: в support, operations и maintenance, где работа приходит по запросу, а не планируется спринтами. И именно поэтому метод естественно масштабируется — от колонки на доске одной команды до портфеля инициатив всей организации.