Что такое канбан?
Канбан — это японский термин, который означает вывеску или билборд. Промышленный инженер по имени Тайичи Оно разработал Канбан в Toyota Motor Corporation для повышения эффективности производства.
Несмотря на то, что Канбан был создан для производства, разработка программного обеспечения разделяет многие из одинаковых целей, таких как увеличение потока и пропускной способности. Команды разработчиков программного обеспечения могут повысить свою эффективность и быстрее обеспечить ценность для пользователей с помощью руководящих принципов и методов Канбана.
Принципы канбана
Принятие канбана требует соблюдения некоторых фундаментальных методик, которые могут отличаться от предыдущих методов команд.
Визуализация работы
Понимание состояния команды разработчиков и хода выполнения работы может оказаться непростой задачей. Ход выполнения работы и текущее состояние легче понять при визуальном представлении, а не в виде списка рабочих элементов или документа.
Визуализация работы является ключевым принципом, который канбан обращается в первую очередь через канбан-доски. Эти доски используют карточки, упорядоченные по ходу выполнения, для передачи общего состояния. Визуализация работы в виде карточек в разных состояниях на доске помогает легко увидеть общую картину того, где в настоящее время стоит проект, а также выявить потенциальные узкие места, которые могут повлиять на производительность.
Использование модели по запросу
Исторически сложилось так, что заинтересованные лица запрашивали функциональные возможности, отталкивая команды разработчиков, часто с жесткими сроками. Качество пострадало, если командам приходилось использовать ярлыки для предоставления функциональных возможностей в течение срока.
Канбан фокусируется на поддержании согласованного уровня качества, который должен быть достигнут, прежде чем рассматривать вопрос о выполнении работы. Для поддержки этой модели заинтересованные лица не отправляют работу в команды, которые уже работают в емкости. Вместо этого заинтересованные лица добавляют запросы в невыполненную работу, которую команда извлекает в свой рабочий процесс по мере того, как емкость становится доступной.
Наложение ограничения WIP
Команды, которые пытаются работать над слишком большим количеством вещей одновременно, могут пострадать от снижения производительности из-за частого и дорогостоящего переключения контекста. Команда занята, но работа не выполняется, что приводит к неприемлемо высокому времени выполнения. Ограничение количества элементов невыполненной работы, над которые команда может работать за раз, помогает увеличить фокус и уменьшить переключение контекста. Элементы, над которыми в настоящее время работает команда, называются текущей работой (WIP).
Команды принимают решение об ограничении WIP или максимальном количестве элементов, над которые они могут работать одновременно. Хорошо дисциплинированная команда следит за тем, чтобы не превысить лимит WIP. Если команды превышают ограничения WIP, они исследуют причину и работают над устранением первопричины.
Измерение непрерывного улучшения
Для непрерывного совершенствования командам разработчиков требуется способ измерения эффективности и пропускной способности. Канбан-доски предоставляют динамическое представление о состоянии работы в рабочем процессе, поэтому команды могут экспериментировать с процессами и более легко оценивать влияние на рабочие процессы. Команды, использующие канбан для непрерывного улучшения, используют такие измерения, как время выполнения и время цикла.
Канбан-доски
Канбан-доска является одним из инструментов, используемых командами для реализации канбан-практик. Канбан-доска может быть физической доской или программным приложением, которое показывает карточки, упорядоченные по столбцам. Типичные имена столбцов: To-Do, Doing и Done, но команды могут настраивать имена в соответствии с состояниями рабочего процесса. Например, команда может предпочесть использовать new, development, testing, UAT и Done.
Канбан-доски на основе разработки программного обеспечения отображают карточки, соответствующие элементам невыполненной работы по продуктам. Карточки содержат ссылки на другие элементы, такие как задачи и тестовые случаи. Команды могут настраивать карточки, чтобы они включали сведения, относящиеся к их процессу.
На канбан-плате ограничение WIP применяется ко всем столбцам в процессе выполнения. Ограничения WIP не применяются к первому и последнему столбцам, так как эти столбцы представляют работу, которая еще не запущена или завершена. Канбан-доски помогают командам оставаться в пределах WIP, обращая внимание на столбцы, превышающие ограничения. После этого Teams может определить, какие действия помогут устранить узкое место.
Совокупные схемы потоков
Распространенным дополнением к канбан-доскам на основе разработки программного обеспечения является диаграмма, называемая накопительной схемой потока (CFD). Cfd показывает количество элементов в каждом состоянии с течением времени, как правило, в течение нескольких недель. Горизонтальная ось показывает временную шкалу, а вертикальная — количество элементов невыполненной работы по продуктам. Цветные области указывают на состояния или столбцы, в которых в настоящее время находятся карточки.
CFD особенно полезен для выявления тенденций с течением времени, включая узкие места и другие нарушения скорости прогресса. Хороший КОНТРАКТ показывает последовательный восходящий тренд, пока команда работает над проектом. Цветные области на диаграмме должны быть примерно параллельными, если команда работает в пределах ограничений WIP.
Выпуклость в одной или нескольких цветных областях обычно указывает на узкое место или препятствие в потоке команды. В следующем КОНТРАКТЕ, завершенные работы в зеленом цвете плоские, в то время как состояние тестирования в синем растет, вероятно, из-за узкого места.
Kanban и Scrum в гибкой разработке
Хотя в целом подходят под эгидой гибкой разработки, Scrum и Kanban довольно разные.
- Scrum фокусируется на спринтах фиксированной длины, а Канбан — это модель непрерывного потока.
- В Scrum определены роли, в то время как Канбан не определяет роли команды.
- Scrum использует скорость в качестве ключевой метрики, а Канбан — время цикла.
Команды обычно используют аспекты Scrum и Kanban, чтобы помочь им работать наиболее эффективно. Независимо от того, какие характеристики они выбирают, команды всегда могут просматривать и адаптироваться, пока не найдут наиболее подходящие. Команды должны начать просто и не упускать из виду важность регулярного предоставления пользователям ценности.
Канбан с GitHub
GitHub предлагает канбан-интерфейс через доски проектов (классические). Эти доски помогают организовать и определить приоритеты для разработки конкретных функций, комплексных стратегий или контрольных списков выпусков. Вы можете автоматизировать доски проекта (классические) для синхронизации состояния карточки со связанными проблемами и запросами на вытягивание.
Канбан с Azure Boards
Azure Boards предоставляет комплексное канбан-решение для планирования DevOps. Azure Boards имеет глубокую интеграцию в Azure DevOps, а также может быть частью интеграции Azure Boards-GitHub.
- Дополнительные сведения см. в статье Причины использования Azure Boards для планирования и отслеживания работы.
- Модуль Learn Выберите гибкий подход к разработке программного обеспечения предоставляет практические навыки канбана в Azure Boards.