Планируем поход в магазин по методике MoSCoW, чтобы на реальном примере разобрать, как формировать бэклог, можно ли брать срочные задачи в закрытый спринт и почему бэклог нельзя заполнять на 100%.

Привет! Меня зовут Сергей @Zooboy — Team Lead команды Payments в Монете. Когда-то на собственном опыте я понял, как должен выглядеть хороший бэклог, и теперь на примере простого действия — похода в магазин — расскажу, как составить список задач так, чтобы не только грамотно распределить, но и сэкономить ресурсы.   

Немного теории: что такое бэклог и зачем он нужен

Бэклог — это список задач или требований, которые ещё не выполнены или не реализованы, но имеют потенциальную ценность. Он обычно используется для управления рабочими задачами и приоритизации работы команды.

Бэклог нужен для:

  1. Планирования. Здесь хранятся все задачи, которые должны быть выполнены. Это помогает команде понять объём работы, оценить время и ресурсы, необходимые для выполнения каждой задачи.

  2. Приоритизации. Задачи в бэклоге могут быть отсортированы по приоритету, чтобы команда всегда знала, с чего начать работу в первую очередь.

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

Помимо этого, бэклог служит источником идей для будущих проектов или улучшений.

Как формируется бэклог

Для формирования бэклога в продуктовой команде могут использоваться различные методы, включающие в себя:

  1. Интервьюирование заинтересованных сторон (стейкхолдеров) для выявления их потребностей и ожиданий по продукту.

  2. Анализ рынка и конкурентов, чтобы определить тренды и возможности для улучшения продукта.

  3. Создание пользовательских историй (user stories) для описания функциональности и требований к продукту.

  4. Проведение сеансов планирования (planning poker) с участием членов команды для оценки и приоритизации задач.

  5. Использование техники MoSCoW (Must, Should, Could, Won't) для определения важности задач и их приоритетности в бэклоге.

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

Методики формирования бэклога

Существует множество методик формирования бэклога, которые помогают определить, какие задачи или требования должны быть в него включены. Например:

  1. Мозговая атака (Brainstorming). Команда собирается вместе, чтобы свободно высказывать все идеи и требования, которые могут быть добавлены в бэклог. Затем эти идеи анализируются и фильтруются.

  2. Московские требования (MoSCoW). Задачи разделяются на четыре категории: Must have (должно быть), Should have (желательно), Could have (по возможности) и Won't have (не важно).

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

  • Must have — 60–70%;

  • Should have — 20–30%; 

  • Could have — 5–10%;

  • Won't have — 0–5%.

  1. Скрам-планирование (Scrum Planning). Команда и владелец продукта обсуждают и оценивают задачи, которые могут быть добавлены в бэклог. Задачи разбиваются на эпики и пользовательские истории, что помогает уточнить их и оценить объём работы.

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

Чтобы не столкнуться с нехваткой ресурса или работой на износ, лучше не заполнять бэклог на 100%, а всегда оставлять запас в 10–15% свободы. Это поможет всегда иметь возможность оперативно подключиться к решению критически важных задач.

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

Составляем список покупок по методике MoSCoW

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

Давайте возьмём за основу методику MoSCoW и попробуем составить по ней список покупок — тот же бэклог, но в повседневной жизни. 

1. Составляем список покупок.

  • Must have (должно быть) — сюда занесём самое необходимое: вода, крупы, овощи и прочее. Это будет 60–70% от общего объёма бэклога.

  • Should have (желательно) — допустим, это средства личной гигиены и товары обихода: порошок, бумага, пакеты. Потратим на эти задачи 20–30% объёма бэклога.

  • Could have (по возможности) — товары, которые могут нам потребоваться, и на них идёт акция. К примеру, это пельмени со скидкой. Тут было бы целесообразно оставить 10%.

  • Won't have (не важно) — сюда заносим то, что по факту принесёт только удовольствие: газировка, снеки, какая-то мелочь. Оставим 5% свободного пространства (может быть и 0%).

2. Закрываем список до часа «Х» — это будет наш бэклог.

Важно: закрыв список, уже не вносите туда правки и изменения.

3. Берём товары строго по списку и не хватаем всё подряд. Важно выработать у себя правило: что внёс, то и купил. В дальнейшем это позволит более чётко подходить к формированию реального бэклога и учитывать разные факторы.

4. Если что-то забыли, вносим в список на следующий поход, но не берём сейчас. 

Рассмотрим теперь такой поход в магазин на реальном примере и установим бюджет в 1000 рублей. 

Пример №1

Список покупок (буду писать со средней ценой):

Must have (60%)

Should have (25%)

Could have (10%)

Won't have (5%)

Мясо 1 кг — 450 р.

Жидкое мыло 2 л — 250 р.

Хлеб 1 шт. — 100 р.

Сникерс 1 шт. — 50 р.

Макароны 1 уп. — 150 р.

Итого: 1000 рублей. Бэклог мы заполнили на 100%, и всё вроде бы нормально, но что же происходит дальше. Мы ходим по магазину и понимаем, что что-то забыли. Например:

1. Соус для пасты 1 шт. — 145 р.

2. Приправа 1 уп. — 45 р.

3. Майонез (куда же без него) 1 шт. — 86 р.

Получаем прирост к бэклогу в 276 рублей, а у нас ограничение в бюджете. Цена текущего списка увеличилась, потому что мы не смогли верно составить бэклог. В жизни это небольшие суммы, а в бизнесе достаточно объёмные.

Спонтанное увеличение бэклога потребует корректировки ресурсов, уже не получится сделать критически важную задачу, а это может повлечь за собой финансовые потери.

Пример №2

Берём список из первого примера, но будем брать только то, что в нём. Что это даст?

Всё, что забыли купить или записать, пишем в новый список — это позволит выработать правильный подход к оцениванию бэклога. Но и такой пример не идеален, так как в текущем бэклоге нет места на срочные внеплановые задачи (того самого воздуха в 10–15%). Мы потратили весь ресурс и бюджет — вероятность финансовых потерь всё ещё велика.

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

У вас больше нет ни рубля в кармане — эту просьбу вы выполнить не сможете, хотя осознаёте её важность.

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

Аналогичные ситуации могут происходить и в бизнесе. Если вы работали или работаете в банке или финтех-компании, то наверняка слышали про регуляторные требования. Если ваш бэклог забит на 100%, у вас не получится в сжатые сроки выполнить требования надзорных органов.

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

Пример №3

Рассмотрим формирование списка или бэклога с запасом:

Must have (60%)

Should have (12,5%)

Could have (10%)

Мясо 1 кг — 450 р.

Жидкое мыло 1 л — 125 р.

Хлеб 1 шт. — 100 р.

Макароны 1 уп. — 150 р.

Здесь мы декомпозировали бэклог по приоритетам и выяснили, что нам будет достаточно одного литра мыла, а сникерс и вовсе не нужен. Тогда мы получаем 17.5% (175 р.) свободы в бэклоге. Новые задачи мы переносим в новый список с учётом ресурса и выделенного бюджета. У нас остаётся запас сил на выполнение срочных задач.

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

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

У нас в команде есть правило:

  1. Система вышла из строя или появился критический баг, не позволяющий работать — берём в работу сразу, у нас есть на это 10–15% ресурсов.

  2. Есть требования надзорных органов со сроками исполнения, и они попадают под «здесь и сейчас» — берём в работу сразу в рамках тех же 10–15%.

  3. Пришли коллеги со срочной задачей — заносим в бэклог следующего спринта, если задача не попадает под пункты 1 и 2. 

Личный пример и выводы

Раньше поход в магазин был для меня развлечением. Я приходил и скупал всё подряд. Средний чек составлял от 12 до 15 тысяч на двоих взрослых людей. Я покупал чипсы, газировки и многое другое, что фактически мне нужно было только в моменте. Это всё увеличивало итоговый чек.

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

Вы спросите: «А если ты уже в магазине захотел купить колу, ты её не возьмёшь?». Не возьму, если не внёс в список.

Закупаюсь я раз в неделю. Следовательно, умножаем 3 тысячи на 4 недели и на 12 месяцев. Получаем чистыми 144 тысячи экономии в год.

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

Но спустя время я научился декомпозировать поступающие задачи, всегда держать запас бюджета и ресурса в 10–15%, выставлять приоритеты и делать долгосрочное планирование.

Всё это привело к тому, что каждый бэклог давал ~10% экономии бюджета. Ресурс не был перегружен, всегда был запас на дополнительные, срочные задачи. Так я смог выстроить хорошую пропускную способность своей команды и, самое главное, смог уменьшить процент выгорания сотрудников из-за перегрузки.

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

Комментарии (7)


  1. Shpankov
    21.08.2024 12:55

    4. Если что-то забыли, вносим в список на следующий поход, но не берём сейчас. 

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


    1. Zooboy
      21.08.2024 12:55

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


      1. Shpankov
        21.08.2024 12:55
        +2

        На самом деле в случае с магазином я лично использую совершенно иную стратегию. Я имею список неких базовых продуктов, которые покупаю всегда - а вот всё остальное покупаю спонтанно. Точнее, не совсем спонтанно, а по обстоятельствам, ситуативно - в зависимости от того, понравился мне продукт или нет. Т.е. я вижу мясо или рыбу, и если их внешний вид внушает мне доверие, и если я готов в ближайшие дни ужинать данным продуктом - я его покупаю. Даже если его не было в списке. То же самое с фруктами и овощами - покупаю, если они внушают доверие. Таким образом иногда я покупаю чисто базовый набор (хлеб, молоко, сметана, сыр и т.д.), а иногда в пакете с покупками оказываются котлеты, ветчина, осьминог, креветки и кусок баранины. А иногда вместо или вместе с этими продуктами есть и фрукты - если они подходящего качества.

        Другими словами, я никогда не знаю, что я принесу из магазина точно. Это всегда результат множества критериев и условий, а также в некоторой степени случайность.

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

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


  1. soymiguel
    21.08.2024 12:55

    У ввс в принципе с планированием странновато, если предметы гигиены идут в шуд, а не в маст. Это не столько, чтобы докопаться, сколько отсылка к тому, что якобы наглядный пример как бы для <s>дурачков</s> 101 должен быть действительно наглядным, причем методологически это важнее, чем технически.


  1. ValeryGL
    21.08.2024 12:55

    С одной стороны, мне неудобно устраивать бесцеремонную критику статьи прямо в первых комментариях, но, @moneta_team , я не согласен. Пример с походом в магазин - это антипример работы с беклогом, работы в инкрементально-итеративном подходе.

    Беклог - отсортированный список полезных вещей, которые нужно сделать. Каждый элемент беклога а) имеет ценность сам по себе б) достаточно маленького размера, чтобы успеть сделать за итерацию и в) состоит из одной фичи, а не набора; это сделано для концентрации команды и возможности "поставлять на прод чаще".
    Беклог сортируется не обязательно по принципу Must Have сверху. Сверху - "имеющее наибольшую ценность для клиента сейчас" по мнению Владельца продукта.

    Так вот, вылазка в магазин - это ОДИН элемент беклога. А список продуктов - результат планирования спринта, когда вы сформулировали сабтаски. Набор покупок (сабтасков) можно определить перед началом спринта, взяв в задачу только важные вещи, которые успеем купить (хватит денег, сумеем вывезти, ...), а другие хотелки выделить в новый элемент беклога (поход в магазин).

    Так что беклог на бытовом примере выглядит так:

    1. Купить важные продукты (и внутри список от Must Have до Should Have, например)

    2. Купить стол и кресло

    3. Купить сладости и вкусности (и внутри список Could Have, например)

    4. Починить тормоза у машины

    5. Оплата ЖКУ

    6. Допэлектрика у машины (парктроник, камера)

    Вы рассматриваете лимит только на один ресурс - деньги, и "берете в работу" только те покупки, на которые хватит бюджета. Отлично, а как же время? Производительность команды? Ограничения по компетенциям команды? Если спринт у вас сегодня кончается в 13:00 и цель спринта - пообедать хоть чем-то?

    Элементы 1, 2, 3 выполняются в одном магазине и есть соблазн их затащить в одну работу. Но идея беклога и инкрементально-итеративного подхода в том, что если вы сольёте в одну покупку и жизненно-важные крупы, и сладости, и мебель - у вас может не хватить ресурсов и лучше делать эти три нужные вещи поодиночке, хотя в сумме выйдет больше времени и денег.
    Есть ведь ограничения:

    • денег. Ну тут все понятно, вы их сразу увидите. Предположим даже, что денег много;

    • времени на выполнение: дорога туда-обратно, хождение по магазину, оплата, упаковка, поднять домой, сварить макароны;

    • места в машине: может быть, вместятся (пакеты с макаронами И пакеты со сладостями) ИЛИ (вместится мебель) и потребуется две поездки - это производительность;

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

    И вы не сделаете обед к 13:00, как планировали. Перепрыгните большую пропасть, но на 75%

    Готов обсудить


    1. Zooboy
      21.08.2024 12:55

      Действительно, факторы, о которых вы пишите, не были учтены — они безусловно сыграют свою роль в реальном формировании бэклога. В наших примерах описан вакуум, в нём нет лишних триггеров, которые повлияют на конечный результат . Пример должен быть простым и понятным. Цель статьи — дать общее понимание людям, которые не знают, что такое бэклог, и помочь базово разобраться в вопросе. Такое объяснение можно использовать для ответа своим коллегам из вертикали продаж, чтобы аргументировать сроки реализации фичи, или при обучении джунов.


      1. ValeryGL
        21.08.2024 12:55

        Увы, не смог понять ваш ответ