Продолжаем тему Engineering Manager и сегодня немного больше о позиции менеджера в структуре организации, его задачах и плюсах с минусами этой позиции.
Место в организации
Давайте начнем с того, где находится Engineering Manager в среднестатистической компании. Обычно эта позиция находиться между Tech Lead и Senior Engineering Manager, условно:
Junior ➜ Middle ➜ Senior ➜ Tech Lead ➜ Engineering Manager ➜ Senior Engineering Manager.
Это происходит, если Tech Lead прекрасно справляется со своими обязанностями и релизит фичи вовремя, укладывается в сроки и качество кода не страдает на протяжении определенного промежутка времени (допустим год и больше).
Для того, чтобы точнее представлять, чем обычно занимается Tech Lead и чем обычно занимается Engineering Manager, можно глянуть на диаграмму ниже.
Основная разница в том, что Tech Lead, в отличии от Engineering Manager не занимается (в большинстве случаев) управлением и развитием людей, так же, как и управлением проекта.
Идея роли Engineering Manager заключается в том, чтобы сосредоточится на управлении проектом и людьми, налаживанием коммуникации с другими командами, приоритезации задач и планирование работы команды на короткий (до месяца) и средний (до года) срок с учетом бизнесс-метрик команды.
Также, после роли Tech Lead ты уже начинаешь понимать, что такое планирование обьема работы за всю команду на текущий спринт, распределении задач и начинаешь немного больше вникать в бизнесс-метрики.
Задачи
Если более детально расписать обьем задач менеджера, то получится следующее:
Регулярные 1:1 с подчиненными
Разработка планов развития подчиненных
Выбор методологии разработки (Scrum / Scrumban / Kanban / etc.)
Приоритезация задач
Понимание места команды в общей структуре организации и то, за какие бизнесс-метрики отвечает команда
Планирование нагрузки на каждого подчиненного вместе с Tech Lead
Планирование задач на квартал вместе с Product Manager
Коммуникация со смежными командами
Ответственность за результат и документацию команды
Найм дополнительных людей в команду
Получается весьма неплохо, так, что у неподготовленного человека может и кукуха двинуть с непривычки, но к этому можно подготовиться (например почитав список литературы) или походив тенью за своим текущим менеджером.
И вот ты сидишь и думаешь: "Ну и на... зачем оно мне надо?"
Плюсы
Зарплата
Понятно, что раз позиция повыше, то и зарплата побольше. Средняя разница между тех лидом составляет около 20%.
Опыт управления людьми
Это первая позиция, где у тебя в прямом подчинении находяться люди.
А там, где управление людьми, там уже рост ограничен лишь CTO или VP.
Знаю, что есть разные конфигурации, особенно в маленьких компаниях, где есть только Tech Lead и над ним сразу или CTO или Head of Engineering. Не забываем и о том, что ты реально начинаешь влиять на карьеры других людей.
Опыт планирования и приоретизации
Понятно, что ты занимаешься, до определённой степени, приоритезацией и планированием на уровне себя любимого все время, а на уровне лида, отвечаешь за техническую составляюшую релиза команды.
На уровне менеджера тебе нужно сначала договорится со всеми командами от которых зависит твоя команда о том, что должно быть сделано, определить зоны ответственности, настроить коммуникацию и продумать систему обновления по изменениям (что особенно важно в больших компаниях, потому что все что больше изменения перевода занимает недели и месяцы)
После этого нужно просмотреть все запросы из разных команд и по степени срочности (от "надо было вчера", до "если через год будет - отлично") расставить приоритеты
Когда приоритеты расставлены, договориться с продукт менеджером о деталях с точки зрения продукта и бизнесса и технических деталяз с тех лидом и менеджерами зависящих команд
Найм людей
Ты решаешь сколько и каких людей тебе в команду нужно нанимать, сам руководишь полным процессом отбора кандидатов и можешь решать какую зарплату платить новому члену комаеды (обычно в определённых рамках, но всё же)
Минусы
Управление людьми
От тебя постоянно чего-то хотят. Просто привыкни к этому состоянию. В первое время это особенно истощает с непривычки, но время и опыт помогают. Добавить сюда ещё все проблемы на текущем рынке найма и непомерные запросы по зп, а также миграцию кадров, выйдет тот ещё гемор.
Приоретизация и планирование
На первых парах это требует достаточно много внимания, поскольку ты в начале, до конца не понимаешь насколько заранее ты должен подготовить задачи для команды, договориться о технических задачах, подготовить отчеты по загрузки команды, какое кол-во фич нужно будет зарелизить зп квартал, т.д.
Бюджет
С этого момента ты также отвечаешь за расходы своей команды на CI / CD / DB / кластеры, на которых крутяться твой бекенд и клиенты
Коммуникация с зависящими / зависимыми командами
Люди бывает разные. Как и команды. У кого-то документация кривая или ее нет, кто-то уже озлоблен и запарен и игнорирует встречи, кому-то просто пофиг и добиться от него информации нереально.
Ответственность за команду
Да, теперь ты несешь всю ответственность за команду, что может лечь тяжёлым грузом на твои плечи. Можно сказать и про то, что тебе решать кадровые проблемы, если член команды уйдёт, и отвечать за просранные сроки, но тут кроется ещё одна проблема о которой мало вспоминают - тобой будут закрывать все недостающие позиции (не везде, не все и не всегда, но достаточно часто).
Нет мобильного разработчика, хотя ты никогда не писал под мобилы - ты первый кандидат. Нет продуктового менеджера - повыполняй-ка его обязанности, пока не найдем нового. Нет Agile Coach - теперь ты за него!
Я попытался кратко, но чётко обьяснить разницу между позициями лида и менеджера, и коротко пояснить про все задачи, плюсы и минусы.
Монстры менеджмента приветствуются в комментариях, буду рад добавить к посту недостающих деталей!
P.S. Переработанный пост в благодарность за критику прошлого поста от @b00b1ik