Продолжаем тему Engineering Manager и сегодня немного больше о позиции менеджера в структуре организации, его задачах и плюсах с минусами этой позиции.

Место в организации

Давайте начнем с того, где находится Engineering Manager в среднестатистической компании. Обычно эта позиция находиться между Tech Lead и Senior Engineering Manager, условно:

JuniorMiddleSeniorTech LeadEngineering ManagerSenior 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

Комментарии (4)


  1. BuccapuoH
    05.02.2022 10:52

    Я замечаю, что в большинстве статей показывается позиция EM как некое продолжение позиции Tech Lead. Это еще более странно, видя рекомендацию на книгу The Manager's Path. EM это другая ветка от Engineer. Tech Lead - это вообще временная роль, а не ступенька на картерной лестнице.

    Исходя из прогрессии в начале статьи - инженерные задачи выше Senior Engineer в организациях решает никто, ведь все инженеры должны непременно стать менеджерами (или уйти). А задача менеджеров - подбирать методологию и тикеты приоритизировать.

    Я думаю, было бы полезнее разделять путь инженера и путь менеджера, ибо задачи у них разные, особенно на уровне выше Senior.


    1. jsfun Автор
      05.02.2022 13:38
      +1

      Отличное замечание! Я намеренно не указывал ветку прогрессии IC ( Individual Contributor) но могу описать и этот путь, хоть для меня он будет скорее умозрительным.

      Грубо говоря, выглядит примерно так

      Junior > Middle > Senior > Stuff Engineer > Principal > Senior Principal (опционально в корпорациях есть Member of technical Staff )


      1. BuccapuoH
        05.02.2022 16:31
        +2

        Я бы с радостью почитал про ветку IC! Я думаю что эта тема очень слабо освещена.


  1. Crashmybed
    05.02.2022 13:38
    +1

    Забавно, я долго не понимал что я такое сейчас и нашёл самое точное описание в рамках статьи :)