При разработке программного обеспечения возникают большие трудности при организации работы группы разработчиков. Каждый в группе выполняет разные задачи. Как согласовать их работу, чтобы все действовали слаженно, и никто не становился тормозом процесса в целом?
Возникает задача управления проектом.
Решить эту задачу с наименьшими затратами можно с помощью системы с открытым исходным кодом kanboard.org.
Два слова об истории термина Kanban
Kanban — термин японский, родом из 60-х годов XX столетия; переводится как «рекламный щит», «рекламная вывеска»1. В японии это слово произносится как «камбан», но на западе вошло в традицию «канбан». Эта методология изобретена в 1959 г. в компании Toyota с её огромным конвейерным производством и внедрена там с 1962 года. Принципиальный момент большого производства в том, что существую основное производство и сопутствующие; на каждом есть конвейер: главный и вспомогательные. Отсюда данность разности скоростей этих конвейеров: вспомогательные не могут увеличить скорость главного конвейера, но могут её замедлить в том случае, если не успеют выпустить необходимые комплектующие вовремя.
Также возникает проблема пересортицы при изменении приоритетов. Например, главный конвейер пропускает 30 кузовов за смену. Покрасочное производство должно работает с той же скоростью. И если на главном конвейере придёт заказ, что 10 кузовов из 30 должны быть другого цвета, а покрасочный цех выкрасит все кузова в один цвет, то возникнет дефицит в 10 корпусов, хотя номенклатура комплектующих выпущена вовремя, но сорта не те. Налицо конфликт номенклатуры — количественные показатели производства выполнены, но главному конвейеру всё равно грозит остановка.
Kanban нацелен на решение данных проблем: сокращает время производства и быстро выявляет простои и дефекты. Возникло понятие «бережливое производство».
Правила Kanban
Kanban состоит из трёх простых правил. При этом отсутствуют роли и жёсткие правила.
1 Временные рамки
Временные рамки либо очень широкие, либо отсутствуют. Вместо них определяются цели, которые команда разбивает на конкретные задачи. Замеряется время на выполнение конкретной задачи и эффективность всего коллектива при достижении поставленной цели.
2 Бережливое производство и уменьшение задач
Вместо массы мелких задач устанавливается несколько глобальных, разделённых на этапы.
Количество задач, выполняемых исполнителем одновременно, ограничено (окрашивать не более нескольких корпусов одновременно). Это позволяет управлять скоростью работы исполнителя и скоростью реакции на изменившиеся вводные.
Исполнитель имеет план выпуска деталей, перечень задач. Задачи в плане располагаются по приоритету, который может изменяться в любой момент. Соответственно, задача переместится вверх или вниз. Например, нужно изменить цвет окраски корпусов.
В результате продукт собирается как бы по конвейеру. Но это приносит пользу лишь тогда, когда нужно избавить себя от лишнего труда — работать не «на склад», а лишь с той задачей, которая появилась сейчас. Пример той же Тойоты: можно произвести 15 лобовых стёкол и 5 задних — в результате 10 лобовых отправятся пылиться на склад.
3 Визуализация
Особенностью методологии Kanban является визуализация всего процесса, чтобы команда видела, какие задачи можно отложить, а какие нужно выполнять прямо сейчас. Инструментом для этого является Канбан-доска.
Канбан-доска — фактически это таблица, внутри которой пришпиливают цветные стикеры с задачами.
Kanban в проектах разработки ПО
Kanban хорошо работает в проектах, у которых отсутствует чёткий план, но ведётся активная разработка. Работу методологии можно проиллюстрировать на примере работы одного разработчика сайта. Поскольку разработчик один, то и лимит задач на этапе «В процессе» равен одному.
Да, разумеется, существуют проекты, где один исполнитель может условно одновременно вести несколько задач — например в техподдержке.
Руководитель разработчика, управляющий процессом, может
-
изменить лимит задач «в работе»;
-
изменять приоритет задач и решать, какая из них, тем самым, должна быть сделана как можно скорее.
Во время работы исполнителя его задача может быть заблокирована. Например отвалился канал связи. В этом случае задача возвращается на этап «План», а исполнитель выбирает новую задачу из «плана» с максимальным приоритетом (верхнюю).
В результате Kanban, при грамотном руководстве, максимально увеличивает скорость работы команды, до минимума снижает время реагирования на изменившиеся задачи и сокращает издержки управления.
Kanban — это элементарно.
Издержки и ограничения Kanban
Практика показала, что, в чистом виде, данная методология плохо работает в больших группах (более 5 человек). Сложно объединить многофункциональные команды (разработка и тестирование, например) — в этом случае придётся делать разбиение проекта на части с отдельными руководителями.
Рождение методологии Kanban как способа оперативного управления, предопределило — Kanban — тактика, а не стратегия: в нём невозможно долгосрочное планирование.
1 «кан» — видимость, «бан» — карточка.