Как оценивать эффективность продуктовых команд. Часть 1: процессные метрики

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

Начнем с экспозиции. В нашей компании продуктовая структура представляет из себя 9 продуктовых end-to-end команд общей численностью ~130 человек, работающих над развитием одного продукта.

Каждая из команд укомплектована всеми необходимыми компетенциями. Все они живут в одном релизном процессе, делают задачи из одного бэклога (и проекта в Jira), и следят за одним набором метрик в Amplitude.

В условиях такого тесного взаимодействия естественным образом возникает вопрос: А как оценивать их эффективность? Об этом мы и поговорим.

Перед тем, как определить критерии оценки, давайте разберемся с тем, что же такое эффективная продуктовая команда. Все просто:

Эффективная продуктовая команда — та, которая выпускает классные (коммерчески успешные) продукты. Чтобы сделать классный продукт, нужно быстро поставлять качественные решения пользователям. То есть эффективность продуктовой структуры или команды можно оценить по двум факторам:

  1. Как быстро бежит команда? (Time to market)

  2. А туда ли она бежит? (Value)

Скорость команды

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

  • Генерация идеи — кто-то придумал что нужно сделать классную фичу.

  • Создана задача — об этой классной фиче впервые появился цифровой след, ее завели в Jira, Kaiten или Trello.

  • Взята в работу — та самая точка взятия обязательств командой. До этого момента работа над классной фичей по сути не велась.

  • Разработка закончена (Ready for Release) — все работы сделаны, фича готова к выпуску.

  • Релиз — релиз

  • Аналитика & Обратная связь - этап, о котором многие забывают или игнорируют. Мало просто выпустить классную фичу, нужно обязательно собрать аналитику/данные/метрики и ответить на вопрос "а что она нам дала?". Может, вы ее зря делали :)

Теперь пойдем от обратного и поговорим о метриках на основе этой шкалы:

  • Dev Time — самая базовая единица измерения в нашей шкале. Показывает, сколько времени уходит на разработку/тестирование и подготовку фичи к релизу. Это самая честная и понятная метрика для команды, т.к. она на 100% находится в зоне ее влияния.

  • Release Time — сколько времени занимает выпуск готового функционала. Метрика больше для корпораций и крупных компаний. В истории, когда у тебя десятки или сотни команд, время выпуска релизов может достигать недель, и за этим показателем есть смысл следить и как-то его улучшать. В небольших командах или компаниях с низкой бюрократией и/или низким техническим легаси этой метрики может вообще не быть, т.к. время на релиз несущественно.

  • Cycle Time — от "взяли в работу" до "выпустили в прод". Первая из перечисленных метрик, которую можно ставить в KPI команды и мониторить ее на дашбордах. По ней видно, как быстро работает каждая из ваших команд.

Начинаем усложнять. Допустим с метрикой Cycle Time вы разобрались и даже улучшили до нужных значений.

  • Lead Time — следующий уровень. Сколько времени проходит от того, как мы завели задачу в бэклог до ее фактического выпуска? По опыту, Lead Time обычно кратно больше Cycle Time. И причина этому — долгое время ожидания очереди в бэклоге.

  • Time to Market — та самая фраза, которую вы слышите на митапах и конференциях. Научиться ее измерять — дело уже высшего пилотажа, и мало кому действительно удается. Вся сложность кроется в измерении самого первого этапа — генерации идеи. Как оцифровать тот самый момент, когда вы на совещании или по пути на работу придумали классную фичу и решили ее делать? Сколько дней или недель прошло до того момента, как эта фича появилась в бэклоге в Jira?

  • Time to Learn — сколько времени проходит от момента, когда классную фичу кто-то придумал до момента, когда по ней появились цифры в амплитуде. Показатель в большей степени характеризует с какой скоростью работает ваш бизнес/продукт в целом. Как быстро вы выпускаете новые продукты или проводите эксперименты?. Как быстро вы обрабатываете результаты этих запусков и делаете из них выводы? Как быстро вы потом можете обновить свои приоритеты и поменять свой курс? Этот показатель комплексно отвечает на вопрос "как быстро работает ваша компания". И разумеется, тот, кто работает быстрее — тот обычно и побеждает.

