Close

Kanban

Использование методики Kanban при разработке ПО

Просмотр тем

Что такое Kanban?

Kanban — это популярный подход к реализации agile-разработки ПО. Он предполагает обсуждение производительности в режиме реального времени и полную прозрачность рабочих процессов. Этапы работы визуально представлены на kanban-доске, что позволяет членам команды видеть состояние каждой задачи в любой момент времени.

Статьи о Kanban

[ПРОДОЛЖЕНИЕ]

Хотя методика Kanban зародилась более 50 лет назад, она невероятно популярна среди современных agile-команд разработчиков. В конце сороковых годов XX века компания «Тойота» начала использовать модель заполнения полок в супермаркетах, чтобы оптимизировать технологический процесс. Супермаркеты выставляют ограниченное количество товаров, которого при этом достаточно для удовлетворения потребительского спроса. Таким образом оптимизируется поток товаров между супермаркетом и потребителем. Если уровень запасов соответствует потребительскому спросу, значительно увеличивается эффективность управления складом, ведь избыточных запасов — которые тоже нужно где-то хранить — становится меньше. При этом супермаркет по-прежнему гарантирует, что нужный потребителю товар всегда есть в наличии.

Компания «Тойота» применила эту систему в своих цехах, чтобы лучше соотнести внушительные складские запасы и реально используемые в производстве материалы. Для отслеживания объемов производства в цехе (и взаимодействия с поставщиками) в режиме реального времени использовалась специальная карточка, или Kanban, которую рабочие передавали между командами. Когда в корзине заканчивались используемые на участке производства материалы, на склад передавали Kanban с указанием необходимого материала, нужного количества и т. д. На складе уже стояла новая корзина с этим материалом: ее отправляли в цех, а складские работники отсылали поставщику свой Kanban. У поставщика корзина с этим материалом тоже была готова, и он отправлял ее на склад. Конечно, в современном мире сообщения передаются совсем не так, как в сороковых, но смысл остается тем же — все основано на процессе «своевременного» производства (JIT).

Kanban для команд разработчиков ПО

В наши дни agile-команды разработчиков ПО используют принцип JIT, чтобы добиться соответствия между количеством одновременно выполняемых задач (WIP) и производительностью команды. Это дает командам больше гибкости при планировании, ускоряет получение результатов, облегчает концентрацию на работе и обеспечивает прозрачность всего цикла разработки.

Kanban-доска | Atlassian — тренер по agile

Ключевые принципы методики не устаревают, их можно применить практически в любой отрасли, однако особым успехом agile пользуется среди команд разработчиков ПО. Отчасти это обусловлено тем, что от них не требуется практически никаких дополнительных затрат — нужно просто изучить основные принципы методики. Если применять Kanban в цехах, нужно будет изменить физические процессы и приобрести дополнительные материалы, а командам разработчиков ПО потребуются только доска и карточки, да и те могут быть виртуальными.

Kanban-доски

Работа Kanban-команд строится вокруг Kanban-доски, которая используется для визуализации и оптимизации рабочего процесса. Хотя некоторые команды предпочитают реальные доски, их виртуальные аналоги давно стали ключевой функцией любого инструмента agile-разработки ПО: с ними проще отследить процессы, а также организовать совместную работу и доступ из разных мест.

Доски нужны, чтобы визуализировать работу команды, стандартизировать процесс, а также найти и устранить блокеры и зависимости. И не важно, в какой форме они представлены — физической или цифровой. На стандартной Kanban-доске процесс состоит из трех шагов: «Запланировано», «В работе» и «Сделано». Однако доску можно настроить в соответствии с процессом, принятым в той или иной команде, в зависимости от ее размеров, структуры и целей.

Методика Kanban основана на полной прозрачности работы и обмене информацией по ресурсам в режиме реального времени. Таким образом, Kanban-доска должна стать единственным достоверным источником информации о работе команды.

Kanban-доска agile | Atlassian — тренер по agile

Kanban-карточки

В переводе с японского Kanban дословно означает «визуальный сигнал». У команд, использующих Kanban, каждая рабочая задача представлена в виде отдельной карточки на доске.

Зачем отображать работу в виде карточки на Kanban-доске? Благодаря такому наглядному представлению членам команды будет проще и удобнее отслеживать выполнение задач по ходу процесса. На карточках Kanban отображается ключевая информация о конкретной рабочей задаче, доступная всей команде — имя ответственного за выполнение задачи, краткое описание текущей работы, оценка времени, необходимого для ее выполнения, и т. д. На виртуальных Kanban-досках в карточки также часто добавляют снимки экрана и другие важные для исполнителя технические детали. Когда все члены команды видят состояние каждой рабочей задачи в любой момент времени, а также всю связанную с ней информацию, повышается концентрация, обеспечивается полная отслеживаемость, быстрее выявляются блокеры и зависимости.

Преимущества Kanban

На сегодняшний день Kanban — одна из самых популярных методик разработки ПО, используемых agile-командами. Kanban предоставляет командам любых размеров ряд дополнительных преимуществ, касающихся планирования задач и обеспечения производительности.

Гибкость планирования

Kanban-команда концентрируется только на текущей работе. По завершении рабочей задачи команда забирает следующую задачу с верха бэклога. Владелец продукта может менять приоритет задач в бэклоге, не мешая работе команды, поскольку изменения происходят за пределами текущих рабочих задач. Если владелец продукта следит, чтобы наверху бэклога были самые важные рабочие задачи, команда разработчиков будет гарантированно поставлять максимально ценный продукт бизнесу. Таким образом, итерации с фиксированной продолжительностью, используемые в Scrum, просто не нужны.

