Перевод второй части статьи «Navigating Software Engineering Career Paths».

В первой части статьи мы разобрали, как может выглядеть карьерный рост разработчика в ИТ-компании. Автор сделал особый акцент на том, что менеджмент это особый путь, а не просто следующая карьерная ступень. Многие программисты предпочитают не сходить с «технического» пути, оставаясь, например, на позициях разработчиков-сеньоров. Это совершенно нормально. Таким образом человек может продолжать писать код.
Но есть и люди, желающие попробовать себя в совершенно новой роли, поработать над другими задачами. Давайте разберем, как выглядит карьерный путь разработчика в менеджменте.
Менеджер по разработке ПО
Это самый нижний уровень менеджмента. Часто именно на этой точке вы решаете, идти ли дальше в менеджмент или оставаться разработчиком. Если кто-то хочет узнать больше об этом этапе, рекомендую почитать статью «Engineering Management: The Pendulum or the Ladder».
Характеристика
- Обычно 8 и больше лет опыта.
- Обычно отвечает за команду, где может быть до 15-20 инженеров.
- Устанавливает четкие ожидания от членов команды. Запрашивает, обрабатывает и обеспечивает обратную связь.
- Фокусируется на создании взаимоотношений, как внутри команды, так и между командами.
- Наставляет членов своей команды, чтобы помочь им непрерывно совершенствоваться и отлично работать.
- Работает с членами команды над разрешением споров внутри команды.
- Выявляет нежелательное поведение у членов команды и работает с ними над его устранением.
- Общается с руководством по вопросам графиков, объема работ и технических сложностей.
- Часто играет ведущую роль в найме новых членов команды или сотрудничает по этому вопросу с HR (менеджерами по найму).
- Представляет свои отчеты в ходе обсуждений производительности и зарплат.
- Работает с менеджерами продуктов и технической командой для определения объема работ и сроков выполнения задач.
- Обычно не пишет код, но периодически может участвовать в исправлении багов, «чтобы не терять хватку», но не в сложных ситуациях и не в условиях приближающегося дедлайна.
- Расписание по большей части находится в режиме «менеджер»: в нем доминируют собрания и личные встречи. В расписании менеджера редко бывают большие непрерывные куски времени.
Вопросы, которые можно задать себе на этом уровне
- В вашей команде именно вы определяете приоритеты и высказываете, чего ждете от членов команды?
- Есть ли у вас понимание, чего именно хочет достичь в своей карьере каждый член команды?
- Именно вы следите за ходом выполнения работ и докладываете руководству, когда происходят какие-то изменения?
- Вы помогаете членам вашей команды в достижении их целей, связанных с учебой, карьерой и зарплатой?
- Вы стараетесь выявлять и решать проблемы в коллективе до того, как они выйдут из-под контроля?
На чем стоит сфокусироваться
- Учитесь разрешать конфликтные ситуации.
- Работайте над своими навыками наставника. Приучайте себя задавать людям вопросы, а не давать им готовые ответы.
- Практикуйтесь в выявлении слабых и проблемных мест в вашей команде и процессах компании.
- Постоянно улучшайте свое умение устанавливать четкие ожидания и давать действенную обратную связь.
- Улучшайте свое умение доносить до вышестоящих менеджеров, членов команды и других заинтересованных лиц информацию о графиках, масштабах работ и рисках.
Ресурсы
- Книга «Мифический человеко-месяц».
- Kate Matsudaira — о лидерстве
- Книга «Путь IT-менеджера».
- Подкаст «Coaching for Leaders».
Директор по разработке ПО

На этом уровне вы полностью стоите на пути менеджмента. Большая часть вашего времени уходит на то, чтобы руководить другими менеджерами и координировать ресурсы между командами.
Характеристика
- Обычно 12 и больше лет опыта работы в ИТ-сфере, причем 4+ лет — в менеджменте.
- Обычно отвечает за несколько команд или за одну команду, но, например, в новой дочерней компании.
- Работает с техлидами и менеджерами над разработкой и внедрением технических дорожных карт и «видений».
- Отвечает за выявление и «взращивание» лидеров в своих подотчетных командах на всех уровнях (в частности, речь идет о менеджерах и разработчиках-сеньорах).
- Обеспечивает высокую техническую оснащенность организации.
- Часто участвует в вопросах найма персонала и планировании бюджета в рамках своих команд.
- Работает над структурой команд и межкомандным взаимодействием для обеспечения наибольшей выгоды для бизнеса.
- Занимается расстановкой приоритетов и для своих команд.
- В случае необходимости занимается вопросами поставок и внешними связями своей организации.
- Помогает решать возникающие проблемы между командами и разрешать технические споры.
- Обычно не пишет код.
- По сути, все его расписание будет в режиме «менеджер». В графике будут преобладать общие собрания и личные встречи. Большие непрерывные блоки времени — редкость.
- Достаточно подкован технически, чтобы правильно задавать инженерам вопросы, касающиеся бизнеса и продукта. Тем самым вносит свой вклад в техническую архитектуру.
Вопросы, которые можно задать себе на этом уровне
- Продолжаете ли вы постоянно работать над тем, чтобы делегировать все больше задач вашей команде, и над развитием навыков членов команды, чтобы они могли справляться с этими задачами?
- Учатся ли ваши команды независимой работе?
- Умеете ли вы устанавливать реалистичные ожидания относительно работы менеджеров и позитивно реагировать на их запросы?
- Отслеживаете ли вы такие «сигналы» здоровья команды, как частота релизов и частота неприятных происшествий, а также сопутствующие им вещи?
Вице-президент по разработке ПО

Это зачастую часть менеджерской верхушки в организации, занимающейся технологиями. Вице-президент по разработке ПО сотрудничает с техническим директором, который в большей степени фокусируется на технических аспектах.
Характеристика
- Обычно 15 и больше лет опыта.
- Фокусируется на налаживании рабочих процессов в компании.
- Часто отвечает за определение технических приоритетов для всей компании.
- Работает с техническим директором, продуктовыми руководителями и другими лицами над преобразованием стратегического видения в технологическую дорожную карту.
- Учит новых директоров и и старших менеджеров по разработке ПО.
- Планирует общую численность персонала для всей организации и работает с директорами над распределением сотрудников по командам.
Главный технический директор
Это самый большой «технический» начальник в организации. Название должности, а также должностные обязанности CTO отличаются в разных компаниях, но он скорее фокусируется на будущих технологиях организации, чем на повседневной работе каждой команды. (Повседневной работой больше занимается вице-президент по разработке).
Характеристика
- Обычно фокусируется на технической стратегии всей компании.
- Редко руководит рядовыми сотрудниками напрямую. Больше работает с вице-президентом по разработке и другими руководителями в плоскости управления всей организацией.
- Отвечает за выработку «видения» компании по части технологий.
- Определяет, как технологии могут помочь росту бизнеса, и использует эти возможности.
- Заботится о том, чтобы внедряемая архитектура позволяла использовать возможности для роста бизнеса, которые могут появиться в будущем.
[customscript]techrocks_custom_after_post_html[/customscript]
[customscript]techrocks_custom_script[/customscript]