Справедливости ради отмечу, когда мы начинаем внедрять оценку эффективности команд в организации, то первым делом определяем приоритетные метрики. В нашем случае это — Lead Time, Cycle Time и Release Frequency. Мы сразу и честно себе признаем, что все что больше этого (Time to Market, Time To Learn), мы нормально посчитать сейчас не сможем, да и вряд ли сможем на них в ближайшей перспективе повлиять. Поэтому сразу убираем их из фокуса.

Далее, как технически измерить эти показатели? Очень просто — timestamp в Jira. Для того, чтобы собрать статистику по всем нашим командам, нам достаточно настроить автоматическую выгрузку из Jira нескольких временных кодов:

  • Дата создания задачи. Автоматически создается Jira в любой задаче

  • Дата перевода задачи в статус In Progress. Также автоматически создается самой Jira

  • Дата выпуска задачи в релиз. Сильно зависит от вашего релизного процесса. В нашем случае — в каждую задачу проставляется fix version. По нему определяем дату релиза и проставляем ее в выгрузке.

  • Тип задачи. Важно не забывать разделять метрики по типам задач и следить за ними отдельно. Ведь Cycle Time по багу нельзя сравнивать с Cycle Time новой фичи.

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

Скорость сжигания бэклога

Если возиться с Jira и считать метрики не хочется или не можется — есть альтернативный вариант. Считаем скорость сжигания бэклога продуктовыми командами. Метод до жути простой, но рабочий. Как говорится — "keep it simple, stupid" (принцип дизайн проектирования, принятый ВМС США).

Что делаем:

  1. Вводим в командах любую систему оценки задач. В сторипоинтах, в часах, в штуках — как вам нравится.

  2. В конце каждого спринта/итерации/месяца собираем два показателя: сколько планировали единиц в работу, сколько по факту выполнили. Строим из этих данных несложную таблицу или дашборд.

  3. Наглядно видим слабые места в системе, получаем массу фактуры для работы над улучшениями.

В нашем примере мы собираем статистику по закрытым сторипоинтам в спринт каждой команды. "Сжигаются" сторипоинты в момент, когда задача доезжает до статуса Ready for Release, то есть она оттестирована и готова, осталось только выложить в прод.

Здесь важно сказать, что любую систему можно довольно таки легко обмануть. И история с оценкой метрик не является исключением. Рано или поздно ваши команды найдут способ читерить с оценками, это неизбежно. Но. Как правило, первыми способами обойти систему будут положительные под предлогами — "а давайте нарезать таски на более мелкие", "а давайте меньше брать в спринт", "а давайте оставлять временной резерв на непредвиденные задачи и вбросы". Это приводит к положительному эффекту процесса разработки. Ведь действительно, нужно лучше декомпозировать задачи, не брать в работу то, что "не лезет", и оставлять время на исправление багов.

Вывод

В первой части мы разобрались с вопросом «как быстро мы бежим?». А это - только вершина айсберга. Можно бежать очень быстро, но бежать не туда или вообще бежать в стену. 

Во второй части расскажу как оценивать качество того, что создают продуктовые команды (и ответить на вопрос "а куда мы бежим?"), как правильно мотивировать их на достижение коммерчески успешных результатов в продукте.

Источник: https://habr.com/ru/company/ligastavok/blog/677762/


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

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

В предыдущей публикации мы рассмотрели некоторые базовые вопросы относительно потоков и пулов потоков и готовы двигаться дальше. Давайте проведём эксперимент и найдём правильный объём работы для пула ...
Хабр, привет!Меня зовут Борис. Я Mobile QA lead в Vivid Money.Это вступительная статья в цикле статей по iOS-автоматизации, в которых я расскажу о том, как ускорить прохождение UI-тестов.Данная статья...
Заключительный перевод разделов Redis Best Practices с официального сайта «Redis Labs». Самое необычное и интересное сегодня под катом! Читать дальше → ...
Вместо эпиграфа И масляный туман над цехом проплывает, а в камере горит красивая дуга. Технолог не спешит — технолог понимает, что плюс один микрон ничё уж не решит. Тематика вакуумной техни...
Полтора года назад я просматривал блог одного из успешных российских фотографов-портретистов с узнаваемым стилем и в голову закралась мысль, а почему бы просто не поставить камеру на штатив, один...