Упорядочение резерва для получения максимальной экономической выгоды — непростая задача. Средняя команда дергается сразу в нескольких направлениях. Запросы на новые функции, технический долг, существующие дефекты, нефункциональные требования, безопасность, снижение рисков, нехватка ресурсов и многое другое — все это конкурирует за внимание вашей команды. Итак, как рациональная команда решает, над чем работать? В этом посте я покажу вам, как расставить приоритеты в бэклоге продукта с помощью CD3, который представляет собой стоимость задержки, деленную на продолжительность.

Этот пост является частью серии статей о цене задержки. Первый пост вы можете найти здесь.

В чем проблема?

Вы когда-нибудь замечали, что скрам-писатели и agile-райтеры имеют расплывчатые описания того, как вы должны упорядочивать свой бэклог? Они пишут такие вещи, как «сначала работайте над историями с наивысшим ROI» или «владелец продукта должен расставить приоритеты в невыполненной работе по ценности для клиента». Такой совет звучит хорошо, когда вы его читаете, но он не поможет вам ответить на мой следующий вопрос.

Если бы в вашем бэклоге были только следующие три истории, как их следует расположить?

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

Какая история имеет наивысший приоритет? Кому? Ваша страховая компания, вероятно, выберет историю 1. Вы, вероятно, выберете историю 1 или 2. А ваш менеджер по продажам, вероятно, выберет историю 3, верно? Итак, куда вы идете отсюда? Посмотрите, кто может кричать громче всех? Вытащите свою организационную схему и согласитесь с решением человека, который находится ближе всего к вершине? Ранжировать истории по ROI (окупаемости инвестиций)? FIFO (первым пришел, первым вышел)? Доска для спиритических сеансов?

Вы должны расставить приоритеты в бэклоге продукта по CD3

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

В Интернете нет единого мнения о том, как следует расставлять приоритеты в бэклоге продукта. И я на самом деле съежился, когда прочитал несколько действительно ужасных советов в статьях с очень хорошим рейтингом в поисковых системах. Я тоже просмотрел пару книг, и они не намного лучше.

Невозможно сравнить ценность совершенно разных историй, потому что их ценность выражена в несопоставимых единицах измерения. Чтобы обойти эту проблему, вы можете конвертировать все в деньги, используя стоимость задержки. А затем можно разделить стоимость задержки на продолжительность, чтобы рассчитать CD3. Чем выше показатель CD3, тем выше должна быть история в вашем бэклоге.

Как расставить приоритеты в бэклоге продукта с помощью CD3

Я собираюсь показать вам, как рассчитать качественную стоимость задержки и CD3 для трех историй, о которых я писал выше. Прочтите эту прекрасную статью о качественной стоимости просрочки и вернитесь сюда.

Хорошо, ты вернулся. Вы читали статью? Если нет, то иди читай прямо сейчас. Дальнейшее не будет иметь для вас смысла, если вы не прочитаете статью.

Мы не можем выполнять математические операции с текстовыми метками, поэтому я присвоил им целочисленные значения следующим образом:

Я рассчитал следующую стоимость задержки и CD3:

Позвольте мне объяснить, что здесь происходит.

Зашифруйте таблицу пользователей и обновите хэши паролей

Я присвоил этой истории убийственное значение (8). Если нас взломают, как Эшли Мэдисон, мы буквально потеряем наш бизнес. Так что это очень серьезная ситуация. Однако не гарантируется взлом. Я подсчитал, что у нас есть шанс быть взломанным 1/20, поэтому я разделил 8 на 20 и получил значение 0,4. Я оценил срочность этой истории как как можно скорее (8), потому что она очень скоропортящаяся; он не будет иметь никакой ценности после того, как нас взломают. Я умножил значение на срочность, чтобы получить стоимость задержки 3,2. И я прикинул, что на завершение истории уйдет неделя. Таким образом, CD3 = 3,2/1 = 3,2.

Автоматизируйте создание отчетов о продажах

Менеджер по продажам поручил одному из своих сотрудников создать отчет вручную. Это занимает один час в неделю. Таким образом, автоматизация этой задачи сэкономит около 40 долларов в неделю. Эта история не очень ценная или срочная. Мы ожидаем, что стоимость создания этого отчета в обозримом будущем останется практически неизменной. По моим оценкам, для автоматизации этого отчета потребуется полнедели. Таким образом, CD3 = 1/0,5 = 2.

Удалить ненужную функцию

