Наш путь в управлении потоком продуктовых задач. От стикеров в Miro до системных изменений на основе данных

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.
Так увидела суть моей статьи нейросеть Midjourney
Так увидела суть моей статьи нейросеть Midjourney

Привет, Хабр! Меня зовут Артур Темиров, я delivery-менеджер в одном из продуктов X5 (о нём дальше в тексте). Над его созданием у нас трудятся 5 технических команд – в общей сложности это более 60 человек. В статье рассказываю о том, как визуализация является отправной точкой для эволюционного развития процессов, а также об ошибках, которые могут допускаться на этом пути. 

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

Контекст

Коротко о нашем контексте
Коротко о нашем контексте

Контекст очень важен, потому что он помогает понять, что может для вас сработать, а что – нет. 

Мы создаём сложный IT-продукт, под капотом которого находится достаточно большой пласт логики и данных. С помощью него бизнес-пользователи могут сегментировать клиентскую базу, формировать и отправлять персональные предложения покупателям торговой сети «Пятёрочка», а также реализовывать различные механики по этим предложениям. На выходе благодаря нашему продукту покупатель получает наиболее интересное и выгодное предложение, а торговая сеть и поставщики – свои финансовые и маркетинговые эффекты. Команда продукта географически распределена и люди практически не пересекаются в оффлайне.

Для понимания привёл список ролей, задействованных в разработке продукта:

Роль

Количество сотрудников

Бизнес-анализ

5

Разработка front-end

4

DevOps

1

Системный анализ

3

Тестирование

6

Разработка back-end

8

Delivery Manager

3

Архитектор

1

UX/UI

2

Data Quality

4

Data Engineering

3

Data Science

11

Data Analytics

10

С чего всё начиналось

Ко мне обратилось руководство продукта, описав несколько проблем, с которыми они столкнулись на тот момент. Процитирую их:

У нас уходит единая точка входа в IT, нам нужна замена.

Одна из команд берёт в спринт задачи, но спустя две недели завершает 10-20% из взятых.

В целом нам не понятно, что происходит в части IT-разработки.

У бизнес-команд некому проводить ретроспективу.

Начинаем погружение в детали продукта
Начинаем погружение в детали продукта

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

Отсюда вытекало множество проблем: 

  • Не было прозрачности взаимодействия между разными командами – визуализация заканчивалась задачами в Jira-проектах команд, а что происходило у других команд... 

  • Невозможно было ответить бизнесу на вопрос: «Когда будет готово?», т. к. оценка давалась каждой командой отдельно и не учитывала «передачу работы» из команды в команду.

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

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

  • Для бизнеса отсутствовала прозрачность взятия в работу новых задач.

Визуализация, с которой работали команды
Визуализация, с которой работали команды

Первые шаги

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

Визуализация в miro
Визуализация в Miro

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

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

Дополнительно руками начали собирать «сырые» данные по задачам с целью дальнейшего построения метрик производства, а именно: накопительную диаграмму потока, спектральную диаграмму, контрольную диаграмму и пропускную способность. В конце статьи поделюсь шаблоном в Google Sheets – возможно, кому-нибудь пригодится.

Про ошибки

Первые эмоции
Первые эмоции

Однако, всё было не так радужно, как может показаться. Поэтому считаю правильным поделиться и ошибками, которые допускались в процессе достижения цели. Основной ошибкой было то, как именно создавалась доска. Часть этапов на визуализации – мои галлюцинации. В продукте не было таких процессов, но на тот момент они казались такими нужными, и я не смог удержаться от искушения и не «запихнуть» их – ведь всем от этого будет лучше, да? НЕТ! Именно поэтому достаточно длительное время к доске не было эмпатии, у неё даже было имя «доска Артура» – думаю, это о многом говорит :‑) Да и в целом у людей не было понимания, для чего всё это делается.

Чтобы такого не возникло, правильным решением, я считаю, нужно проводить STATIK. Подробнее о нём написано: тут и тут. В нашем случае понимание ценности от такого решения пришло спустя примерно три месяца.

Следующий шаг

Дальше в нашей жизни появился Kaiten (не реклама, но если мне заплатят, я не против), в который мы перенесли все наши задачи.

Пример визуализации карточки в Kaiten
Пример визуализации карточки в Kaiten

Какое-то время мы работали над улучшением визуализации нашего рабочего процесса:

  • Улучшали визуализацию карточек рабочих элементов. Цель улучшений – прозрачность всего пути создания ценности. В карточке хранятся: связи с дочерними элементами (те самые задачи в командах), бриф с этапа дискавери, бизнес-требования, User Story (пишутся после БТ в некоторых командах), плановый и фактический срок реализации, метки, показывающие как системы, в которых идёт разработка, так и другую полезную для участников процесса информацию.

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

  • Появилась встреча по пополнению системы. На этой встрече в присутствии всех заинтересованных принимается решение о том, какие задачи будут взяты в производство следующими. Деливери-менеджер в начале встречи говорит, сколько задач можем взять в работу, а далее всеми заинтересованными принимается решение, что брать следующим. Это даёт прозрачность как бизнесу, так и представителям технических команд – можно лучше планировать свою работу.

