Squad Health Check: измеряем здоровье команд

в 14:03, , рубрики: agile, Spotify, Блог компании Яндекс.Деньги, Здоровье гика, здоровье команды, управление персоналом, управление проектами

Метрики, KPI, SLA, DoD, OKR — численных показателей производительности и эффективности команд существует много, но часто их недостаточно, чтобы понять, как на самом деле обстоят дела в команде. Довольны ли люди тем, что они делают, гордятся ли своим продуктом, хотят ли идти в офис?

Squad Health Check — модель оценки здоровья команды, придуманная в Spotify, и сегодня расскажем, как мы в Яндекс.Деньгах измеряем наше здоровье и что из этого вышло.

Squad Health Check: измеряем здоровье команд - 1

Как измерить здоровье команд?

Обычно менеджеры в крупных компаниях хотят получать представление о том, что происходит в командах разработки. Это нужно, чтобы вовремя устранить системные проблемы, сосредоточить на чем-то конкретном свои усилия и направить команду на улучшение. Поэтому такие компании много экспериментируют с различными способами измерения «внутренней температуры». А когда речь заходит об оценке того, как обстоят дела, ответы чаще всего сводятся к цифрам — KPI, метрикам или к постановке целей на какой-либо период — на месяц, квартал, полгода. Например, сколько задач выполнено, сколько ушло в бэклог, сколько профакапили и так далее.

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

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

Какие недостатки у ретроспективы?

  • У нее маленький охват времени: команда отвечает на вопрос «Что плохого/хорошего случилось за спринт?» — не все вещи видны со столь близкого расстояния.
  • На ретроспективах многие предпочитают отмалчиваться и не говорить о негативных факторах. Например, достаточно сложно сказать в лицо менеджеру, что он, мягко говоря, некорректно себя вёл во время спринта.
  • Ну и наконец, ретроспектива часто сводится к формату «пришли, поболтали, разошлись, на следующей встрече повторили». Нет никакой аналитики и решения проблем.

Ребята из Spotify продвинулись дальше: в 2014 году они предложили такую идею, как Squad Health Check, отвечающую на те вопросы, на которые не может ответить ретроспектива. В какой-то момент мы наткнулись на эту статью и решили, что было бы неплохо попробовать провести у себя такое же. Этим процессом мы занимаемся ровно год, поэтому самое время поделиться нашим опытом. Далее немного матчасти и практические советы, которые помогут избежать наших ошибок.

Что такое Squad Health Check?

Squad Health Check: измеряем здоровье команд - 2

Squad Health Check — это модель оценки команд, позволяющая понять положение дел в команде или — в терминологии Spotify — здоровье команды, в формате общей встречи с голосованием по определенному набору индикаторов. При таком подходе команда самостоятельно оценивает себя.

Когда проводим такие встречи, то объясняем командам так: Squad Health Check = Ретроспектива + Planning Poker

Основные понятия

Как и любая другая модель, SHC имеет свой терминологический словарь.

Хэлсчек — собственно, сам Squad Health Check. Мы сократили большое название до такого неологизма и уже к нему привыкли.

Индикатор — вопрос, на который команда должна ответить. Spotify предлагает 11 индикаторов, мы ограничились 10 индикаторами. Думаю, больше 15 будет уже перебор.

Семафор — это оценка, которую должен дать отдельный участник. В нашем случае она может быть красной, жёлтой или зеленой.

Динамика — как изменилось состояние индикатора в сравнении с прошлым хэлсчеком. Если вы в первый раз делаете эту оценку, то предложите вспомнить ситуацию 3-4-месячной давности. У нас динамика трех видов: «лучше», «хуже», «без изменений». Иногда предлагаются варианты: «непонятно», «всё по кругу», «по синусоиде». Это вопрос договоренности.

Итоговая оценка — совокупность динамики и семафора всей команды, или по-другому общее ощущение от положения дел. Команда самостоятельно выбирает эту оценку в ходе обсуждения.

