Мапа кар’єрного зростання програмістів має два напрямки — можна рухатися вгору по вертикальній осі, а можна вглиб — по горизонтальній. Спеціалісти, які обирають вертикальний вектор, ростуть до позицій Tech/Team Leads, Engineering Manager та Delivery Manager.
Ті, що обирають горизонтальний вектор, поетапно долають кожну зі сходинок від Junior до Senior Engineer, а далі горизонтальне зростання залежить від структури компанії. Хтось стає архітектором, а хтось змінює компанію й посилює свої знання завдяки новим процесам і технологіям залежно від проєкту. Згідно з класичним підходом всім інженерам, які обирають напрям «вгору», важливо особливо сфокусуватися на розвитку soft skills — People Management, а для тих, які обирають розвиватися горизонтально, необхідно весь час удосконалювати hard skills — Engineering Expertise.
Щоб бути лідером, необов’язково очолювати команди чи управляти людьми, насамперед треба бути тим, хто задає вектор руху, впливає на інших, формує тренди й змінює їх. Відповідно до такої концепції engineering leaders — це не лише ті, що очолюють команду, а й усі експерти, які розробляють інновації, передові продукти та впроваджують цифрову трансформацію в реальність.
Якими є основні принципи Engineering Leadership, що допомагає розробнику зростати за вертикальним і горизонтальним вектором руху, розповідає Марія Ковалівська, Engineering Manager в Innovecs. Свого часу вона прийшла в компанію на позицію Middle Engineer за напрямком Frontend (React) і буквально за три роки обійняла посаду Engineering Manager.
Менторство
Менторити джунів може як Team/Tech Lead, так і Senior Engineer. Головна умова — це глибока експертиза і бажання допомогти колегам. Саме з цього почався мій плавний перехід від ролі Senior Engineer до Team/Tech Lead і далі Engineering Manager. По суті, Team/Tech Lead — це Senior Engineer, який вміє керувати людьми, орієнтується у процесах і вміє менторити інших. Загалом я працюю в ІТ вже близько 6 років, з них — 2,5 роки досвіду на позиції програміста в аутсорсинговій компанії й стартапі, а 3 — в компанії Innovecs.
Саме тут відбувся мій вертикальний ріст у ролі менеджера. Я навіть не ставила собі за мету рухатися по вертикальній осі, усе було природно. Завдяки складнішим завданням поступово виросла від Middle до Senior, тоді почала менторити Junior Engineers. Згодом вже переймала обов’язки Team/Tech Lead. Коли обсяги роботи на проєкті зростали, команда поділилася на підкоманди. У моєму підпорядкуванні було 3-4 людей. Залишаючись на позиції програміста, я вже займалася менеджментом. Згодом у команді відбулася класична ротація працівників: ті, кому я підпорядковувалася, просунулися вище, а я підхопила їхню роль.
Не можу сказати, що я дуже цього хотіла, але водночас за рівнем досвіду й експертизи була підхожою для тієї позиції. По-перше, на позицію Engineering Manager відбирали людину, яка вже знає усі особливості проєкту, а, по-друге, це мала б бути людина з хорошою технічною експертизою, а також навичками управління.
З переходом на позицію Engineering Manager я перестала програмувати та більше займалася організаційною роботою й технічним менторством людей. Це не означає, що код повністю зник з мого життя, іноді мені доводиться переглядати і виправляти помилки інших. Але це більше на рівні консультування й порад.
Експертність
У нетехнічних сферах є поділ на організаційних менеджерів, які відповідають за побудову робочих процесів, і на менеджерів напрямків, які є фахівцями своєї сфери й відповідають за виконання.
Здебільшого в ІТ-сфері позиція Engineering Manager не прирівнюється до організаційного менеджера, оскільки Engineering Manager повинен мати в тому числі й хорошу технічну експертизу, а не лише організовувати процес.
Якщо вже вирішили стати менеджером, то варто розвивати свої hard skills також, адже доведеться завоювати авторитет у команді саме завдяки своєму досвіду і знанню технологій. Думаю, що все ж у деяких компаніях є така практика найму організаційного менеджера проєкту та окремо технічного, який вирішуватиме суто технічні питання. Усе залежить від структури компанії й процесів. Але є загальноприйняті вимоги до розробників.
Наприклад, важливими якостями Senior-розробника є самостійність у розв’язуванні задач та виконанні завдань, креативність, технічна експертність й знання суміжних технологій та вміння бачити всю картину, коли він може запропонувати альтернативні варіанти рішення. Middle ще може застрягати на якихось питаннях у той час, як Senior пропонує кілька варіантів рішення.
Додам, що на мою думку, найважливішим фактором кар’єрного й професійного росту розробника є освіта. Без базової освіти усі інші фактори не такі актуальні. Далі, звичайно, важливий особистий досвід, менторство досвідчених колег і робоче середовище, де ти можеш розвиватися.
Відповідальність
Якщо ти хочеш росту, звикай брати на себе більше відповідальності. Що більше ти справляєшся, то більше тобі довіряють. Лідерство й відповідальність нерозривні. Це те, з чим мені було найскладніше справлятися на початках. Engineering Manager завжди є першим, до кого звертаються з усіма питаннями, пов’язаними з проєктом чи командою, і тобі доводиться усе вирішувати. Перші два місяці були стресовими для мене, а далі вже звикла.
Я вважаю, що лідер має задавати тон для всієї команди, бути рольовою моделлю, тобто бути зразковим фахівцем у різних напрямках. Він не повинен демонструвати зверхність до працівників чи байдуже ставлення до проєкту або не виконувати належно своїх обов’язків. Менеджери відповідальні за свої слова і виконують обіцянки.
Якщо команда бачить, що Team Lead може залишитися після роботи, щоб допрацювати технічну базу, тоді також старатиметься вкладатися у дедлайни. А якщо він висуває такі вимоги до своєї команди, а сам тим часом просто «халтурить» і йде пити пиво з друзями, звісно, це демотивує і підриває командний дух. Так не працює. Менеджер повинен підтримувати свою команду й бути з ними на одній хвилі.
Комунікабельність
На рівні менеджера треба бути готовим до того, що доведеться багато комунікувати як із замовником, так і з членами команди. Важливо бути відкритим і будувати дружні стосунки з командою. Я проти вертикального лідерства, коли є «бос» і «підлеглий» — це якийсь пережиток минулого. Лідерство має бути демократичним, а не авторитарним. Треба поводитися так, аби тіммейти не боялися висловити свою думку чи аргументувати, а навпаки, змогли бути відвертими та не відчували ніякої ієрархії.
Team Lead й Engineering Manager мають високий рівень емоційного інтелекту. Їм часто доводиться «розрулювати» складні ситуації із замовником, який наполягає на своїх не завжди реалістичних ідеях, або ж мотивувати членів команди, які повинні вкластися у дедлайни та зробити якісно. Трапляється іноді так, що розраховуєш на когось, а людина зникає, не відповідає, не виконує вчасно, підводить. А за кінцевий результат у будь-якому випадку відповідає Engineering Manager. Він або вона пояснює керівництву причини невиконання чи відтермінування дедлайнів.
Як на мене, найважче у цій ролі справлятися із безвідповідальністю інших. Завжди треба стежити за моральним станом людей у команді, щоб усім було цікаво працювати, а обов’язки відповідали можливостям, щоб люди бачили перспективи росту. Щоб навчитися мотивувати людей, треба мати досвід спілкування. Час від часу проводити one-to-one meeting з членами команади, цікавитися статусом завдань та можливими блокерами. Мене цьому ніхто не вчив, я швидше переймала досвід від свого керівництва. Спочатку було складно, але потім звикла.
Стресостійкість
Якщо Middle Engineer бере частину відповідальності, то Senior Engineer, Team Lead, Engineering Manager є повністю самостійними й мають бути готові до екстрених ситуацій на проєкті. Не боятися, що щось піде не за планом, коли треба непередбачувано пофіксити баги або терміново вийти на зв’язок із замовником. Тут важлива гнучкість, критичне мислення й стресостійкість. Готовність до стресових ситуацій і вміння з ними справлятися на емоційному рівні часто важливіші, ніж технічні навички. Особливо якщо йдеться про особливості роботи Engineering Manager. Зазвичай людина, яка є хорошим технічним спеціалістом, але має проблеми з комунікацією, менш ефективна на проєкті, аніж та, яка можливо, має гірші технічні навички, але є стресостійкою та може краще й швидше розв’язати задачу.
А ще я додала б, що не варто зациклюватися на помилках, швидше відпускати негативні емоції чи ситуації. Не застрягати на неприємних моментах. Вчитися на своїх помилках — це нормально і цього нікому не уникнути. Усі помиляються, не треба через це панікувати й надміру стресувати, важливо робити висновки й вчитися. Раніше я більше страждала через помилки, болісно сприймала свої промахи, хвилювалася через зауваження. Зараз же навчилася ставитися до цього легше, розділяти особисте від робочого.
Зрештою, я також маю підтримку і менторство, якщо виникають складнощі з новим аспектом у проєкті. З будь-якими технічними чи організаційними питаннями можу звернутися до Delivery Manager. Якщо чогось не знаєш, вперше зіштовхуєшся та маєш сумніви щодо правильного рішення — це нормально йти та просити пораду.
Мультифункціональність
Після того, як перейшла на позицію Engineering Manager, навчилася бути мультифункціональною — тримати одночасно кілька напрямів у своїй голові. Важливо швидко переходити з однієї задачі на іншу, оперувати кількома процесами. Не боятися нового і швидко вчитися. Звичайно, важливо прокачувати свою англійську, адже доводиться домовлятися із замовниками й вміло їх переконувати, пропонувати альтернативні варіанти рішень. Я радила б кожному розробнику покращувати рівень англійської мови. І якщо немає можливості щоденно спілкуватися, то точно варто відвідувати курси чи speaking club.
На завершення додам, що не всі мають прагнути ставати менеджерами. Деякі розробники знаходять свою зону комфорту і в цьому немає проблеми, якщо їм це подобається. Хтось вже з першого року в компанії робить значні кроки у своїй кар’єрі, а хтось — роками на тій же позиції та у тій же компанії, хоча й прекрасно справляється з поточними обов’язками. Значить, його влаштовує роль, фінансова винагорода і пул завдань відповідає його можливостям. Як тільки людина відчуває, що готова рухатися далі, це стає відразу помітно.
Думаю, люди, які прагнуть бути менеджерами, згодом цього таки досягають. Engineering Leadership — це не лише про управління людьми, а й про здатність бути рольовою моделлю у своїй професії, впливати й досягати результатів.