Что такое Kanban?
Kanban — одна из популярных гибких (Agile) техник, которая отлично подходит для визуализации и оптимизации потока задач. Но, к сожалению, у начинающих тестировщиков этот метод вызывает огромное количество проблем и вопросов. В этой статье мы немного погрузимся в Kanban и разберём то, как он работает.
Немного истории
В 50-е годы 20-го века компания «Toyota» столкнулась с тем, что их склады постоянно переполнялись.
Для решения этой проблемы, «Toyota» придумала интересный метод:
Ввести визуализацию процесса создания автомобилей и ограничение работы на одной стадии, тем самым сделав процесс потоковым, чтобы ни на каком из этапов не было застоев. Позже этот метод начал применяться и в других сферах, в том числе и разработке программного обеспечения.
Как работает Kanban?
Отличительные черты канбана:
- Прозрачность процесса путём визуализации разработки с помощью Kanban доски
- Ограничение количества задач, находящихся на одной стадии (Work In Progress, WIP), например максимум 5 задач может находиться одновременно на этапе разработки
Ниже можно увидеть пример Kanban доски с ограничениями.
На стадиях In Progress, Peer Review, In Test одновременно может находиться не более того числа, что находится в скобках.
Для чего это нужно?
Ответ прост: Для того, чтобы команда не делала параллельно несколько задач, а старалась как можно быстрее довести одну задачу из In Progress в Done. Тем самым уменьшив среднее время доставки одной задачи в Done.
Где чаще всего используется Kanban?
Kanban лучше всего подходит для проектов, где необходим потоковый процесс и непрерывный деплоймент на продакшн окружение. Например, саппорт или любой проект, где каждое изменение после тестирования сразу попадает в продакшн.
Scrum VS Kanban
Scrum | Kanban | |
График | Регулярные спринты фиксированной продолжительности (например, 2 недели) | Непрерывный процесс |
Подходы к релизу | В конце каждого спринта после одобрения владельцем продукта | Поставка выполняется непрерывно или на усмотрение команды |
Роли | Владелец продукта, Scrum-мастер, команда разработчиков | Ролей нет, в некоторых командах работают тренеры по agile |
Ключевые показатели | Количество Story Points, которое команда может сделать за спринт (Velocity) | Среднее время, за которое задача проходит полный цикл от начала работы до конца (Lean time) |
Ограничение по задачам | Ограничение на количество задач, которые находятся в спринте. В начатый спринт можно добавлять только те задачи, которые соответствуют цели спринта. | Ограничение на количество задач, находящихся на одной стадии (Work In Progress, WIP), например, максимум 5 задач может находиться одновременно на этапе разработки |
Отношение к изменениям | В ходе спринта команды стремятся избегать изменений в прогнозах спринта: изменения приведут к неверным выводам относительно оценки задач | Изменение может произойти в любой момент |
Встречи, митинги | Обязательны Backlog Refinement, Sprint Planning, Daily Scrum, Sprint Review, Sprint Retrospective | Встречи и мероприятия не обязательны |
Подведём итог:
Kanban — одна из самых неформальных Agile техник, т.к. по сути есть только 2 правила — визуализация и ограничение WIP.
Цель Kanban — сделать так, чтобы в среднем одна задача выполнялась как можно быстрее.
Итеративная методология с доской, но без ограничения WIP — это не Kanban.
Kanban отлично подходит для проектов, где должна быть реализована непрерывная поставка изменений на продакшн.