Ещё в 1970-х годах, когда вычислительные ресурсы были чрезвычайно дорогими и сильно ограниченными,
Кратчайшее оставшееся время (Shortest Job First) использовалось как способ планирования пакетных заданий так, чтобы максимально использовать ограниченный ресурс. Совсем недавно Дон Рейнертсен предложил и популяризировал принцип «Более важная и короткая работа в первую очередь» как способ максимизировать отдачу от инвестиций в команды разработчиков ПО.
Для WSJF требуются только два ингредиента: вес каждой работы и продолжительность каждой работы. Весом, который Дон специально рекомендует для разработки продукта, является
Стоимость задержки (
вот 3-х минутное видео, в котором объясняется Стоимость задержки). Другая часть,
продолжительность означает насколько «коротка» каждая работа. Нам нужно знать: «Как долго эта работа будет блокировать пайплайн?» Для этого нам нужен некоторый прогноз продолжительности выполнения этой работы. Это важно, потому что пока он находится в процессе, он блокирует запуск другой работы. В течение этого времени мы платим Стоимость задержки. Дон конкретно предлагает особую форму WSJF:
Стоимость задержки, делённая на
Продолжительность.
Существуют и другие возможные формы WSJF — в зависимости от того, что вы пытаетесь оптимизировать. Вы можете выбрать взвешивание по техническому риску, рыночному риску, влиянию заинтересованных сторон, продолжительности ожидания или любому другому фактору или комбинации, которые вы, возможно, захотите максимизировать. Однако большинство организаций больше всего заинтересованы в увеличении своей экономической отдачи. В этом случае вам следует взвешивать стоимость задержки.