Канбан можно отнести к инструментам бережливого производства. А бережливое производство – к способам организации производственного процесса. В общем, канбан – это подход к управлению.
Нас интересует канбан для инженеров, конкретно — в IT. Ниже — обзор на эту тему.
Сперва я расскажу вкратце о других подходах, свойственных самоорганизации инженерной деятельности. Потом немного подробнее о lean и внутри него kanban — в организационном и инструментальном аспектах. И в конце о некоторых максимах, которые могут быть реализованы в этом подходе.
1. Инженерные подходы
(По мотивам “Инженерной онтологии” группы С.Переслегина)
Есть работа, которую нужно работать. Работают люди. Дают результат. Что, как и зачем здесь можно изменить? Кто будет менять? Не будем углубляться, скажем: меняет менеджер. Меняет структуру деятельности инженеров: как она разделяется на части, приоретизируется, останавливается, передаётся. Как при этом происходит коммуникация.
Отношение инженер-менеджер — базовое противоречие. Обычно отношения развиваются по одному из четырёх позитивных сценариев — аттракторов состояний:
- Избыточный подход.
- Инвариантный инженерный подход.
- Хаотический подход.
- Бережливое производство.
Сценарии равноценны, нет лучшего и худшего. Они имеют свои области применимости, причины и следствия. Что характерно для неравновесных систем, выбрать сценарий можно только в точке бифуркации. Обычно сценарий диктуется ситуацией и имеет очень большую инерцию.
Fat — избыточный, толстый. Минимизация времени, максимизация ценности результата. Инженерная целесообразность при наличии невероятно амбициозной и срочной цели. Например, студия Гиперболоид, или Лебедевское “долго, дорого, …”. Исторически атомные, космические проекты, проекты освоения Арктики. Проекты, меняющие ситуацию в корне, результатами которых пользуются поколения.
Инвариантный (sim) подход — независимость от требований, нарушение отношений инженер-менеджер. Оверинжиниринг. Например, в одном из моих проектов ключевой проблемой была постоянная смена требований со стороны продуктового управления. Мы стали работать эффективно, когда научились просто сразу делать хорошо, очень много рефакторить и работать когерентно. Но производство, конечно, было дороже по времени и требовало более высокой квалификации инженеров, чем в случае нормального руководства.
Хаотический (chaos) подход — минимизация согласований. Действование в общем направлении и в общих интересах, но каждый сам. Появление хаоса — следствие либо чрезмерной простоты и незрелости компании, в которой коммуникация ещё не установлена, либо — невероятной сложности процесса управления, как, например, в государстве. Составные части ЧМС в таком случае могут быть организованы в других подходах. В малом масштабе подход помогает, когда есть только интуиция конечной цели, или когда ресурсов недостаточно, а двигаться нужно.
Lean — бережливый, поджарый. Минимизация усилий, не дающих непосредственной пользы потребителю. Наглядный для менеджера, упрощающий и линейный подход. Типичный пример — МакДак, Тойота, почти любое не стагнирующее потоковое производство. Быстрые компании, реагирующие на малые флуктуации. Хороший способ сохранять позиции и линейно масштабироваться.
2. Lean
2.1. Вытягивание
Можно разделить производство на выталкивающее и вытягивающее.
Выталкивание: создание автомобиля и продажа его людям, которые хотели более быструю лошадь. Или создание абсолютно новой версии продукта на основе заготовленного масштабного видения.
Вытягивание: работа с клиентом, с опорой на спрос. Для новых проектов — Customer Development: работа с опросами, контакт с представителями ЦА, маркетинг, стремление угодить.
Lean — вытягивающий подход. Вот бережливость: производится только та работа, которая имеет конкретную ценность для клиента, и только тогда, когда клиент её затребовал.
Создаётся и поставляется экземпляр ценности для конечного потребителя. Всё остальное минимизируется (бережётся), а именно:
- Недоделанные заготовки, “полработы”.
- Складские остатки, запасы.
- Брак на любом этапе работ.
- Потери времени на ожидание и согласование.
- Трата сил на поддержку централизованного управления.
- Смежные понимания и озарения, идеи.
Всё это считается потерями, поскольку не может быть немедленно продано. Это замороженные деньги — на складах, в головах, в потраченном времени и так далее.
Работу нужно доделывать в указанных рамках под требования конечного потребителя и ничего более.
2.2. Метрики Lean
В случае бережливого производства главные метрики — это отношение сигнала к шуму, — той работы, которая вмещена в поставку конечному пользователю, к остальной работе.
Самые базовые конкретные метрики таковы:
- Время полного выполнения цикла работ: от поступления запроса до окончательной поставки.
- Объёмы остатков на каждом этапе: чем меньше — тем лучше.
- Пропускная способность (throughput): общий объём удовлетворённого спроса за единицу времени.
Менеджеру интереснее всего флуктуации: что-то особенно ресурсоёмкое или долгое, любой сбой в ходе производственного процесса, задержка. Для работы с такими флуктуациями необходимо определить понятие нормы, поэтому производственный процесс в Lean постоянно рефлексируется, стандартизируется, делится на части.
Lean неотделим от практик постоянного совершенствования, ассоциирующихся со словом Kaizen. Описание Kaizen, процесса стандартизации и работы с качеством выходит за рамки этого обзора.
2.3. Канбан
2.3.1. Что такое канбан
Канбан — способ организации вытягивания работы, создания наглядной тяги от заказчика. Это принцип организации обратной связи в потоке работ.
- Формируются карточки — запросы работ.
- Только карточка является причиной для начала работ.
- Количество карточек лимитировано. На заводах их приклеивают к таре, например.
- Карточки обслуживают передачу запроса между последовательно связанными этапами работ.
Карточка передаётся из отдела, в котором появился спрос на выполнение работ, в отдел исполнения этого вида работ.
Важны стандартные отношения поставщик-получатель внутри компании: известно, кому и как передать задачу, как получить результаты работы. Важно известное количество работы: нормальная загрузка исполнителя, нормальный объём работ в соответствии с каждой карточкой. Важно видеть весь цикл производства ценности от запроса и до поставки.
2.3.2. Виртуальный канбан
В виртуальной реализации канбан — это доска или набор досок, на которой размещаются тикеты.
На доске организуются колонки, соответствующие отделам или компетенциям. Колонка сварщиков, другая — фрезировщиков. Или дизайнеров и верстальщиков. Лучше две колонки для каждой компетенции: запрос работ и работы в прогрессе.
Колонка “сделано" не нужна: выполненная работа передаётся в другой отдел как “запрос”. Например, выполненное API — это запрос к фронтэндерам на интеграцию.
Количество тикетов в колонке — это запасы: или задачи, на постановку которых потрачено время и которые требуются для выполнения каких-то других работ, или неудовлетворённые запросы клиента. Ограничение максимального количества тикетов в колонке — имитация ограничения эмиссии карточек в реальном мире. Задачи должны не накапливаться на каких-либо фазах выполнения, а делаться до конца и поставляться клиенту.
Сама по себе доска с тикетами канбаном не является: это просто другое отображение todo листа.
2.3.3. Визуальные инструменты
Кумулятивный поток показывает застревание работы на фазе: рост или падение объёмов запасов. Рост запасов в фазе А может означать ожидаемую перегрузку на фазе Б, или чрезмерное напряжение и необходимость манёвра, расширения, оптимизации работы А.
Диаграмма скорости поставки помогает идентифицировать задержки: по одной оси откладывается количество задач, по другой — время от постановки задачи до её исполнения. Задачи отмечаются точками.
Скорость и поток – ключевые явления и цели команды и руководителя.
И необходимы алерты при переполнении какой-то колонки. Алерт означает, что задержка точно будет: никакие новые работы этим отделом выполняться не могут, весь рабочий поток грозит остановиться. Нужна помощь.
Поэтому поощряется взаимозаменяемость, в том числе способность к переходу, при необходимости, из отдела в отдел: так манёвр ресурсами позволяет помочь решить затруднения на другом участке фронта.
Приоритет у старых задач: чаще всего канбан — это first in, first out очередь. Исключение делается только для сверхсрочных задач, уровня “всё бросить и немедленно чинить продакшн”. Для них делается отдельный уровень на доске с местом только на один тикет, в норме пустой.
Таким образом, в случае засорения потока все концентрируют усилия не на накоплении проблем и не на закапывании денег в эфире, а на их разрешении.
2.3.4. Команда как единый такт работы.
В некоторых случаях описать производственный процесс с помощью метафоры конвеера, трубы невозможно.
Если нет трубы — однонаправленного потока работы к клиенту, а ресурсы незаменяемы и нет возможности манёвра, то смысл доски меняется и упрощается. Вся команда тогда может рассматриваться как единый цех, выполняющий цельную единицу ценности сообща.
Но алгоритм всё равно тот же:
- Выделить Жизненный цикл задачи, осознать, какие она проходит преобразования;
- Определить критерии выполнения и ответственность в смене состояния, уметь не просто деплоить, а увязывать начало одних работ с завершением других, видеть взаимосвязь;
- Замерять сроки выполнения задач на каждый этап, визуализировать прогресс;
- Ограничивать размер колонок, принуждая к приоретизации и GTD.
3. Живые системы
Лин порождает фрактал абсолютно целесообразных стандартизированных работ: всякую операцию можно разделить на две, ограничить между ними буфер и оптимизировать. Получается избыточно зарегулированная человеко-машинная система.
Перестраивать готовую структуру сложно, но можно: в Тойоте умудряются делать почти мгновенно, но — не изменяя основных императивов, направлений и видов деятельности.
В итоге получаются две тенденции.
Отзывчивость в малом. Реакция на раздражители, чувствительность становится предельной. Отклонение в статистике, изменение моды, действие конкурентов, ЧП – и быстрый проход сигнала по всей компании, превращающегося в деятельность. Это, как и фрактальность, свойство живого. Лин стремится к отзывчивости — и к поведению компании как примитивного живого.
Косность в крупном. Другая сторона медали — самовоспроизводство организации и продукта даже тогда, когда нужны инновации. В Японии научились делать ещё немного лучше и дешевле. Но что там с японским космосом? Термоядом? Самолётами? Айти? Где инновации? Можно это решать альтернативными структурами — см. рефлексивные штабы. Но внедрение таких структур не даёт понятной ценности конечному потребителю, поэтому именно на них в первую очередь экономят.
Lean — спринтер. Нет запасов воздуха, не добежит — умрёт.
Нет запасов запчастей. Наработок. Идей.
Часто это лучшее, что можно сделать на короткой дистанции.
Но умные инвесторы держат пакет проектов, в хорошем проекте — спектр ценностей и адресатов. Все поджаро умрут, один выстрелит. И это стратегический подход – совсем не lean.