Это история с техническим долгом. Удаление этой функции поможет нам уменьшить сложность важного кода в нашем проекте. А поскольку сложность увеличивается нелинейно, удаление этой функции должно помочь нам двигаться быстрее в будущем. Но когда я прочитал описания ценности и срочности, я должен признать, что это уровень меха (1). И что эта срочность всегда (1). Довольно сложно удалить код, который проходит через сердце системы. Так что, по моим подсчетам, потребуется две недели, чтобы вытащить его оттуда. Таким образом, мы получаем CD3 = 0,5.

Переключение разговора

Итак, как вы относитесь к этим рейтингам? Вы хотите утверждать, что риск быть взломанным составляет 1/50 или 1/100? Отлично. Сыграйте с командой в покер с планированием и определите более реалистичную стоимость. Считаете ли вы, что удаление ненужной оценки продолжительности функции слишком велико? Хорошо, давайте поговорим об этом. Если вам не нравятся значения 1, 3, 8 по ценности и срочности, измените их на более подходящие.

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

Преимущества возможности обосновать заказ бэклога продукта

Я легко могу представить себе ситуацию, когда менеджер по продажам начинает приводить аргументы, чтобы попытаться вывести историю автоматизации отчетов на вершину невыполненной работы. «Отчет сложно создать вручную». Или «Это в бэклоге уже 5 месяцев, и я теряю терпение». Может быть, она звонит и пишет вам по электронной почте несколько раз в неделю, чтобы сказать, насколько ей нужна автоматизация этого отчета.

Если у вас есть стоимость задержки и расчет CD3, вы можете защитить себя от такого рода давления. Вы показываете менеджеру по продажам свою таблицу и говорите, что у ее истории CD3 = 2. А она говорит: «Вы не понимаете. Мой сотрудник допустил две ошибки при составлении этого отчета за последний год. Один обошелся нам в 30 000 долларов, а другой — в 10 000 долларов. Я не хочу, чтобы это было автоматизировано, чтобы сэкономить время. Мне нужна автоматизация, чтобы предотвратить дорогостоящие ошибки!»

Вы это предвидели? Недопонимание привело к неверному предположению. Не могли бы вы пересчитать CD3 этой истории и переупорядочить невыполненную работу?

Не беспокойтесь о точности ваших входных данных

Не беспокойтесь о том, чтобы получить сверхточные входные данные во фреймворк. Райнертсен говорит, что наша интуиция настолько плоха, что любые разумные оценки улучшат результаты.

Продолжительность

Вы хотите знать, сколько недель (по календарю) потребуется для публикации каждой истории. Это сумма фактического времени, которое люди тратят на работу над историей, и всего времени ожидания истории в различных очередях. Вероятно, это отклонение от того, как вы обычно измеряете усилие, но это важно в контексте расчета CD3.

Качественная и количественная стоимость задержки

Когда вы только начинаете, людям легче понять качественную стоимость задержки, чем количественную стоимость задержки. Но вам следует подумать о переходе на количественную стоимость задержки как можно скорее.

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

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

Не усложняйте задачу больше, чем нужно

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

Совершенно обычно значения ваших входных данных меняются в зависимости от того, как вы упорядочиваете свои истории, потому что истории взаимозависимы.

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

Ценность и срочность также могут меняться со временем.

Практические советы

Шаг 1. Убедитесь, что все истории, находящиеся в верхней части списка невыполненных работ, не приведут к созданию бесполезного программного обеспечения или отходов.

Шаг 2: ранжируйте истории с количественным или качественным CD3. Поскольку ценность ваших историй обычно составляет несколько порядков, вам не составит труда определить действительно ценную работу. Пока вы обновляете свои переменные и периодически пересчитываете свой CD3 (в зависимости от того, как быстро меняются ваши переменные), этого рейтинга должно быть достаточно для подавляющего большинства проектов.

Шаг 3. (редко требуется) Рассмотрите взаимодействие между переменными, чтобы точно настроить порядок невыполненной работы.

Подведение итогов

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

Цена задержки заключается не только в том, чтобы расставить приоритеты в вашем отставании. Я расширю эти идеи и покажу вам более сложные примеры в последующих постах. Быть в курсе.

Дополнительные ресурсы

Вам может пригодиться следующая стоимость ресурсов задержки:

  • отличный сайт с отличным трехминутным поясняющим видео
  • Книга: «Принципы процесса разработки продукта: разработка бережливого производства второго поколения» (Дональд Рейнертсен), глава 2.
  • книга: «Essential Scrum: Практическое руководство по самому популярному Agile-процессу» (Кеннет С. Рубин) Глава 16
  • видео выступление Дональда Рейнертсена о разработке продукта

Первоначально опубликовано на сайте smallbusinessprogramming.com 11 декабря 2017 г.