конкурс красоты или что втянуть следующим?
Работа в канбан должна быть построена по принципу PULL (вытягивай), а не по принципу PUSH (вталкивай). Это значит, что каждый раз, как у нас освобождается место в системе мы начинаем задумываться, а что мы втянем из предыдущего этапа.
Канбан так же основывает на бережливом подходе, где фокус направлен на устранение потерь. В нашем случае, одна из потерь — это предварительный анализ задачи. Так как же понять, что мы можем взять в работу не подгружаясь в детали поставленной задачи?
Для этого нам поможет прием Конкурс красоты. Давайте рассмотрим на примерах из жизни, как это работает.
Первый пример — Очередь на регистрацию в Аэропорту.
У нас есть, какое-то количество операторов, которые могут принять ваш багаж и зарегистрировать на любой рейс. Есть явные правила, что регистрация начинается за какое-то количество часов, выделен определенный набор операторов и есть единая очередь для обработки всех путешествующих.
Элементы работы (WIT Working ITem) в данном случае, это сами туристы. Первоначально они для нас все одинаковые, т. е. у нас один класс-обслуживания. Здесь стоит заметить, что есть разделение виды билетов Бизнес и Эконом, но так как они не конкурируют друг с другом мы можем допустить, что это разные канбан системы (потоки создания ценности).
Еще у нас есть кто-то, кто управляет системой (желтый человечек), он может менять классы обслуживания у каких-то элементов работы на основе легкодоступной информации.
Пока все идет хорошо и очередь работает по принципу FIFO (Первый вошел, первый вышел), но все меняется если заканчивается время на регистрацию на определенный рейс и нам нужно этих людей обслужить раньше, так как для них стоимость задержки резко возрастает по сравнению с теми, кто встал в очередь заранее.
Теперь, нам нужно разделить очередь на два класса обслуживания: обычные пассажиры и пассажиры у которых заканчивается регистрация на рейс. Что делает наш желтый человечек? О начинает спрашивать: «Есть ли кто-то, кто летит, например, в Санкт-Петербург?» (это внешняя легкодоступная информация и является внешним признаком). Туристы, кто идентифицировал себя подходящими данному критерию поднимают руку и проходят без очереди. Желтый человечек при этом убеждается, что туристы действительно летят нужным рейсом.
Второй пример, это ресторан
У нас опять есть желтый человечек на входе, который определяет, кого следующим втянуть с систему. На основании чего он может принимать, кого впустить в ресторан следующим? Вполне логично, чтобы максимум столов и стульев было занято (т. е. максимальная утилизация места в ресторане). Столы бывают следующих типов: на двух человек и четырех.
У нас опять же есть очередь с людьми, те кто пришел один, парами или семьей/компанией (для наглядности выделены разными цветами).
Понимая свою цель мы мысленно делим людей на 1 и 2 человека — это будет один класс обслуживания и более — другой класс. Эта информация нам нужна для того, чтобы пригласить в ресторан наиболее выгодно. Очевидно, что сажать одного или двух людей за столик на четверых не выгодно.
Теперь, когда у нас поступает сигнал от системы (освободился столик на двух человек) мы идем по очереди и ищем, кто первым будет удовлетворять нашим условиям: берем парочку или одного посетителя. Этот критерий легкодоступный и не требует от нас затрат на дополнительную обработку данных. Например, мы могли бы узнать, что люди хотели бы заказать, на какую сумму будет заказ и например, как часто они к нам приходят, но в данной задаче для нас это излишне и на уровень оказываемого сервиса не влияет.
А теперь, давайте посмотрим, как это может выглядеть на канбан-доске
Между какими-то этапами есть колонки «очередь» и «в работе». У нас есть явные различия между ожидающими выполнения задачи (кружки, треугольник и квадрат). В представленном примере у нас свободен слот для синего квадрата, то его-то мы и втянем следующим, вне зависимости, что кружки и треугольник по времени пришли раньше.
Более того, не все задачи которые поступают требуют обязательного выполнения и вы можете сформировать явные правила на то, какие задачи вы точно выполнять не будете. В ресторане это может быть дресс-код, а в аэропорту — ограничение на багаж, который вы можете взять с собой или поместить в багаж.
Рома, привет! Спасибо за пост и особенно за иллюстрации )) особенно-особенно за здание ресторана, и краеугольные камни в арке.
Вопрос: если бы в очереди нет синего квадрата для освободившегося слота, то как поведёт себя система?
Руслан, спасибо за вопрос. По умолчанию оставить слот пустым, пока не придёт синий квадрат. А все остальные вариации уже по контексту: можно ли на синее место втянуть фигуру другого цвета?
Например, за стойкой бизнес класса, если таких пассажиров нет, то обслуживают из эконома, ветеранов войны пускают без очереди, за столик на двоих сажают одного и т. д.
Здесь важно смотреть статистику, как часто приходят синие квадраты, сколько они приносят ценности по сравнению с другими фигурами и посмотреть как часто бывает ситуация, что синего квадрата нет в очереди? Может быть стоит задуматься над тем, чтобы в очереди всегда были минимум 1 или 2 квадрата? Это всегда эксперимент и достижение SLE (ожидания от уровня сервиса)
Как быть в канбан с задачами такого плана — синий квадрат зашел в ресторан, согласно очереди. Но ему не понравилось место и он попросил официанта поставить его обратно в очередь. Но представим что очередь это хол на 10 человек, и если он туда попадет то будет 11ым.
Как быть?
Вопрос по сути про обратные переходы в предыдущие колонки. Если это делать то можно легко превысить wip колонкив которую перемещаем, если двигаться только вперед то непонятно куда — клиент хочет в очередь, а не счет(следующая колонка в нашей выдуманной доске, после посадки за столик)