При росте бэклога важно учитывать не только потенциальную ценность задач, но и эффект времени. Иногда задача может принести пользу только в случае, если сделать ее вовремя.
Чтобы учесть такие нюансы, используют фреймворк Weighted Shortest Job First (WSJF). Разберем его подробнее.
WSJF — это способ упорядочить бэклог так, чтобы команда быстрее доставляла клиентам максимальную ценность. Идея проста: учитывается стоимость задержки задачи по отношению к размеру задачи. А значит вперед двигается то, что принесет максимальную отдачу раньше.
Формула:
WSJF = Cost of Delay / Job Size.
То есть отношение стоимости задержки задачи к ее размеру.
Почему это работает?
— Фреймворк учитывает и ценность, и время, и риски — не только «что важно», но и «когда важно это сделать/что будет, если не сделать».
— Сравнение происходит через относительные баллы (например, ряд Фибоначчи). Это помогает быстро ранжировать задачи без точных часов и затрат.
— Подходит не только для команды разработки, но и для любой очереди инициатив с ограниченной пропускной способностью.
Как применить фреймворк к вашей задаче?
🔢 Выберите шкалу оценки задачи (например, часто используют как и в оценке по сторипоинтам ряд Фибоначчи: 1–2–3–5–8–13).
🔢 Оцените три компонента стоимости задержки (сost of delay, CoD):
• BV (business value) — ценность для бизнеса/юзера,
• TC (time criticality) — срочность/дедлайны/сезон,
• RR/OE (risk reduction / opportunity enablement) — оценка рисков и возможностей
Risk Reduction (RR) — насколько задача уменьшает риски: регуляторные, технические, операционные, продуктовые.
Opportunity Enablement (OE) — насколько задача открывает новые возможности: выход на сегмент/рынок, допродажи, партнерская интеграция.
Стоимость задержки будет равна сумме этих компонентов, т.е.
CoD = BV + TC + RR/OE
🔢 Оцените Job Size как относительный размер/длительность работы над задачей.
🔢 Посчитайте WSJF и отсортируйте бэклог по убыванию.
🔢 Проверьте полученные результаты на иные зависимости: регуляторика, «жесткие» сроки.
А если на примере?
Есть две задачи. Как определить приоритет между ними, если они разные по своей структуре?
Задача A: Реализовать экспорт отчета в CSV
BV = 8 (просят платные клиенты)
TC = 5 (отчетный сезон через 6 недель)
RR/OE = 3 (снимет ручные выгрузки, добавит интеграции)
CoD = 8 + 5 + 3 = 16
Job Size = 5 → WSJF = 16/5 = 3,2
Задача B: Добавить цветные ярлыки в списки
BV = 3 (меньше важности)
TC = 2 (не так срочно)
RR/OE = 1 (видим возможности, но не прямое быстрое воздействие на рост метрик)
CoD = 3 + 2 + 1 = 6
Job Size = 2 → WSJF = 6/2 = 3,0
Сортируем задачи по приоритету: задача A (3,2) получилась выше, чем задача B (3,0).
Данный фреймворк чаще всего применяется, если:
🔵бэклог «раздут», а команда маленькая — нужно ускорить движение задач по процессу и как можно быстрее получить первые результаты.
🔵есть сезонные окна или риск просрочки: в таком случае стоимость задержки каждой из задач подскажет, что «болит» сильнее.
🔵вы планируете квартал и надо аргументированно и при этом быстро договориться о порядке работ.
Какие бывают частые ошибки применения фреймворка?
— Завышать срочность («горит у всех, нужно еще вчера») — договоритесь о шкалах заранее.
— Считать размер работ в разных единицах — нормируйте единицы измерения внутри команд.
— Игнорировать зависимости — в ситуации, когда задача комплексная, стоит оценивать сразу весь объем работ, чтобы не обманывать себя и ожидания команды.
@productsense