Хто такий Engineering Manager та як його готують

Дуже часто ми бачимо в компаніях, що розробляють програмне забезпечення, посаду Engineering Manager чи Senior Engineering Manager. При цьому в деяких компаніях (особливо з маленькими командами) такої посади немає, і при цьому вони виконують поставлені перед ними завдання. То хто ж такий Engineering Manager, чим він займається і чи потрібен він команді?

Перш за все треба розуміти, що Manager це посада, а окрім цього існує таке поняття як роль. Ролей в девелоперських компаніях багато і залежно від навантаження структура компанії може бути такою, що кожній ролі відповідає окрема посада, а може бути що одна посада поєднує в собі кілька ролей. При цьому немає жорсткої прив’язки яка роль якій посаді відповідає, це дуже залежить від організації компанії.

Отже, які ролі притаманні Engineering Manager та що має на увазі кожна з них.

Перша, і мабуть найголовніша роль для менеджера — People Manager (керівник команди).

В рамках цієї ролі менеджер:

  • Керує процесом найму: визначає потреби команди, приймає участь у співбесідах (або технічних або на Soft-скіли, які не менш важливі), приймає фінальне рішення щодо найму;
  • Очолює процес онбордінгу: забезпечую найшвидшу адаптацію новачків, призначає менторів, контролює щоб ньюкамер ефективно просувався в навчанні;
  • Виконує Perfomance management: проводить регулярні 1:1, виконує постановку персональних цілей для співробітників команди, переглядає продуктивність, підтримує постійний ріст та розвиток кожного члена команди;
  • Займається Коучінгом та розвитком членів команди: допомагає побудувати план розвитку, прокачувати soft & hard скіли, сприяє кар’єрному росту;
  • Розв’язує конфлікти: функція менеджера підтримувати здорову атмосферу в команді, що вимагає вміння помічати та вирішувати проблеми раніше, ніж вони загостряться;
  • Утримує та мотивує команду: це включає боротьбу із вигоранням, контроль справедливого розподілу завдань, забезпечення залученості.

Звісно, з багатьма з цих функцій менеджеру допомагають інші відділи та спеціалісти (HR, People Partner, Tech Lead команди), але в кінцевому результаті всі вони бачать лише якусь конкретну сторону, а менеджер має зібрати і бачити всю картину вцілому.

Друга за важливістю роль — Delivery Manager або Team Lead (знов таки залежно від ситуації в компанії). Це власне відповідальність за доставку результату. Тобто Engineering Manager відповідаю за те, щоб команда стабільно виконувала зобов’язання, які на неї покладає бізнес.

Функції менеджера в рамках цієї ролі:

  • Планування роботи: участь у плануванні спринтів, планування релізів, визначення пріоритетів команди;
  • Побудова/контроль процесів роботи команди: запровадження та побудова ефективного циклу розробки (Scrum, Kanban або якісь інші чи змішані процеси, оптимальні для команди), усунення вузьких місць у процесах та їх постійна оптимізація;
  • Контроль виконання: відстеження статусу задач, розуміння ризиків і вчасне реагування на них (що, зазвичай, потребує якихось змін або додаткових комунікацій);
  • Delivery assurance: забезпечення якості результату та вкладання в дедлайни;
  • Прозорість та комунікація: синхронізація з продакт-менеджерами, дизайнерами та іншими командами. Забезпечення прозорості ситуації для бізнесу в будь який момент часу;

Engineering Excellence Driver або Technical Leader.

Роль Technical Leader є опціональною для Engineering Manager, і частіше назначається на менеджера в невеликих командах (точніше це TechLeads фактично назначаються менеджерами). Частіше за все Engineering Manager не пише код та не приймає прямої участі в технічній реалізації, але він повинен мати достатні технічні компетенції щоб відповідати за технічний напрям команди, розуміти команду та її проблеми, вміти правильно прокомунікувати по вертикаль вниз або вгору.

Функції в цій ролі:

  • Технічний вектор: визначення технічної стратегії, архітектурних підходів, стандартів та інших технічних деталей;
  • Code quality & prectices: контроль за інженерною дисципліною, CI/CD, тестуванням та інколи якістю коду;
  • Technical ownership: відповідальність за загальне здоров’я продукту (доступність, стабільність, масштабованість, технічний борг та інше);
  • Технічні рішення: участь в дизайн-ревью, перегляд інженерних пропозицій (RFC, ADR);
  • Менторінг техліда: якщо в команді є техлід — Engineering Manager допомагає йому розвивати команду та процеси;

Process Architect (будівельник ефективних процесів)

Це обов’язкова постійна роль Engineering manager — покращувати всю операційну діяльність команди і її процеси. Тут як в студентські часи: перші три роки ви працюєте на залікову книжку (на свої оцінки) а далі вона працює на вас. Якщо ви відпочатку витратили багато своєї уваги та свого часу на побудову якісних та ефективних процесів роботи команди, то надалі у вас буде набагато менше роботи і ви зможете переключити свій фокус уваги більше на продукт (розуміючи, що команда працює як надійних механізм). Інакше Ваш час постійно з’їдатиме рутина ручного керування командою.

