Что такое Kanban?

«Что такое Kanban?» — вопрос из категории Софт-скиллы, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый пример ответа, который можно адаптировать под свой опыт.

Ответ

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

Как мы применяем основные принципы Kanban:

  1. Визуализация потока работы: У нас есть физическая или цифровая доска (например, Jira, Trello) с колонками, отражающими этапы нашего DevOps-цикла: Backlog -> Ready for Dev -> Infra/Code Change -> CI/CD Pipeline -> Validation/Staging -> Ready for Deploy -> Production -> Done.
  2. Ограничение работы в процессе (WIP Limit): Для каждой колонки (особенно In Progress) мы устанавливаем жёсткий лимит. Например, не больше 3 задач на одного инженера одновременно. Это предотвращает многозадачность, выявляет узкие места (например, если колонка Validation постоянно заполнена) и заставляет команду фокусироваться на завершении задач, а не на старте новых.
  3. Управление потоком: Мы регулярно (на ежедневных стендапах) смотрим на доску, чтобы анализировать, где задачи «застревают». Если задача слишком долго находится в одной колонке, это триггер для обсуждения и помощи.
  4. Явные правила процесса: У нас есть четкие критерии входа и выхода для каждой колонки. Например, задача может перейти в Ready for Deploy только после успешного прохождения всех автотестов в пайплайне и approval-а.

Пример нашей Kanban-доски для задачи по обновлению Kubernetes:

| Backlog | Ready | In Progress (WIP:2) | CI/CD Pipeline | Production | Done |
|---------|-------|---------------------|----------------|------------|------|
|         |       | - Upgrade k8s 1.24->1.25 |                |            |      |
|         |       | - Update Helm charts |                |            |      |
| - Setup new monitoring |       |                     | - Test new ingress config |            |      |

Польза для DevOps: Kanban помогает минимизировать время цикла (lead time) от идеи до работающего кода в проде, делает процесс прозрачным и способствует непрерывному улучшению через анализ метрик потока (например, cumulative flow diagram).