WSJF по-русски

Ниже размещен перевод части статьи о WSJF от SAFe scaledagileframework.com/wsjf/
с некоторыми небольшими дополнениями

Взвешенная самая короткая работа вперед

WSJF – это способ приоритизации, упорядочивания задач (функций, фич, эпиков, элементов бэклога) для получения максимальной экономической выгоды.

Задачи, работы — это функции, фичи, эпики и другие элементы, которые находятся в бэклогах команд.

В SAFe

WSJF = стоимость задержки (Cost of Delay, CoD), разделенная на размер задачи.

В потоковой системе (Канбан-методе, Скраме) для достижения лучших экономических результатов полезно регулярно актуализировать приоритеты. Ведь в наилучшим результатам приводит именно последовательность работ, а RoI индивидуальных задач. SAFe предлагает применять WSJF для определения приоритетности невыполненных работ, вычисляя относительные стоимость задержки (CoD) и размер задачи (или ее продолжительность).

WSJF = Стоимость задержки / Длительность-размер работы

Приоритеты невыполненных работ полезно регулярно обновлять, поскольку они меняются вслед за изменением:

  1. ценности задач для пользователей и бизнеса,
  2. временных факторов,
  3. снижения рисков, появления и использования возможностей,
  4. размера задач.

Cost of Delay, стоимость задержки — это деньги, которые будут потеряны из-за задержки выполнения или невыполнения работы в течение определенного периода времени. Например, если выгоды или убытки от какой-либо фичи будут стоить 100 000 долларов в месяц, а задержка составит 3 месяца, то общая сумма CoD составит 300 000 долларов.

Работа, которая может принести максимальную пользу (максимальный CoD) в кратчайшие сроки, обеспечивает лучшую экономическую отдачу (RoI).

Упорядочивание списка задач

Расчет числителя: CoD, стоимость задержки

Иногда определить общую стоимость задержки для задач, которые ранее никогда не выполнялись, бывает трудно. Поэтому SAFe использует «заменитель» CoD. Три основных компонента вносят вклад в CoD:

  1. Польза для бизнеса:
    • Какова относительная ценность для клиента/бизнеса?
    • Наши пользователи предпочитают А больше, чем Б?
    • Как это повлияет на наши доходы? Начнем зарабатывать бОльшую сумму раньше
    • Как это повлияет на наши расходы? Повышение цены закупки, регулярные периодические пени
  2. Критичность по времени:
    • Как со временем уменьшается ценность для пользователей/бизнеса?
    • Есть ли фиксированный срок? Не вывели вовремя, не попали в маркетинговые даты
    • Нас будут ждать или перейдут к другому решению, конкурентам?
    • Есть ли вехи на критическом пути проекта, на которые влияет эта задача? Сдвигает более критичный deadline
  3. Снижение рисков и открытие возможностей:
    • Снижает ли она какой-то риск, относящийся к этой или будущей поставкам?
    • Каких штрафов и других негативных последствий поможет избежать?
    • Что еще дает нашему бизнесу эта задача?
    • Есть ли ценность в информации, которую мы получим?
    • Откроет ли эта функция новые возможности для бизнеса?

Таким образом, CoD рассчитывается так:

Стоимость задержки = Бизнес-ценность + Критичность по времени + Риски-возможности

Расчет знаменателя: размер работы

На ранней стадии трудно сказать, кто будет выполнять работу, поэтому трудно оценить ее длительность. К счастью, размер работы — хороший «заменитель» продолжительности. Он тоже подойдет для сравнения задач в очереди.

Если буду косить свой газон в одиночку, и передний двор в три раза больше заднего, то передний двор займет в три раза больше времени.

Используйте относительные оценки

Как и в случае с оценкой User story и в «покере планирования», используйте модифицированную последовательность Фибоначчи, поскольку она лучше отражает уровень неопределенности по мере увеличения размера. Сравните задачи относительно друг друга, в относительных очках/пунктах.

Расчет WSJF

Затем разделите числитель CoD на знаменатель размер работы.

WSJF = Стоимость задержки / Длительность-размер работы