Отже, функції в рамках цієї ролі:

  • Оцінка всіх процесів: пошук bottleneck’ів, оптимізація комунікацій і робочих потоків;
  • Впровадження кращих практик: Code Review, CI/CD, DevOps, Quality gates;
  • Автоматизація: усунення рутинних або ручних операцій;
  • Ретроспективи: забезпечення безпечного простору, де команда може чесно висловитися і покращити роботу;

Culture & Community Builder

Engineering Manager формує культуру команди та допомагає створити умови, де інженери працюють із задоволенням.

Функції:

  • Формування інженерної культури: відкритість, відповідальність, ініціативність, прагнення для якості;
  • Формування командної згуртованість: командні активності, ритуали, внутрішні технічні доповіді, sharing індивідуальних та командних досягнень, святкування маленьких і великих перемог;
  • Запровадження стандартів поведінки: реакція на токсичність, підтримка психологічної безпеки;
  • Участь і ширшій техспільноті: формування внутрішніх гільдій, організація та приймання участі у tech talks, knowledge sharing та інше.

Інколи Engineering Managerа можуть наділяти ще додатковими ролями, які є не притаманними цій позиції, тому зазвичай не рекомендується це робити. Наприклад роль Product Owner.

Справа в тому, що ролі Engineering Manager та Product Owner важко поєднувати, тож це може привести до падіння якості процесів.

  • Product Owner (та Product Manager) відповідають за те «що робимо» — потреби користувача, цінність фіч, пріоритизація фіч та функціональності.
  • Engineering Manager відповідая за те «як доставляємо» — команда, технічна якість продукту/фіч, процеси, delivery.

Завдання Product Owner, які зазвичай не входять в обов’язки Engineering Manager:

  • Аналіз ринку та користувачів;
  • Формування Backlog фіч;
  • Пріоритизація фіч;
  • Формулювання acceptance criteria;
  • Планування графіку релізів;
  • Управління безнес-цілями компанії/продукту.

У невеликих компаніях, де немає окремої позиції Product Owner, Engineering Manager може писати user stories, визначати пріоритети, вести backlog та бути «proxy PO». У технічних командах без прямого продукту (наприклад внутрішні платформи, інфраструктурні команди, команди developer productivity, системні API) часто немає класичного Product Owner, тому Engineering Manager виконує роль Technical Product Owner.

Також інколи в компаніях зустрічаються гібридні позиції «EM/PM hybrid», але це поодинокі випадки.

Отже підсумуємо, Engineering Manager — це керівник, який одночасно відповідає за людей, техніку та результат. Він забезпечує найм та розвиток команди, якість інженерної роботи та своєчасну доставку продукту. А також є ключовим партнером продакта й архітектурним драйвером якісного та масштабованого технологічного продукту.

👍ПодобаєтьсяСподобалось1
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Ну тобто те, чим раніше займалися тім ліди, тепер називають модним словечком Engineering Manager, і продають по новому. А деякі, типу Малєєва, ще навіть курси запускають, ніби це щось нове і без EM сьогодні ніяк і нікуди.

Як на мене, ця враза так само вірна як і фраза «Чим раніше займались Senior Deveoper’и тепер називають модним словечком Architect Developer». А власне, всі кордони умовні і скоріш за все Ви праві. Як я казав у пості, одна справа «посада», інша «ролі». Якщо все те, що перелічено вище, можна навантажити на Team Lead і в компанії це ок, то тоді це він і є. У великих компаніях більше процесів і команд більше, тому EM може займатись кількома командами.
Тут інше питання, що часто плутають в компаніях Team Lead і Tech Lead, і я дуже часто бачу плутанину, коли фактично не можуть це розділити.

У Valve взагалі плоска структура, розробники самі вибирають над чим хотіли би працювати, генерують ідеї, об’єднуються в команди, мінімум менеджмента і максимум свободи. І вот, одна із самих ефективних компаній в плані дохід на працівника )

Так, у Valve Corporation дещо унікальна організація розробки, у низ немає (точніше є, але дуже мало і точково) виділених Engineering Manager. Але вони використовують модель «Peer Leadership», коли хтось з команди бере на себе менеджерську роль по якомусь проекту. Це цікава модель, але вона як раз вимагає щоб велика кількість членів команди мала б якісь менеджерські навички.
Має право на життя, но не завжди будь де так працюватиме.

З опису виглядає, що це наче техлід над техлідами. Тобто звичайний техлід несе лідську та технічну відповідальність лише за 1 команду проєкту, а engineering manager — лідську та технічну відповідальність за всі команди проєкту.

Ну, може і так. Все залежить від розмірів команд і укомплектованості компанії, мені здається.

Тобто зазвичай у техліда багато роботи саме по проєкту і керуванню самим процесом написання коду, вибором технологій, проектування фіч, прийняття важливих технічних рішень.
А от займатися людьми (ширше ніж просто хороводити таски, скрам, фічі, робити код ревью і так далі) — часу не дуже багато.
Планування версій, контроль E2E тестування, спілкування з PM та іншими представниками бізнесу про те що і коли вийде, обговорювати пріоритети, вистроювати план робіт на майбутній квартал та інше — тут взагалі не реально. От всім цим, що вже не влазить в техліда і займається Engineering Manager.
Ну і так, цех схоже на «Teхлід на Техлідами», хоча скоріше навіть «тімлід над тімлідами».

Зайшов почитати коменти що «інжиніринг менеджери не потрібні». ))

Чекаємо перших дописувачів на цей холівар )

Підписатись на коментарі