- PVSM.RU - https://www.pvsm.ru -

26 апреля на конференции KnowledgeConf 2019 [1] прозвучал доклад «Performance Review и выявление тайного знания». Обычно мы рассказываем про технологии, однако, чтобы развиваться как компания, занимаемся далеко не только этим. Данное выступление, посвящённое инженерам и их развитию, — хороший тому пример. Если вы тимлид или думаете о том, как обеспечить рост сотрудников в команде, эта статья (и сам доклад) может оказаться полезной.
По традиции рады представить видео с докладом [2] (50 минут, гораздо информативнее статьи), а ниже — его выжимка в текстовом виде, обогащённая некоторыми деталями, не прозвучавшими в самом докладе.
До «Фланта» я был техническим директором в компании-разработчике. Мне хотелось, чтобы команда росла, становилась способна решать всё более сложные задачи и сотрудники повышали квалификацию. А для этого требовались две вещи:
Нужно было получить некие правила, по которым сотрудник мог бы развиваться в компании и по которым можно давать ему своевременную обратную связь, чтобы помогать с проблемами на этом пути.
Как оказалось, нет. Даже если у вас есть описания вакансий сотрудника более высокого уровня, нельзя просто взять набор ключевых слов из неё и сказать, что это и есть необходимые шаги для повышения карьеры. Если вы скажете сотруднику: «Выучи Symfony 4, PostgreSQL и MySQL», — ему это не сильно поможет. Не учить же ему весь MySQL! Важны детали, поэтому потребуется какое-то средство измерения навыков человека… что-то вроде линейки.

Представьте себе линейку, но у неё вместо делений — качественные уровни владения навыком, которые естественным образом можно выделить. Если бы у нас была такая линейка, мы смогли бы привязать к ней реальные задачи, реальный опыт и конкретные обучающие материалы. Так?
К сожалению, нет: на практике подобная линейка оказывается отдельной темой для «священных войн», поскольку не получается с математической точностью сказать, умеет человек реализовывать сложную бизнес-логику или ещё нет. Но есть и хорошая новость: на той же практике математическая точность не так нужна. Можно воспользоваться методом экспертной оценки: дать наиболее опытному и наиболее погруженному в ситуацию сотруднику возможность принимать решение о принадлежности к уровню навыков, и от этого уже отталкиваться.
Придётся закрыть глаза на плохую точность, на посредственную масштабируемость метода и много чего ещё, но в то же время можно признать, что этот способ вполне неплохо справляется со своей задачей. Мало того — и по сей день он очень много где используется. Зачастую тимлид вполне может выступать в качестве такого «эксперта» в своей команде, и это ок.
Звучит логично, что нужно периодически (например, раз в квартал) встречаться с сотрудником и давать ему обратную связь. И постараться организовать это так, чтобы процесс был наполнен смыслом, а не карго-культом. Неплохой идеей кажется взять наши «линейки» с навыками:

… организовать из них N-мерное пространство и сказать человеку, где он в этом пространстве находится, после чего договориться, куда будет двигаться дальше:

N-мерное пространство представить тяжело, поэтому можем использовать для этих целей таблицу. Рядами в ней будут наши навыки, а в колонках — уровень развития навыка. Если мы проведём две такие сессии, то сможем увидеть примерно следующую картину:

… что, казалось бы, убедит нас в верности выбранного пути и выбранных инструментов — ведь люди развиваются. А когда изменений наберётся критическая масса, можно поднять сотруднику зарплату и поменять шилдик на его должности, сказав, например, что он теперь Middle PHP Developer.
В теории это звучит классно и прозрачно. Я делал попытки запустить механизм в таком виде — и они были… прямо скажем, не очень. Известные мне попытки коллег по цеху также не вдохновляли. Основные проблемы таковы:
Когда я пришёл во «Флант», то увидел ряд проблем, которые заставили меня задуматься о Performance Review, а именно:
Поэтому очень хотелось выделить навыки, которые нужны для каждой из позиций, и создать условия для карьерного роста.

Но всё оказалось не так очевидно…
Выяснилось, что никто не может выделить требования к навыкам DevOps-инженеров и вообще выделить какие-либо «уровни квалификации». Наиболее близкое описание этой позиции — у бессмертного Роберта Хайнлайна:
Любой человек должен уметь менять пеленки, планировать вторжения, резать свиней, конструировать здания, управлять кораблями, писать сонеты, вести бухгалтерию, возводить стены, вправлять кости <...>, программировать компьютеры, вкусно готовить, хорошо сражаться, достойно умирать.
То есть руководители команд ожидали и растили своих людей как fullstack-инженеров, способных и корректно выяснить детали о задаче, и решить все технические вопросы, и довести это до production’а.
Меня, конечно, это вдохновило. Здорово работать в компании, где каждый — универсальный боец, разносторонняя личность и отличный инженер! Омрачалось это только тем, что всё выглядело как огромная тёмная пещера с тайным знанием, в которую страшно входить. Не хотелось обрекать инженеров на подобные путешествия.
Как вы, возможно, догадались, под капотом оказались десятки технологий с сотнями нюансов. Мы не ограничиваем своих клиентов в выборе технологического стека для своих приложений, поэтому наш инженер сталкивается с большим разнообразием баз данных, серверов очередей, фреймворков и языков, инструментов диагностики, разработки и отладки, а также особенностями разных ЦОДов и платформ.
За последние 5 лет я стал свидетелем фундаментального изменения: если раньше почти нормой считалось, когда техдир заявлял: «Мы работаем на платформе Х с базой данных Y и ни на чём другом мы работать не будем», — то теперь некоторые СТО могут и вовсе отпустить контроль за стеком, уповая на микросервисы и (довольно спорный [3]) лозунг: «Если сломается, проще переписать всё с нуля».
Составить в этих условиях список технологий для оценки сотрудников — нетривиальная задача. А поддерживать его постоянно актуальным слишком трудозатратно и сложно организационно. Поэтому мы попробовали найти решение и хотим поделиться им.
Мы решили попробовать другой путь, но для начала переосмыслить свои действия и ожидания. Запуская Review, мы бы:
Мы вложили около полутора месяцев на переосмысление этих пунктов и ниже я расскажу, что же из этого получилось.
Мне довелось смотреть на примерно такую картинку в попытках понять, что здесь может быть не так:

