Канбан в ИТ-проектировании. Метрики и их использование для оптимизации процесса разработки

Канбан в ИТ проектировании. Метрики и их использование для оптимизации процесса разработки

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



Канбан предоставляет две ключевые метрики для объективного измерения производительности команды: время выполнения заказа и время цикла.

Время выполнения — это время от момента, когда задача входит в фазу запуска, до момента, когда она выходит из фазы завершения, т. е., в нашем примере, это дельта времени с момента, когда задача вводится в столбец «Незавершенная работа», до момента, когда она перемещается в столбец «Готово».

Время выполнения также должно управляться, чтобы обеспечить своевременную доставку функций. Команда может оптимизировать время выполнения заказа одним из следующих способов:

  • разбиение шага на несколько более мелких шагов;

  • объединение нескольких более мелких шагов в один;

  • автоматизация через скрипты;

  • добавление дополнительных ресурсов, например, вычислительной инфраструктуры;

  • дополнительные циклы тестирования/обзора для ограничения деятельности по отходам на последующих этапах.

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

Еще одна метрика — время цикла, которое измеряет, когда работа над задачей фактически началась и когда она была завершена. Это не измерение усилий, а продолжительность пребывания цикла в системе. Время цикла — это время, необходимое для того, чтобы функция перемещалась от начала до конца вашего процесса, а время выполнения — это время между тем, когда функция входит в ваш процесс и выходит из него. Расчет среднего времени выполнения заказа и времени цикла дает представление о вашем рабочем процессе. Сравнение средних показателей времени выполнения задачи на различных этапах может предоставить эмпирическое доказательство того, что процесс улучшается.

После того, как собран надежный набор эмпирических данных о времени выполнения заказа и времени цикла, для расчета пропускной способности команды следует использовать закон Литтла: долгосрочное среднее количество заявок в устойчивой системе (L) равно долгосрочной средней эффективной частоте прибытия (λ), умноженной на среднее время, которое клиент проводит в системе (W).

Выразим эту идею алгебраически:

L = λW

Или в терминах Канбан:

Среднее время цикла = Среднее время работы над задачей / Средняя пропускная способность

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

Используя описанные основные практики и метрики, команда может визуально увидеть следующие проблемы в своем рабочем процессе:

  • выявить узкие места;

  • выявить области «торможения» рабочего процесса;

  • выявить области улучшения потока.

Правило управления потоком основано на учете того обстоятельства, что весь процесс должен постоянно пересматриваться ради нахождения способов сделать вашу команду более эффективной и продуктивной. Другими словами, ключ в том, чтобы найти и устранить расточительные действия в вашем процессе.

Для команд разработчиков рекомендуется, чтобы перед тем, как процесс Канбан в проекте будет запущен, четкое представление о общей картине проекта имели все его участники. Область знаний о проекте должна включать набор приоритетных функций, которые будут реализованы, и первоначальный архитектурный взгляд на то, как все функции будут работать вместе. Чтобы было ясно, это архитектурное представление должно охватывать все части системы, включая, помимо прочего, проектирование, тестирование, физическое проектирование и программное обеспечение, если это необходимо. Получив это представление, по мере развития проекта команда может затем предоставить рекомендации о том, как следует разрабатывать взаимозависимые функции. Это снижает вероятность переделок из-за неправильной сборки.

ИТ-проектирование и Канбан. Акцент на устранении потерь

Ключевым элементом Канбан и бережливого производства является акцент на устранении потерь. В среде проектирования потери вызваны, как правило, расточительными действиями, такими, как:

1) выполнение большего, чем нужно

Позиция «эта функция когда-нибудь пригодится, давайте добавим ее» недопустима в ИТ-проекте. Команда должна сосредоточиться только на том, что необходимо сейчас, то есть на выполнении задачи наиболее оптимальным образом. Это не означает, что нужно исключить очень ценную задачу разработки модуля/класса для размещения будущих функций, но во главе угла должно стоять понимание того, что следует рассматривать только ту работу, которая добавляет ценность.

2) Выполнение того, что нужно, неоптимальным способом

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

3) многозадачность

Многозадачность всегда повышает издержки, поскольку стоимость переключения контекста может быть высокой. Ограничения WIP определяют границы «растяжения» усилий команды.

4) незавершенность / неполнота исполнения

Канбан способствует идее четкого определения момента выполнения задачи с помощью критериев входа и выхода из каждого столбца.

5) ожидание / простой

Отговорка «Я не могу начать это задание, пока не получу его от…» в системе Канбан не работает. Визуальная доска и ежедневные встречи создают возможность обозначить блокирующие задачи. Типичным примером в ИТ-проекте является ситуация, когда проект ожидает среды проверки. Канбан может помочь в этом, разделяя задачи проверки на создание простой среды проверки работоспособности системы, а затем добавляя задачи, усложняющие среду проверки.

6) ошибки выбора ресурса / задачи

Отговорка «Попросите Вову сделать это, пока он не занят» в системе Канбан не работает.

Назначение кого-то, кто доступен, но недостаточно компетентен, обычно заканчивается работой низкого качества, которая занимает больше времени, чем хотелось бы, и неизбежно требует переделки позже. Любая переделка - пустая трата времени. Хотя Канбан не предоставляет никакого механизма для выделения этой проблемы, он помогает выявить ее именно как проблему, требующую решения, поскольку задача, поддерживаемая ошибочно назначаемыми ресурсами, вероятно, займет больше времени, чем обычно.