Подсказка

Опытные владельцы продуктов обязательно привлекают команду разработчиков к изменениям в бэклоге. Например, если в бэклоге описаны пользовательские истории 1–6, оценка пользовательской истории 6 может быть основана на завершении пользовательских историй 1–5. Чтобы избежать неприятных сюрпризов, все изменения лучше согласовывать с командой разработчиков. 

Сокращение времени цикла

Время цикла — ключевой показатель для Kanban-команд. Под временем цикла понимается время прохождения рабочей задачей жизненного цикла, от начала работы над задачей до ее поставки. При оптимизации времени цикла команда сможет с уверенностью предсказывать срок поставки задач в будущем.

Если теми или иными навыками обладает несколько человек, время цикла сокращается, если же только один — в процессе появляется проблемное место. Именно поэтому команды стремятся делиться знаниями и внедряют такие практики, как проверка кода и наставничество. Благодаря обмену знаниями члены команды могут выполнять разнообразные задачи, что еще больше оптимизирует время цикла. Это также означает, что в случае накопления рабочих задач вся команда сможет взяться за них и восстановить нормальное течение процесса. К примеру, тестирование не всегда выполняют только инженеры по контролю качества — в этом могут поучаствовать и разработчики.

В методике Kanban все члены команды отвечают за то, чтобы работа шла как по маслу.

Меньше узких мест

Многозадачность убивает эффективность. Чем больше задач входит в масштаб работы, тем чаще приходится переключаться между ними, что сказывается на сроках их завершения. Поэтому ключевой принцип Kanban состоит в ограничении количества одновременно выполняемых задач (WIP). Ограничение задач позволяет быстро находить в работе команды проблемные места, вызванные нехваткой внимания, людей или навыков.

К примеру, типичная команда разработчиков ПО может использовать четыре состояния процесса: «Запланировано», «В работе», «Проверка кода» и «Сделано». Для состояния проверки кода может быть установлено ограничение WIP, равное 2. Число может показаться маленьким, но это объясняется тем, что разработчики предпочитают писать собственный код, а не проверять чужой. Низкое ограничение стимулирует команду уделять особое внимание задачам в состоянии проверки, а также проверять чужую работу, прежде чем создавать свои задачи на проверку кода. В конечном итоге это снижает общее время цикла.

Наглядность

Одна из основных ценностей — предельное внимание к повышению эффективности команды с каждой рабочей итерацией. Графики — это визуальное средство, позволяющее командам не останавливаться на достигнутом. Если у всей команды есть доступ к данным, проще заметить (и устранить) проблемные места в процессе. Kanban-команды часто используют два вида отчетов: контрольные графики и сводные диаграммы процесса.

На контрольном графике отображается время цикла для выполнения каждой задачи, а также скользящая средняя для всей команды.

Подсказка

Цель команды — сократить время прохождения задачи по этапам рабочего процесса. Если среднее время цикла на контрольном графике снижается, то команда на верном пути. 

Контрольный график agile | Atlassian — тренер по agile

На сводной диаграмме процесса отображается количество задач в каждом состоянии. Выявить проблемные места несложно: если число задач увеличивается на одном из этапов, значит, что-то идет не так. Промежуточные состояния, такие как «В работе» или «На проверке», указывают на то, что задача еще не поставлена клиенту. Если таких задач становится все больше и больше, повышается вероятность серьезных конфликтов при интеграции в процессе слияния кода. 

Сводная диаграмма процесса

Непрерывная поставка

Вы уже знаете, что непрерывная интеграция (практика инкрементной автоматизированной сборки и тестирования кода в течение дня) — залог поддержания качества. Пришло время узнать, что такое непрерывная поставка (CD). CD предполагает регулярную поставку релизов продукта клиентам, вплоть до ежедневных или ежечасных релизов. Kanban и CD идеально дополняют друг друга, поскольку обе методики основаны на своевременной (и последовательной) поставке ценного функционала.

Чем быстрее команда сможет выпустить инновацию на рынок, тем более конкурентоспособным будет ее продукт. Таким образом, Kanban-команды сконцентрированы на оптимизации процесса поставки продуктов клиентам.

Сравнение Scrum и Kanban

Некоторые концепции Kanban и Scrum похожи, однако в этих методиках используются совершенно разные подходы. Их необходимо четко разграничивать. 

 

SCRUM

KANBAN
График

Регулярные спринты фиксированной длительности (например, 2 недели)

 Непрерывный процесс
Методика выпуска релизов В конце каждого спринта после одобрения владельцем продукта Поставка выполняется непрерывно или на усмотрение команды
Роли Владелец продукта, Scrum-мастер, команда разработчиков Ролей нет, в некоторых командах работают тренеры по agile
Ключевые показатели Скорость Время цикла
Отношение к изменениям В ходе спринта команды стремятся избегать изменений в прогнозах спринта: изменения приведут к неверным выводам, касающимся оценки задач Изменение может произойти в любой момент

 

Некоторые команды объединяют идеалы Scrum и Kanban в Scrumban. Из Scrum берут спринты фиксированной длительности и роли, а из Kanban — концентрацию на продолжительности цикла и ограничение количества одновременно выполняемых задач. Если ваша команда только начинает использовать agile, мы настоятельно рекомендуем выбрать ту или иную методику и некоторое время следовать только ей. Время для экспериментов найдется всегда. 

Dan Radigan
Dan Radigan

Agile has had a huge impact on me both professionally and personally as I've learned the best experiences are agile, both in code and in life. You'll often find me at the intersection of technology, photography, and motorcycling. 

Up Next
Boards