Кстати, чтобы понять, «зашёл» ли в вашей компании хэлсчек, стоит послушать, какие слова используют люди в разговорах. Если команда начинает говорить что-то в духе: «Ребят, мы в красной зоне по этому индикатору», то как минимум отторжения SHC в вашей компании не вызвала. А если завязывается оживленная дискуссия и полным ходом идем обсуждение проблем, то хэлсчек работает.

Шаг №1: определяем индикаторы

На сайте Spotify уже есть предложенный набор, мы его обдумали, и наши индикаторы сначала выглядели так:

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

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

Получился вот такой перечень:

  • техническое качество,
  • процессы команды,
  • time-to-market,
  • пешки или игроки,
  • помощь других,
  • командная работа,
  • атмосфера команды,
  • процессы разработки,
  • ценность продукта,
  • миссия команды.

Стоит ли постоянно менять индикаторы или оставлять их неизменными — вопрос дискуссионный. С одной стороны, с первого раза идеальных вариантов не получится, и тоже могут возникать вопросы наподобие: «А что пешки?» С другой — если постоянно меняется вопрос, то как оценивать динамику здоровья?

Шаг №2: задаем значение семафорам

Squad Health Check: измеряем здоровье команд - 3

Зеленый цвет значит, что ситуация устраивает, ничего сильно менять не нужно.
Красный — катастрофа, ситуация определенно требует изменений.
Желтый — где-то посередине, не хорошо и не плохо (Spotify использует выражение “meh”).

Думаем, что игроки в Magic: The Gathering уже узнали знакомые мана-символы. Да, всё так — для семафоров мы взяли привычные для них базовые земли, которые можно легко достать.

Базовые земли Magic: The Gathering

Squad Health Check: измеряем здоровье команд - 4

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

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

Как выглядит протектор

Squad Health Check: измеряем здоровье команд - 5

Шаг №3: описываем каждый семафор и индикатор

Структура слайдов нашей презентации для хэлсчеков выглядит следующим образом:

  • название индикатора,
  • краткое описание/вопрос индикатора,
  • описание зеленой оценки,
  • описание красной оценки.

Squad Health Check: измеряем здоровье команд - 6

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

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

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

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

В итоге вопрос про команду превратился в: «Работаем ли мы как одна команда?» Соответственным образом описали семафоры.

Индикатор «Командная работа»

Squad Health Check: измеряем здоровье команд - 7

Самым непонятным для команд был индикатор «Ответственность». Вопрос звучал так: «Несем ли мы ответственность за свои решения, за свои продукты и за свои сервисы?» Дальше начинался поток уточнений: «За какие решения нести ответственность? Я всегда отвечаю за тот код, который пишу. В чем вопрос?» Получалось, что в зеленом семафоре люди находили отражение ответственности за собственные решения, а в красном видели совсем другую ситуацию: решение квартальных планов.

Индикатор «Ответственность»

Squad Health Check: измеряем здоровье команд - 8

Стали думать: а что мы вообще хотим узнать? Посмотрели, что у Spotify похожий индикатор называется «Pawns or players» («Пешки или игроки»). Изначально мы такую формулировку откинули, решив, что нужно серьезные вещи решать, а тут какие-то пешки. Однако оказалось, что мы это и имели в виду, но не смогли это внятно сформулировать: «Чувствует ли себя команда влияющей на что-либо или за нее всё решает кто-то другой».

Индикатор «Пешки или игроки»

Squad Health Check: измеряем здоровье команд - 9

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

Шаг №4: находим незаинтересованное лицо

Помимо самой команды, на встрече должен присутствовать человек, который будет выполнять роль ведущего и модератора дискуссии. Также на встречу желательно звать секретаря — это тот человек, который записывает все основные моменты (не на диктофон, а сразу на ноутбуке).

Чтобы достичь максимально честных ответов, ведущий и секретарь должны быть относительно незаинтересованными. Представьте, что вы приходите командой на встречу, а вас IT- или HR-директор, спрашивает: «Команда мы или нет?» И команде сразу захочется отвечать так, как будет правильно, а не как они думают на самом деле.