Сравнение задач

Для приоритизации бэклога можно использовать таблицу.

Для оценки числителя и знаменателя используйте значения: 1, 2, 3, 5, 8, 13, 20.
Заметка: Начните с одного столбца, выберите наименьшую работу, установите значение «1», а затем оцените остальные относительно этой «1».
Перейдите ко 2-му стобцу, выберите «единицу», оцените другие относительно нее. И т.д.
В каждом столбце должна быть хотя бы одна «1».
Наибольшее расчетное значение правого столбца «WSJF» — наивысший приоритет.

Команда оценивает каждую функцию по отношению к другим, последовательно для каждого из трех компонентов CoD, а затем и размера задачи:

  1. Начните со столбца №1, выберите самую маленькую по этому параметру функцию, установите для нее значение «1», а затем установите значения остальных строк относительно этого.
  2. Столбец 2 — аналогичным образом заполните его по всем строкам.
  3. Столбец 3 — аналогично.
  4. Столбец 5 с размером задачи — аналогично.
  5. Рассчитайте CoD = просуммируйте столбцы 1+2+3.
  6. Затем разделите CoD на размер задачи.

Задача с наибольшим значением WSJF — самая важная и первостепенная.

Преимущества подхода

  1. Подход WSJF провоцирует разделение больших задач на несколько меньших, потому что иначе они не смогут конкурировать с другими меньшими работами — важные и большие работы могут остаться никогда не выполненными. Это Lean и Agile в действии.
  2. Для расчета WSJF в SAFe не требуется определять абсолютные значения 3 слагаемых CoD в деньгах. Вместо этого команды оценивают каждое слагаемое CoD в сравнении с другими задачами того же бэклога.
  3. Наконец, поскольку обновленные оценки невыполненных задач включают только оставшуюся работу, частое изменение приоритетов означает, что система автоматически игнорирует невозвратные затраты (sunk cost) – фундаментальный принцип бережливой экономики.
Серым — Cost of Delay

Дополнительная информация

В знаменателе могут быть:

  1. Продолжительность/длительность работы/эпика – лучший вариант.
  2. Размер работы/эпика – см. ниже.
  3. Стоимость работы/эпика – см. ниже.

2. Использование размера вместо продолжительности работы

Размер работы НЕ всегда является хорошим заменителем для длительности. Давайте рассмотрим два исключения:

  • если наличие специальных навыков означает, что более крупная работа с более высокой ценностью может быть выполнена быстрее, тогда стоит поднять её выше, поскольку она обеспечивает бОльшую ценность в более короткий период. (Если 3 человека будут косить мой большой газон перед домом, а я работаю на маленьком заднем дворе, эти работы будут иметь примерно одинаковую продолжительность, но не одинаковую ценность.)
  • При нехватке ресурсов или зависимостях от других работ небольшая задача может занять больше времени, чем большая задача.

В этих случаях вы можете приоритизировать их не в точном соответствии с рассчитанными WSJF.

Но в большинстве ситуаций достаточно и быстрой относительной оценки WSJF. В потоковой системе (Канбан-метод, Скрам) небольшие ошибки в выборе не так критичны, поскольку следующая важная задача довольно скоро поднимется на вершину бэклога.

3. Стоимость работы вместо продолжительности

Когда известна предполагаемая стоимость работы, она может оказаться более хорошим знаменателем для WSJF, чем размер работы. В этом случае для упрощения вычислений произведите нормализацию стоимости.

  1. Эпику с наименьшей стоимостью задайте значение «1».
  2. Затем разделите стоимость других эпиков на наименьшую стоимость (например, 1,5 / 0,5 = 3,0), как показано на рисунке ниже.
Нормализация стоимости эпиков для знаменателя WSJF

Если у вас есть хорошие денежные оценки CoD, то используйте их в качестве числителя для всех работ. Аналогичным образом, если у вас есть хорошие оценки продолжительности, то используйте их вместо заменителей (размера, номированной стоимости). В этом случае вы используете идею “стоимости задержки во времени” более точно.

Оставить ответ