Что дальше

Начинаем работать с метриками системы производства
Начинаем работать с метриками системы производства

Появившаяся визуализация послужила драйвером для дальнейших улучшений самого процесса.

  1. Встречи по пополнению сначала проходили в формате «берём в работу задачи тех, кто громче кричит». Думаю, не стоит говорить о том, чем плох такой подход. Поэтому у нас появился скоринг задач по RICE и задачи на встрече по пополнению стали брать в работу, ориентируясь, в первую очередь, на скоринг.

  2. Бизнесом регулярно стал подниматься вопрос: «Когда будет готово?». На тот момент мы не понимали реальных возможностей нашей системы, и давать сроки, ориентируясь на статистику, ещё не могли. В итоге мы решили в качестве  эксперимента  давать экспертные сроки. Результат: большая часть задач была просрочена, что подтвердило озвученное ранее – экспертные сроки не работают, т. к. не учитываются риски.

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

Ответ на извечный вопрос был дан, но вот люди восприняли его по-своему. С первого раза (да и со второго тоже) не удалось объяснить, что есть определённая вероятность времени выполнения задач и мы даём оценку, ориентируясь на эту вероятность. В нашем случае 85-й процентиль составлял 130 дней, которые трактовались так, что все задачи будут сделаны за 130 дней – не больше и не меньше. И это вносило свои сложности в коммуникацию. 

Не могу сказать, что сейчас все одинаково понимают, что означает 85-й процентиль, но мы регулярно на «Обзорах сервиса поставки» проводим просветительскую работу. Хочется верить, что тот нарратив, который создаётся на встречах, сможет нам помочь  прийти к одинаковому пониманию подхода к статистической оценке сроков.

Читателю готов предложить погрузиться в мир статистической оценки сроков, посмотрев эти видео:

Улучшение процесса за счёт работы с блокерами

Отдельно хочется рассказать про то, как мы выстроили процесс работы с блокерами. К сожалению, тут нас Kaiten подвёл: его функционал отчётности не смог предоставить нужные разрезы данных, поэтому мы самостоятельно руками готовим отчёт по блокерам в Google Sheets, а потом отдаём файл в BI.

Отчет в BI по блокерам
Отчёт в BI по блокерам

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

Что мы получили от работы с блокерами

На примере блокера «Нет рук» мы договорились о внедрении WIP-лимитов (ранее их не было).

Узнать, что такое WIP-лимиты можно из этого видео:

Обоснование необходимости ограничить производство послужило два графика: количество блокеров «Нет рук» и сумма потраченного на него времени.

Количество блокеров и сумма потраченного времени
Количество блокеров и сумма потраченного времени

Можно проследить зависимость роста WIP и увеличения количества блокеров до ноября, с дальнейшим сокращением WIP после введения WIP-лимита:

Накопительная диаграмма потока
Накопительная диаграмма потока

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

Отчетность по блокеру "Нет рук" с 12.22
Отчётность по блокеру "Нет рук" с декабря 2022г.

Второй по популярности блокер – «Зависимость от другой задачи». Это ситуация, когда задача взята в разработку, но конфликтует с другой задачей, т. к. в процессе разработки затрагивается один функционал и параллельная разработка невозможна.

Статистика блокера "Зависимость от другой задачи"
Статистика блокера "Зависимость от другой задачи"

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

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

В качестве заключения

В статье я умышленно не упоминал Kanban-метод, практиками и принципами которого я руководствовался в своей работе. Но, наверное, в заключение можно сказать спасибо методу и процитировать @pimenaus: что Kanban-доски – это не только доски и стикеры, а значительное большее. Kanban-доски дают нам визуализацию процесса работы, которая начинает показывать проблемные места, благодаря чему можно строить системную работу по эволюционным изменениям наших процессов.

Как и обещал, прикладываю ссылку на шаблон в Google Sheets.

Источник: https://habr.com/ru/companies/X5Tech/articles/738718/


Интересные статьи

Интересные статьи

Привет, Хабр! Меня зовут Алексей Алексеев, я руковожу геоаналитическими сервисами в Platforma. И сегодня я хочу рассказать вам, как мы разрабатываем и внедряем инструмент аналитики для бизнеса, с помо...
При реализации микросервисов организациям приходится перестраивать архитектуру традиционных монолитных приложений. Это помогает повысить гибкость и масштабируемость сервисов и быстрее выводить на рыно...
С началом работы программ лояльности, появилась возможность накапливать скидки, предоставляемых продавцами в виде  бонусов. и оплачивать ими покупки. Сотрудники, обрабатывающие данны...
Привет, меня зовут Тая Лавриненко, я дизайнер-картограф из команды Яндекс.Карт. Как и всё на свете, карты имеют свойство устаревать, поэтому в течение прошлого года мы проектировали и поэ...
Наш сегодняшний перевод посвящен Data Science. Аналитик данных из Дублина рассказал, как искал себе жилье на рынке с высоким спросом и низким предложением. Я всегда завидовал тем про...