Перейти к основному содержимому

Классы обслуживания и приоритеты в Kanban


Роль классов обслуживания

Classes of service (классы обслуживания) — правила очереди, ожидания и реакции на риск для разных типов работы. Без классов всё становится expedite (срочным), и команда работает в режиме постоянного пожара.

Kanban не говорит "никогда не срочно". Он говорит: срочность — осознанный выбор с ценой, а не дефолт для каждого тикета.

Связь с Kanban Guide: управление потоком включает политики для разных типов спроса.


Четыре базовых класса

КлассСмыслПримерРиск для потока
ExpediteКритичный сбой, SLA нарушенProd недоступен (инциденты)Останавливает или сжимает остальной WIP
Fixed delivery dateЖёсткий дедлайн (закон, контракт, marketing)Отчёт к 1 марта, релиз к конференцииCost of delay растёт к дате
StandardОбычная фича или багУлучшение UI, некритичный дефектFIFO внутри приоритета Ready
IntangibleТехдолг, обучение, улучшение процессаРефакторинг модуля, runbookНет срочности, легко вытесняется

Expedite

Expedite — класс для работы, которую нельзя держать в обычной очереди без неприемлемого ущерба (простой prod, утечка данных, нарушение регуляторного SLA).

Правила expedite

ПравилоСмысл
Один expedite на поток одновременноИначе "всё срочное" снова
Явное объявление (кто объявил, почему)Прозрачность для команды и PO
WIP остальных может остановитьсяВсе помогают закрыть P1
После закрытия — postmortemПочему попало в expedite, как предотвратить
Нельзя объявлять expedite без критериевИначе менеджеры обходят очередь

Связь с ITSM и приоритетами P1/P2.

Пример сценария P1

06:12 — мониторинг: error rate 100% на /api/pay.

06:15 — on-call создаёт тикет INC-8842, класс Expedite, swimlane Incidents.

06:16 — тимлид подтверждает expedite; карточка идёт в In Progress вне обычного WIP (политика: +1 слот только для expedite).

07:40 — hotfix в prod, тикет в Done.

08:00 — daily: остальные задачи стояли — это ожидаемая цена expedite.

На следующей неделе — postmortem → задача intangible "добавить circuit breaker".

Expedite каждый день

Если expedite — норма, классы не работают. Нужны: жёсткие критерии P1, улучшение надёжности, возможно выделенный on-call не из того же WIP, что фичи.


Fixed delivery date

Задачи с фиксированной датой нельзя бесконечно откладывать: cost of delay растёт по мере приближения дедлайна.

Планирование fixed date

  1. Определить дату Done (не "начать разработку").
  2. Посмотреть cycle time похожих задач (глава 4) — перцентиль 85%.
  3. Отнять buffer (20–30%) → дата старта в Ready.
  4. Если дата нереалистична — эскалация к PO/PM, а не тихое "дожмём".
Поле в JiraПример
Class of ServiceFixed date
Due date2026-03-01
Start by (custom)2026-02-10 (из cycle time + buffer)

Пример — отчёт для регулятора

Задача: выгрузка для ЦБ к 1 марта.

Fixed date — пропуск в начало Ready за две недели до расчётной даты старта.

Standard фичи на этот период не expedite, но PO может снизить их приоритет в Ready.


Standard

Standard — основной поток: фичи, улучшения, некритичные баги.

Политика очереди:

  • PO упорядочивает Ready (WSJF, MoSCoW — задачники);
  • команда pull сверху вниз;
  • FIFO внутри одного приоритета, если нет других правил;
  • WIP-лимит не обходится.

Jira — custom field

Создайте поле Class of Service (select): Expedite, Fixed date, Standard, Intangible.

Board quick filter: Class of Service = Standard.


Intangible и техдолг

Intangible — работа без внешнего дедлайна, но с долгосрочной ценностью: рефакторинг, автоматизация, документация, обучение.

Без выделенного capacity intangible никогда не случается — его всегда вытеснят standard и expedite.

Практики для intangible

ПрактикаОписание
10–20% WIPИз 5 слотов dev один — только intangible
Swimlane "Tech debt"С отдельным WIP = 1
Связь с changeКрупный рефакторинг — change management
После postmortemAction items → intangible в Ready

