От джуниора к лидеру. Какие навыки нужны для роста в профессии
С лета этого года мы в компании Namecheap, Inc запустили экспериментальный отдел R&D для формирования и реализации перспективных разработок и фасилитации инноваций среди наших инженеров. А значит, появилось время порефлексировать на тему карьерного роста в IT-индустрии и собрать мнения коллег по цеху...
Image Source: Unsplash
В процессе движения по карьерной лестнице от новичка в веб-разработке до руководящих должностей в компании (я побывал в роли от Junior до Senior Software Engineer, Team Lead, Scrum Master, Product Owner, Head of the technical stream, Solution and System Architect и DevOps), всегда было трудно понять, какие навыки нужно развивать для движения вперед.
То же самое касается случаев, когда я собеседовал кандидатов на различные должности в моих командах. Как понять, что кандидат имеет необходимый баланс технических навыков и личностных качеств, а также обладает подходящим образом мышления? Стоит ли пытаться быть «в теме» всех современных технологий в отрасли или же стоит сосредоточиться на одной конкретной области и быть в этом экспертом?
Итак, давайте попробуем ответить на эти вопросы и создать простую модель развития карьеры, которую вы сможете использовать в качестве ориентира для продвижения вперед. Я не претендую на повсеместную правильность уровней старшинства, используемых ниже. Назовите их так, как вам удобнее, или так, как они названы в структуре вашей организации. Это просто ориентиры.
Базовая модель
Для визуализации дальнейших тезисов давайте воспользуемся широко распространенной и простой моделью Т-образного набора навыков (T-shaped skillset).
В целом каждый специалист обладает:
- Некоторыми фундаментальными знаниями, связанными с профессиональной сферой, без которых было бы чрезвычайно сложно построить свою карьеру, так как все остальное обычно ложится поверх них. Например, чтобы стать инженером по машинному обучению, вы должны иметь сильные математические навыки.
- Базовые навыки в смежных областях. Например, для Front-end Web Developer это Design, UX, Back-end development, управление проектами и т. д. Этот вид знаний помогает вам эффективно общаться с коллегами.
- Личностные качества (soft skills) в таких областях, как лидерство, эмоциональный интеллект, самоконтроль, наставничество и т. д. Они необходимы, чтобы иметь возможность четко выражать свои идеи и результаты работы, строить доверительные отношения со своими товарищами по команде, с менеджером и подчиненными. А также справляться со своими и командными неудачами и строить неформальные отношения, которые чрезвычайно важны.
- И конечно, у вас должны быть глубокие знания в одной или несколько конкретных областях. Обычно это те навыки, благодаря которым вы были наняты. И это ваше самое мощное оружие для завоевания рынка.
В следующих разделах следите за ростом различных секций на диаграмме. И давайте начнем с самого начала :)
Имейте в виду, это усредненное представление карьерного роста. Но мы все ведь особенные, верно? Так что корректируйте модель в соответствии с вашими сильными и слабыми сторонами по ходу дела.
Junior Engineer
Итак, вам повезло и после нескольких лет интенсивного обучения вас наняли на позицию Junior [your tech] Engineer. Вероятнее всего, ваш Т-образный набор навыков выглядит следующим образом:
После окончания университета/курсов у вас есть базовое понимание основных дисциплин. Ваши личностные качества хороши, но, если это ваша первая работа, у вас все еще нет понимания корпоративной культуры и того, как вести себя в определенных ситуациях.
Ваша основная характеристика состоит в том, что вы можете делать что-то не очень сложное под присмотром старших коллег. И это главная характеристика Junior-инженера, я бы сказал.
Middle Engineer
По мере роста в вашей компании, приобретая больше опыта в коммерческой разработке, вы меняете диаграмму примерно следующем образом:
Обычно в течение первых
Теперь вы можете делать практически все под менторством более опытного коллеги. Проверьте, можете ли вы сказать это о себе :)
Senior Engineer
Этот шаг сделать гораздо сложнее по сравнению с предыдущим, потому что вам действительно нужно прокачать навыки во всех областях. Если вам это удалось, то диаграмма должна выглядеть примерно так (попробуйте сравнить с предыдущим шагом):
Как и ранее, крайне важно продолжать прокачивать свой основной навык, потому что он станет основой вашей будущей карьеры и даст вам возможность быть в безопасности на конкурентном рынке. Также обычно нужно немного развить фундаментальные дисциплины, поскольку они необходимы для решения самых сложных задач и написания эффективного кода. Так что время засесть за книги по Computer Science, сетям, алгоритмам и т. д.
Ваше новое описание сейчас: этот парень может делать все самостоятельно (да еще и саппортить коллег), если есть доступные требования.
Стоит отметить, что это очень подходящее время, чтобы начать практиковать менторство. Оно поможет вам укрепить свои навыки общения, а также отточить основную квалификацию.
Team/Tech Leader
В какой-то момент вас попросят запустить новый проект и собрать команду под него или стать лидером в своей текущей группе. Также вы можете перейти в другую компанию на более высокую должность. И хитрость в том, что это только начало истории :)
Теперь вам крайне необходимо очень быстро выучить много новых вещей. И что удивительно, после всего этого беспорядочного обучения и периода адаптации ваши навыки будут выглядеть примерно так:
Вообще никакого прогресса в вашей основной дисциплине! На самом деле, вы можете даже немного потерять навык, но давайте будем оптимистичны :)
В этой новой роли вам действительно нужно прокачать свои soft-скилы, поскольку теперь вам нужно заботиться не только о себе, но и обо всей команде. Ваша главная цель — обеспечить, чтобы команда работала максимально эффективно. И для этого вам необязательно трудиться в команде, нужно работать над командой, что означает оптимизацию внутренних процессов, фасилитацию обсуждения и планирование задач, развитие членов команды и т. д.
Вы даже можете прекратить писать код (что может быть не очень хорошей идеей, поскольку вы полностью потеряете свои навыки), если ваша команда работает хорошо. Не забывайте подавать пример (lead by example) и постоянно растить членов своей команды.
Architect / Head of the department
На этом этапе вам обычно нужно принять решение о своей будущей карьере. Вы технический парень, который хочет продолжать писать вечно? Или вы хотите стать менеджером и занимать такие должности, как директор по инжинирингу, технический директор, генеральный директор?
Architect
На этой должности вы будете активно взаимодействовать со своими клиентами, для того чтобы создать, смоделировать и представить первоначальный дизайн, который будет передан в разработку команде. А также вы будете валидировать более низкоуровневые решения, принимаемые командой. Поэтому вам необходимо улучшить свои фундаментальные знания, чтобы иметь возможность принимать объективные решения, основанные на фактах и знаниях, а не на опыте и чувствах.
А еще я бы сказал, что архитектура — это не только дизайн технических систем, но и люди. Вам всегда нужно учитывать людей, с которыми вы работаете, и, как результат, ресурсы, которые у вас есть (например, зачастую плохая идея — предлагать использование языка Rust, если у вас команда разработчиков на Go). И даже если у вас есть возможность создать совершенно новую команду, потребуется сформировать список необходимых позиций и нанять специалистов с необходимым набором навыков.
Таким образом, вы должны действительно продвинуться в понимании смежных дисциплин и того, как разные специалисты взаимодействуют друг с другом, чтобы разработать систему, которая может быть построена людьми, имеющимися в наличии (или которых сможете нанять) за оптимальное время. И да, иногда можно пожертвовать техническим совершенством, чтобы сделать решение «выполнимым» для своей команды.
Head of department
Если же вы выбрали «альтернативный» путь для своей карьеры, у меня есть для вас сюрприз :) Вот так скоро будут выглядеть ваши навыки:
В этой новой роли вам действительно нужно прокачать свои soft skills, так как отныне вы практически не будете участвовать (если будете вообще) непосредственно в разработке. Вы будете добиваться результатов с помощью своих команд, и вы должны быть способны поддерживать их в форме, помогать решать проблемы, улучшать навыки отдельных специалистов, находить нужных людей и т. д.
В результате вы потеряете некоторые глубокие технические знания, которые у вас были ранее, так как они устареют, а ваш образ мышления адаптируется к новому типу работы.
Многие статьи уже осветили подробно особенности работы на руководящей должности, поэтому я не буду повторять тут все еще раз :)
Заключение
По мере вашего продвижения по карьерной лестнице качества (а также обязанности), необходимые для получения следующей должности, могут значительно отличаться от того, что у вас есть в настоящее время. Поэтому я бы порекомендовал читать не только литературу, связанную с вашей текущей ролью, но и то, что штудирует ваш руководитель/ментор и коллеги из пересекающихся областей.
Что же касается гонки за всеми хайповыми технологиями, я бы рекомендовал оставаться в курсе всех новинок в области ваших глубоких знаний и ознакомляться с технологиями, которые вышли или вплотную приблизились к «плато продуктивности» в смежных областях. Это позволит оставаться в тренде и не терять фокус.
Желаю вам всего наилучшего в процессе саморазвития и достижения карьерного успеха!
Оставляйте свои комментарии и замечания. Всегда интересно услышать мнение коллег и изучить альтернативный опыт :)