Написать пост

Как стать хорошим ментором в IT и получить от наставничества максимум пользы?

Аватарка пользователя Maria Petrova

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

Опыт менторства — это и возможность прокачать свои soft skills: научиться делегировать и быстрее переключаться между рабочими процессами, понятно и доходчиво объяснять задачу, лучше оценивать сроки и результаты проектов любого масштаба.

Именно поэтому в ABBYY так много менторов. Не так давно мы подсчитали, сколько сотрудников преподают на кафедрах, проводят стажировки, принимают внутренние экзамены, проводят Code Review. Оказалось, что у нас более 30 наставников по направлениям Natural language proccessing (NLP), Computer Vision, мобильной разработке и другим. Кто-то уже помог десяткам учеников, а кто-то — еще только начинает передавать свои знания другим. Хорошие наставники в IT — на вес золота, и этому тоже можно учиться.

Прежде, чем рассказать, как стать хорошим ментором, посмотрим, на разницу между руководством, менторством и коучингом.

Как стать хорошим ментором в IT и получить от наставничества максимум пользы? 1

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

1. Проверять знания и навыки учеников «на берегу»

У нас есть период адаптации новых сотрудников. Иногда его приравнивают к испытательному сроку, иногда — нет. Каждому новому члену команды мы назначаем несколько экзаменов, где проверяем его знания по разным темам.

Например, разработка на C++, изучение наших внутренних библиотек, таких как NeoML, и так далее, в зависимости от специализации. Экзамен проходит не один раз, это серия встреч, в результате которых ментор-экзаменатор выносит вердикт о том, насколько новый сотрудник-менти разбирается в теме, может ли он писать код в соответствии с корпоративными стандартами.

В ходе проверки новобранец должен тщательно изучить тему, воспользоваться поиском по нашему коду или в открытых источниках и  попытаться решить задачу самостоятельно. Если что-то не получается, можно консультироваться с коллегами или с экзаменатором. Цель ментора на экзамене – выровнять уровень подготовки у сотрудников одной команды. К примеру, для разработки кода в технологиях ABBYY требуется высокий уровень знания C++.

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

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

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

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

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

«Еще до старта стажировки мы составляем список задач и проектов для будущих менти. Как правило, такие списки мы придумываем всей R&D командой. Получается около десятка тем по разным направлениям разработки. Мы стараемся соблюдать баланс интересов.

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

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

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

3. Вдохновлять и направлять

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

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

Конечно, ментор должен и вдохновлять, но и контролировать качество выполнения работы. Если я вижу, что мой ученик пошёл не в ту сторону, я корректирую его действия. Начинающему программисту легко закопаться в каких-то дебрях — например, начать вникать детально в работу какой-нибудь open-source библиотеки, пытаться понять каждую строчку кода. Можно потратить на это полгода, а результатов не будет.

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

4. Не бояться доверять и делиться опытом

В ABBYY стажёры решают реальные, «боевые» задачи с первого дня. Например, на стажировке в отделе Computer Vision у нас была довольно сложная задача — подобрать оптимальную архитектуру нейросети в процессе её обучения (NAS) для детектирования баркодов на изображениях документов.

Я рискнул доверить этот проект сразу двум ученикам. Они пробовали применять различные методы подбора архитектур, им удалось запустить градиентные методы подбора (DARTS и ProxylessNAS) на этой задаче и получить первые результаты. До этого момента никто из моих сотрудников не ставил подобных экспериментов. А ребятам удалось модифицировать код, и всё заработало. Один из них по итогам стажировки остался работать у нас.

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

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

Рост мастерства — это второй аспект мотивации. К примеру, многие начинающие специалисты не владеют интегрированной средой разработки (IDE) — программируют либо в Jupyter Notebook, либо прямо в блокноте. И первая задача ментора — показать, как программировать более эффективно в IDE, быстро перемещаться в нужное место кода, отлаживать код.

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

Ещё пример: сейчас индустрия машинного обучения так развивается, что всё делается на open-source. Если человек умеет работать с чужим кодом, он станет крутым продуктовым инженером. А если будет писать «велосипеды» с нуля, то он далеко не уйдёт и его продуктивность будет равна нулю. Очень важно делиться такими наблюдениями с учениками, даже если они кажутся вам очевидными».

5. Прокачивать свои hard и soft skills

Конечно, наставник хорош тогда, когда обладает высоким уровнем экспертизы в своей области. Не все хорошие программисты – хорошие менторы. Но, как правило, все хорошие менторы — хорошие программисты.

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

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

Чтобы приносить пользу ученикам, у ментора должен быть накоплен приличный профессиональный опыт. Грубая метрика — это годы работы. Пять лет опыта — это хороший ментор. Десять лет — крутой ментор.  Если есть успешные проекты, результаты которых можно оценить и посмотреть, это тоже плюс. Сейчас еще появился Kaggle, платформа для соревнований по машинному обучению. Если ментор занимает хорошие места — это тоже хороший знак.

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

Следите за новыми постами
Следите за новыми постами по любимым темам
3К открытий3К показов