Как стать синьором в Цельсе?
Жека НикитинМы целую неделю ничего не писали, но у нас даже есть оправдание - вчера закончилось наше очередное полугодовое перф-ревью. В связи с этим я хочу поговорить о карьерном росте DL-специалистов. Если ещё точнее - о том как мы с разной степенью успешности отвечали себе и своим сотрудникам на вопрос из заголовка.
Система грейдов и матрица компетенций
Три года назад, когда компания и ML-отдел только появились, я решил, что мы - серьёзная компания (с 4 DL-специалистами 😃), и нам обязательно нужна система грейдов. Мы придумали 9 грейдов со странными названиями типа Ворон, Перс, Гелиодром, собранных в 3 классических уровня джун, миддл, синьор. Для каждого уровня понаписали всякого в хард-скиллах, например:
- джун - понимание основных метрик (ROC-AUC, PR-AUC, precision, recall, specificity), владение PyTorch на базовом уровне, начальные знания по DL-алгоритмам (бэкпроп, активации, SGD, аугментации) и так далее
- миддл - уверенное владение PyTorch (опыт написания кастомных компонентов сетей), сильные знания в области CV (с упором на детекцию и сегментацию), знание сути главных метрик в задачах CV, понимание принципов работы и сути всех компонентов популярных сеток (ResNet, Faster-RCNN, U-net, YOLO)
- синьор - экспертные знания хотя бы в одной области DL, опыт реализации нестандартных проектов с использованием zero-shot/unsupervised/semi-supervised learning
Ещё для каждого грейда прописаны софт-скиллы (тут мне стыдновато приводить примеры 😄) и в примерные зоны ответственности. В дополнение к этой сетке грейдов появилась более развёрнутая таблица компетенций с кучей столбцов (CV, NLP, tabular ML, визуализация, Python, Tooling, общий DL, оптимизация сеток, Pytorch), на основе которой мы даже попытались заполнить что-то типа матрицы компетенций.
Выглядело это всё даже более-менее вменяемо, да вот была одна проблема. По итогу оказалось абсолютно непонятно, зачем мы это сделали, и как это использовать. Для обеспечения прозрачности роста ("что мне надо сделать, чтоб больше зарабатывать?") инструмент явно не годился. Экзамены на хард-скиллы мы проводить категорически не хотели (зачем?), да и в целом на рост человека, кажется, должны влиять не его абстрактные знания, а перфоманс по рабочим таскам, навыки коммуникации, дополнительные активности типа шаринга знаний, организации эвентов, выступления. Использовать матрицы компетенций для планирования найма и балансирования уровня разных навыков в команде? На мой взгляд, даже на масштабе выросшего до 4 команд и 20 человек отдела это выглядит просто смешно. В итоге грейды по факту сейчас используются только для примерного определения уровня кандидатов на собесах, а в остальном это рудимент.
Микро-вывод: очень сложно сформировать адекватную систему грейдов с соответствующими хард и софт-скиллами, приходится натягивать сову на глобус, ML-навыки очень разнообразны, особенно это актуально в стартапах, где часто нет жёсткой специализации по областям работы.
ИПР
Параллельно с этим мы стали внедрять практику ИПР (индивидуальных планов развития). Идея была не нова - каждый человек вместе со своим лидом составляет некий план развития своих скиллов на ближайшие 3-6 месяцев, и в ходе работы двигается по нему с помощью:
- выполнения рабочих тасок на эту тему - человек старается брать больше тасок на конкретный скилл (Docker, Monai, асинхронка) или область знаний (3D-сетки, оптимизация сеток, инстанс-сегментация), и в ходе выполнения погружается в них чуть больше, чем обычно
- самообразование - книги, курсы, видосы на тему
- пет-проекты, которые прокачивают этот скилл
На последние два пункта выделяется 1 рабочий день в 2 недели (можно больше по договорённости), а ещё обязательным условием всегда являлось появление какого-то артефакта после изучения темы (доклад, пост в слаке, репа с пет-проектом). Эта тема взлетела чуть лучше, и на ранних этапах, думаю, даже внесла определённый вклад в наше развитие. В какой-то момент мы даже попытались "поженить" матрицу компетенций и ИПР - человек, который глубоко изучает какую-то тему, становится "центром компетенций" по этому вопросу и заполняет "карточку скилла" в ноушне, где указываются основные вехи изучения, ссылки на материалы и так далее. В теории выглядело неплохо, на практике загнулось очень быстро =)

Сами ИПРы с ростом уровня наших ребят тоже потихоньку сошли на нет, по крайней мере как общеотдельная практика. Конечно, каждый так или иначе составляет себе план развития (сами или с помощью коллег), качается по нему разными способами, даже осталась практика "1 день в 2 недели на развитие", но, например, идея прикладывать этот план к селф-ревью так и не реализовалась.
До сих пор хорошо заходит развитие через челленджи - сложные рабочие задачи, для выполнения которых текущих навыков человека не хватает. Для критических или срочных задач это может быть не лучшим вариантом, но в остальных случаях сотрудник обычно загорается, фигачит с двойным усилием и по итогу глубоко разбирается в теме.
А синьором-то как стать?
Скрывать не буду, у меня всё ещё остаётся некий зуд сделать что-нибудь со всеми этими грейдами, компетенциями, планами развития, но я точно больше никогда не буду делать ничего, потому что "так надо". Да, наверное, индивидуальный, несистематизированный подход к темам карьерного и профессионального роста не очень хорошо скейлится, но на текущем масштабе я пока не придумал, не нашёл, ну или не смог реализовать подход, который работает лучше.
Даже если количество ML-специалистов в компании уже немаленькое, индивидуальный подход к развитию может работать, если у вас крутые и вовлечённые лиды. У нас, к счастью так =)