Cost of delay (интуиция)

Cost of delay — сколько теряем, откладывая задачу на неделю/месяц.

КлассCost of delay
ExpediteОчень высокий сейчас
Fixed dateРастёт к дедлайну
StandardУмеренный, зависит от ценности
IntangibleНизкий краткосрочно, высокий на горизонте года

Приоритизация в Ready учитывает cost of delay, а не только "кто громче крикнул".


Приоритизация и replenishment

Replenishment — регулярная встреча (часто 30–60 мин раз в неделю): PO и команда наполняют Ready из Backlog.

Порядок на replenishment

  1. Проверить expedite и fixed date — слоты и даты.
  2. Оценить ёмкость Ready (сколько задач команда реально вытянет до следующего replenishment — из throughput).
  3. Добавить standard сверху backlog.
  4. Зарезервировать место для intangible (хотя бы одна карточка).

Scrum-аналог частично — Sprint Planning; разница — не обязательный фиксированный контейнер спринта. См. Scrum.


Swimlanes и цвета

ВизуалКласс
Красная карточка / swimlaneExpedite
Жёлтая метка + due dateFixed date
ОбычнаяStandard
Серая / отдельная laneIntangible

В YouTrack — Priority + Tags; в Jira — Priority Blocker/Critical не равны expedite автоматически — нужна явная политика.


Сценарий — смешанный поток support + dev

Команда: 3 dev, 1 support L2.

УтроСобытиеКласс
09:00Тикет "не работает печать PDF"Standard bug
10:30P2 "медленный поиск"Standard
11:00P1 "оплата 500"Expedite
11:00–14:00Фичи стоят, все на INCЦена expedite
14:30P1 закрытВозврат к pull из Ready
15:00Replenishment не нужен — Ready на 2 дня вперёд

Подробнее — глава 7.


Антипаттерны приоритетов

СимптомПроблема
Все тикеты High priorityНет классов
Expedite от CEO каждый вторникНет критериев и push-back
Техдолг 0% три месяцаIntangible не зарезервирован
Fixed date узнали за 2 дняНет replenishment и прогноза cycle time
"Срочно" в Slack минуя доскуНет визуализации

Связь со Scrum Sprint Goal

В Scrumban Sprint Goal может включать одну fixed date и лимит expedite на спринт. В чистом Kanban цели задаются через политики потока и SLA, а не через Sprint Goal.

Сравнение — глава 5.


Таблица решений для PO

Вопрос заказчикаКлассДействие
"Prod лежит"ExpediteНемедленно, postmortem потом
"К 15 числа отчёт"Fixed dateПроверить cycle time + buffer
"Хотелось бы в следующем квартале"StandardBacklog → Ready по приоритету
"Надо бы рефакторить"IntangibleЗарезервировать WIP

Настройка в Jira (кратко)

  1. Custom field Class of Service.
  2. Workflow: expedite может миновать некоторые статусы только по политике (например, skip QA для hotfix с rollback plan).
  3. Automation: при Priority = Blocker предлагать expedite, но не автоматически без подтверждения тимлида.
  4. Filter на board по классу.

Сценарий role-play для команды (30 мин)

Упражнение: три запроса одновременно — P1 prod, fixed date отчёт через 5 дней, "хотелка" CEO.

  1. Классифицировать каждый запрос.
  2. Расставить Ready.
  3. Решить, кто останавливает WIP на P1.
  4. Зафиксировать, что CEO-запрос — standard, не expedite.

Разбор: если всё expedite — политика не работает.


WSJF и Kanban

Weighted Shortest Job First — cost of delay / duration. В Kanban duration заменяют ожидаемым cycle time по типу задачи, не story points.

ЗадачаCoDCycle time est.WSJF
AHigh3 dHigh
BMedium1 dMedium
CLow5 dLow

Подробнее о приоритизации — 7.09/2.


Эскалация когда fixed date нереален

Не молчать до последнего дня — lead time в Ready тоже съедает buffer.


Матрица "кто решает класс"

КлассКто assign
ExpediteOn-call / TL + criteria
Fixed datePO + TL planning
StandardPO order in Ready
IntangibleTL + tech lead slot

Что дальше

Метрики потока — как измерять lead time и cycle time по классам обслуживания отдельно.