Интеграция методологии Канбан

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

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

Итак, что же можно сделать для постепенного внедрения Канбан в ваш поток? Есть три японских термина для описания перехода Канбан-команд от позиции новичка к статусу мастера:

SHU – место, где изучаем основы техники или методологии;

Ha - понимание основ и постепенного внедрения и адаптации нового метода;

RI - овладение техникой, использование расширенных данных и внедрение новшеств.

Рассмотрим эти стадии подробно.

I. SHU - Знакомство с канбан

Предлагаем этапы внедрения Канбан в команду:

Фаза 1 — обучение: привлеките специалиста, чтобы узнать о Канбан больше.

Фаза 2 – визуализация потока: осуществите записи текущего процесса с помощью доски. Начните с того места, где сейчас находится команда. Визуализация – это не образ того, как вы хотите работать, а фиксация того, как работа осуществляется на самом деле. Хорошая, то есть информативная и точная визуализация – это отличный старт для тех, кто внедряет Канбан. Далее следует убедиться, что команда понимает критерии входа и выхода для каждого этапа.

Фаза 3 - добавление лимитов WIP. Добавление лимитов WIP должно быть основано на реальности. Хороший вариант — начать с расчета WIP как произведения количества инженеров / специалистов на разумное среднее количество единовременно выполняемых каждым из них задач. Специалисты Канбан рекомендуют начинать с малого и постепенно увеличивать показатель WIP опытным путем, например, когда свободные слоты остаются открытыми слишком долго или время цикла слишком велико. Это начинает определять узкие места и ограничения ресурсов.

Фаза 4 – обзор. Обзор можно осуществлять на всех этапах. Целью является обсуждение хода процесса и устранение узких мест, а также улучшение того, что (и как) делается.

II. НА — использование Канбан

Как только базовые навыки Канбан сформированы, можно приступить к внедрению методологии.

Фаза 1 — сбор показателей. Начните сбор доступных показателей. Это предоставит объективные данные, на основе которых могут быть осуществлены прагматические изменения. Кроме того, сбор данных обеспечивает основу для объективного определения того, действительно ли какое-либо изменение процесса повысило производительность команды.

Фаза 2 — использование метрик. Метрики, собранные во время любых обсуждений, используются для улучшения оценки задач / мероприятий и для разумного планирования объема работ, с которым команда может справиться.

III. RI - Освоение Канбан

На данном этапе команда полностью разбирается в использовании Канбан. Используя собранные данные, вы теперь можете включить их в свои будущие сеансы планирования, чтобы оценить продолжительность набора задач, стоящих перед вами. Теперь ваше планирование основано на эмпирических данных, а не на иллюзорных предположениях. Поскольку оценки основаны на эмпирических данных, Вы можете быть уверены в их точности.

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

Ничто так не пугает людей, как неизвестность. Если изменение и его цели не будут поняты полностью, в большинстве случаев люди негативно отреагируют на изменения. Шансы на успех возрастут, если обучение и внедрение Канбан будет произведено постепенно.

Наконец, следует иметь ввиду, что представленное обсуждение Канбан предназначено только для старта. Хотя Канбан сам по себе относительно прост, мотивы его использования и контекст, в котором он был разработан, могут потребовать дополнительных разъяснений. Чтобы узнать больше о Канбан и о том, как этот метод применяется в бережливом производстве и разработке продуктов, имеет смысл обратиться к специальной литературе. Таким образом, использование Канбана для повышения эффективности ИТ-проектирования трудно переоценить.

Часто задаваемые вопросы

Как Канбан помогает управлять рисками в проектах?

Делая работу видимой и ограничивая незавершенное производство, Канбан помогает выявлять потенциальные риски на ранних этапах процесса. Команды могут видеть, где работа застопорилась, устарела или отклоняется от нормального потока, что позволяет им проактивно управлять рисками. Метрики Канбана также предоставляют данные для оценки и снижения рисков.

Какова роль канбан-доски в содействии сотрудничеству?

Канбан-доска служит центром сотрудничества, обеспечивая общее понимание статуса работы, приоритетов и узких мест. Команды часто проводят ежедневные летучки вокруг доски, чтобы обсудить поток, проблемы и улучшения. Доска также обеспечивает кросс-функциональное сотрудничество, делая зависимости видимыми.

Как Канбан может помочь управлять ожиданиями заинтересованных сторон?

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

Что такое концепция классов обслуживания в Канбане?

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

Как Канбан способствует культуре непрерывного совершенствования?

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

Какова роль руководства во внедрении Канбан?

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

Как Канбан справляется с работой, которая заблокирована или задержана?

Заблокированная работа обычно обозначается на канбан-доске визуальным маркером, таким как красный магнит или флаг. У команд должны быть правила для работы с заблокированными работами, такие как эскалация к менеджеру или ро​​​ение для решения проблемы. Время блокировки должно отслеживаться как показатель для выявления системных проблем.

В чем разница между системами push и pull в Канбан?

В push-системе работа назначается команде на основе заранее определенного графика или плана. В вытягивающей системе работа втягивается в процесс в зависимости от возможностей команды и согласованной политики. Канбан - это вытягивающая система, в которой команда вытягивает работу из бэклога по мере наличия возможностей, обеспечивая более устойчивый и адаптивный поток.


Yandex pixel