И в какой-то момент пришла интересная мысль: здесь изображено избыточное количество информации. На самом деле, не так важны конкретные «деления» — картинку можно упростить до такой:

Нас интересует скорость развития, а не факт того, что человек достиг какого-то конкретного уровня. Было ли вообще развитие? Много изучил человек или мало? Вот что настоящий показатель!

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

Подобно тому, как мы можем по следам в лесу понять, что там водятся белки, лисицы и медведи, попробуем выявить и тайное знание…
Тимлид Пётр любезно согласился поучаствовать в пилотном проекте по запуску Review в обновлённом виде. Пётр вник в идеи, и мы с ним запланировали встречи с сотрудниками. В результате самостоятельной подготовки, Пётр сформулировал вот такую обратную связь об одном из своих инженеров — Леониде:

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


Кстати, примеры плохих и хороших формулировок мы выложили здесь [4].
Само ревью проходит всегда очно. Несмотря на то, что мы работаем удалённо, ни о каком ревью через документы/опросники/сервисы речь идти не может. В нашем случае общение идёт через Google Hangouts и присутствуют тимлид, инженер, HR и, по необходимости, другие заинтересованные.
Ревью проходит через несколько этапов:
Итого:

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

Другие знаменательные моменты:
Может показаться очевидным, что инженер, например, должен действительно любить то, чем занимается, и получать удовольствие от работы… Так или иначе — вот четыре навыка, которые оказались самыми востребованными (с большим отрывом):

Другими важными навыками оказались:

Тем временем, внимательный к деталям читатель мог заметить, что мы не очень-то измеряли performance… Возможно, со временем устаканится список навыков и оформится годная матрица компетенций, либо мы внедрим какую-то другую систему оценки.
Кроме того, прямо сейчас мы ищем способы поставить на поток обучение проведению ревью среди руководителей — готового решения у нас ещё нет.
Отдельный сложный вопрос, который не так просто формализовать, — это связь системы оценки и вопроса зарплат сотрудников. Как нам кажется, этот вопрос напрямую обусловлен бизнес-моделью компании, и решение для одного бизнеса может не очень подойти для другого. (О нашей модели уже рассказывали [5] на хабре: мы построены почти как франшиза, и по мере роста эффективности и компетентности команды у неё появляются деньги на зарплаты.)
Видео с выступления (~50 минут):
Презентация доклада:
Возможно, вас также заинтересуют следующие публикации:
Среди других докладов в нашем блоге:
Автор: Цупко Игорь
Источник [14]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/upravlenie-personalom/320730
Ссылки в тексте:
[1] KnowledgeConf 2019: https://knowledgeconf.ru/2019
[2] видео с докладом: https://www.youtube.com/watch?v=japvfswnwtg&list=PL1mJ-PkCYnmB9vljnjxCMP3dlxQY3Dfcq
[3] довольно спорный: https://habr.com/ru/company/flant/blog/424531/
[4] здесь: https://secret-review.flant.ru/
[5] уже рассказывали: https://habr.com/ru/company/flant/blog/444712/
[6] Как „Флант“ помогает новичкам: https://habr.com/ru/company/flant/blog/419051/
[7] Как „Флант“ нанимает сотрудников: https://habr.com/ru/company/flant/blog/417725/
[8] 7 привычек успешных Site Reliability Engineers (по версии New Relic): https://habr.com/ru/company/flant/blog/342590/
[9] Расширяем и дополняем Kubernetes: https://habr.com/ru/company/flant/blog/449096/
[10] Базы данных и Kubernetes: https://habr.com/ru/company/flant/blog/431500/
[11] Мониторинг и Kubernetes: https://habr.com/ru/company/flant/blog/412901/
[12] Лучшие практики CI/CD с Kubernetes и GitLab: https://habr.com/ru/company/flant/blog/345116/
[13] Наш опыт с Kubernetes в небольших проектах: https://habr.com/ru/company/flant/blog/331188/
[14] Источник: https://habr.com/ru/post/455790/?utm_source=habrahabr&utm_medium=rss&utm_campaign=455790
Нажмите здесь для печати.