Когда все необходимые слагаемые нашлись, мы решили попробовать. Дальше подробнее о том, как непосредственно проходят встречи в Яндекс.Деньгах.

Шаг №5: проводим встречу и собираем результаты

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

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

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

Squad Health Check: измеряем здоровье команд - 10

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

Squad Health Check: измеряем здоровье команд - 11

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

Squad Health Check: измеряем здоровье команд - 12

В итоге на маркерной доске:

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

Получается примерно следующее:

Squad Health Check: измеряем здоровье команд - 13

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

Шаг №6: анализируем данные

После первой череды встреч с командами может скапливаться множество таких фотографий:

Squad Health Check: измеряем здоровье команд - 14

Потом мы всё это оцифровываем в наш confluence:

Squad Health Check: измеряем здоровье команд - 15

В итоге мы заносим результаты по всем командам в сводную таблицу:

Squad Health Check: измеряем здоровье команд - 16

После этого шага есть важный момент. Вообще весь Squad Health Check — это про оценку команды внутри. Не нужно говорить, что у какой-то команды что-то лучше и что-то хуже. Мы смотрим, как дела, а не ругаем за результаты. Если команда дает красную оценку — отлично, это значит, что команда осознает, что у нее есть проблемы.

Что делать с этим дальше?

По нашим индикаторам все проблемы можно поделить на 4 типа:

Squad Health Check: измеряем здоровье команд - 17

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

Если проблема в индикаторах «командная работа» или «атмосфера», то, возможно, нужно пытаться менять состав команды. Идти в HR и говорить, что: «У нас проблемы, люди не хотят идти на работу»… Бывает, люди не уживаются, и это нормально.

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

Оптимально после хэлсчека предложить команде встретиться и провести ретроспективу по проблемным моментам. Дать ребятам возможность самим попробовать что-то изменить.

Несколько практических советов

Некоторые вещи не всегда очевидны, и мы до них дошли только со временем. Делимся с вами нашей работой над ошибками:

  • Не делайте слишком много индикаторов. Десять — это оптимальное количество. Если можете сократить до семи, делайте семь. Больше 12 — уже перебор.
  • Зовите секретаря. Позовите человека, который будет записывать происходящее. Например, мы пишем в чат и спрашиваем: «Ребята, кто хочет записывать?» Внезапное открытие, что много кому нравится посмотреть, как обстоят дела у команды, побыть отстраненным наблюдателем.
  • Оптимальное время: 1.5-2 часа. Меньше — точно не уложитесь. А если получается больше двух часов, то обязательно устройте небольшой перерыв. Я делаю кофе-брейк после пятого индикатора.
  • Встречайтесь хотя бы раз в полгода. Иначе много воды утечет, и очень сложно будет сравнивать показания. Раз в месяц — часто. Раз в год — команда может успеть забыть, что у них происходило 12 месяцев назад.
  • Один индикатор — один вопрос. Либо два, но очень сильно связанные друг с другом. Не стремитесь вложить в один индикатор массу вопросов, оставьте самое важное.
  • Красные оценки — это нормально. Не нужно ставить KPI по поводу того, что не должно быть красных оценок. Повторю, что это самооценка команды. Это то, что люди сами чувствуют. А если потом их наказывать, то в следующий раз они поставят все зеленые. И что с этим делать?

Если у вас много команд и вы собираетесь проводить хэлсчеки, то со временем придется делегировать проведение оценок нескольким людям. Что делать?

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

Вместо вывода

На самом деле Squad Health Check — это очень простая вещь. Эта модель не требует ничего особенного, кроме того, что нужно достать базовые земли MTG:) Поэтому зафиксируем еще раз алгоритм:

  1. Определите индикаторы.
  2. Проведите встречу.
  3. Соберите результаты/
  4. Проанализируйте данные.

Автор: NataliaZheltova

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js