Які технічні знання потрібні проджект-менеджерам і чи впливають вони на зарплату. Бліц з ІТ-компаніями
Чи може проджект-менеджер розраховувати на вищу зарплату, якщо вміє програмувати? Ми дізналися в ІТ-компаній, яких саме технічних навичок вони вимагають від своїх PM, чи потрібно на цій посаді знати програмування та чи залежить зарплата фахівця від його технічних скілів.
У матеріалі ми розмістили компанії за алфавітним порядком.
Про зарплати українських проджект-менеджерів ми розповідали у цьому матеріалі. А ось список зі 150 запитань для співбесіди з Junior, Middle та Senior PM.
РМ компанії детально знають етапи розробки, враховують особливості збору вимог і розуміють усі кроки розробників.
Це дає змогу проджект-менеджерам оперативно виявляти проблеми і самостійно або із залученням інших спеціалістів усувати блокери.
У нашій компанії немає вимоги до проджект-менеджерів знати мови програмування, оскільки вони сфокусовані на побудові та підтриманні процесів взаємодії всередині команди та кроскомандних активностях.
Технічні знання допомагають РМ швидше пройти онбординг, а також максимально оперативно виявляти проблеми, якщо вони виникають під час розробки. Це впливає на ефективність його роботи, що, своєю чергою, дає поштовх кар’єрному зростанню та збільшенню компенсації.
Для ефективної роботи РМ необхідно добре розуміти процес розробки, кожен з його етапів.
Також знати інструменти:
- Jira — володіти на високому рівні, великим плюсом буде опанування навичок адміністрування цього інструменту.
- Confluence — необхідно вміти не тільки писати документацію, а й використовувати ґаджети для побудови змістовних і корисних для команди та замовників звітів.
- Git — базового знайомства буде достатньо.
PM важливо говорити однією мовою і з розробниками, тестувальниками, і з клієнтами: розуміти причинно-наслідкові зв’язки, складність певних задач.
Для побудови делівері-процесу PM треба щонайменше розуміти:
- як побудувати continuous integration/continuous delivery/continuous deployment;
- як автоматизувати на основі cloud-інфраструктури (до прикладу, Microsoft Azure). Знати, як вона функціонує і з яких частин складається;
- як працює Gitflow та інші принципи і підходи в бранчуванні, оскільки вони впливають і на реліз планування, і на CI/CD/CD.
Мати базові знання з програмування для PM не обов’язково. Але якщо людина має навички програмування або працювала в технічних командах на позиції розробника чи тестувальника, то це великий плюс. Особливо на початку, тому що це дає базове розуміння, що робить команда.
Але при цьому важливо не вдаватися до мікроменеджменту команди, а налаштувати роботу та стежити за її прогресом. Добре, коли є технічний досвід, але він не має заважати менеджеру виконувати управлінські функції.
Здебільшого у PM, які переходять з технічних ролей на менеджерські, компенсація вища.
Якщо говорити про менеджерів-новачків в ІТ без технічного досвіду, то це куди менші компенсації, адже у них немає потрібного активу, який визначає рівень результатів. Для менеджера-початківця технічні знання є суттєвою перевагою.
Те, чи є у проєктного менеджера технічні знання, не впливає на кар’єрне зростання та компенсацію. Але вони можуть допомогти краще та ефективніше вирішувати завдання і розуміти технічну команду, тому буде непрямий вплив на зростання/компенсацію.
PM у нашій компанії мають:
- розуміти можливості стеку технологій, який використовують у компанії;
- вміти користуватися консоллю, вебінспектором та іншими додатковими функціями інтернет-браузерів;
- розуміти базові принципи роботи HTTP-протоколу і DNS;
- добре знати Excel та інші офісні програми.
Базові знання з програмування для проєктних менеджерів не є обов’язковими.
Для усіх менеджерів в ІТ важливими є:
- знання можливостей сучасних мов програмування і СУБД;
- відстеження готових сервісів, систем і рішень, що допоможе ефективно розв’язувати проблеми команди;
- знання технічної IT-термінології;
- базове розуміння, як працює інтернет загалом (протоколи, вебсервери, браузери та інше);
- використання найкращих практик з безпеки даних.
Для нас бажаним кар’єрним шляхом для проєктного менеджера є органічне зростання з інших дисциплін, які дотичні до розробки програмного забезпечення:
- інженерія;
- програмування;
- бізнес-аналіз;
- тестування.
Такі навички допоможуть PM зрозуміти цикл розробки програмного забезпечення (SDLC).
У нашому баченні менеджер — це передусім інженер поряд з іншими інженерами у команді. Тому йому важливо:
- розуміти архітектуру програмного забезпечення, особливості технологій, інфраструктури та підходів до її розгортання;
- мати навички роботи з системами обробки та візуалізації даних;
- мати навички роботи з Business Intelligence (BI), для прикладу PowerBI;
- знатися на процесах, що входять до життєвого циклу програмного забезпечення (SDLC);
- розуміти, як працювати з вимогами, плануванням; також це архітектура, розробка, тестування та розгортання програмного забезпечення.
Яким би ідеалістичним і складним не видавався цей перелік, ми наполягаємо, що кожен пункт є необхідним для розробки складних продуктів і систем.
Знання з програмування для класичного проєктного менеджера не є обов’язковими, хоча будуть перевагою. У нашій компанії є окремий напрям управління проєктами — Delivery Management, в якому досвід у програмуванні є обов’язковим.
Ми цінуємо, коли менеджери володіють принаймні базовими навичками програмування. А розуміння різноманітності мов програмування та фреймворків є необхідною умовою.
Серед технічних знань і навичок PM виділяємо такі ключові компетенції:
- знання принципів і циклів розробки проєкту чи продукту;
- розуміння призначення та особливостей різних середовищ розробки, їхніх відмінностей;
- розуміння принципів профільних фронтенд/бекенд-технологій, з якими працює компанія;
- досвід роботи в розробці веб- і мобільних проєктів;
- розуміння CI/CD-процесів та публікування застосунків в App Store/Google Play;
- знання принципів і процесів тестування проєкту та його компонентів;
- розуміння роботи й інтеграції з third-party сервісами.
Для проєктних менеджерів корисно:
- розуміти процеси деплою вебпроєктів і застосунків;
- мати базові знання інструментів Git;
- читати технічну документацію до third-party застосунків, щоб розуміти інтеграційні процеси — буде значним плюсом;
- базово знати принципи UI та Material Design.
Хоча менеджер проєкту не пише жодного рядка коду, базове розуміння принципів програмування може значно полегшити комунікацію з розробниками. А також допомогти ухвалювати обґрунтовані рішення.
Щодо технічних знань, PM у нашій компанії мають:
- розуміти, яка архітектура та які фреймворки є на проєкті;
- працювати з API-документацією та Git;
- розуміти та враховувати особливості front-end, back-end чи mobile розробки;
- бачити відмінність між реляційними та нереляційними базами даних.
Прямої кореляції «вивчення технології = зростання компенсації» у нашій компанії немає. Але якщо PM здобув/ла нові технічні знання, що допомогли керувати проєктом, це стовідсотково матиме позитивний вплив.
Якщо технічний бекграунд допомагає в спілкуванні з клієнтом і командою, то перспектива карʼєрного зростання точно є.
Специфічні технічні вимоги можуть відрізнятися, залежно від ролі менеджера та типу проєктів. Але всім PM в ІТ важливо знати таке:
- життєвий цикл розробки (SDLC);
- етапи та види Quality Assurance;
- основні переваги Cloud та мікросервісної архітектури;
- базове розуміння UML та інших видів діаграм;
- принципи UI/UX дизайну.
Менеджери в нашій компанії повинні добре розуміти технічні аспекти та процеси розробки ПЗ:
- весь цикл розробки — від вимог, аналізу і розробки до тестування та впровадження;
- Agile та Waterfall / досвід їхнього успішного впровадження в роботу команд.
А ще могти вибудовувати процес розробки з нуля на новому проєкті, враховуючи специфіку та потреби команди.
Якщо менеджер раніше не працював в ІТ, то йому точно бракуватиме технічних навичок, щоб працювати з командою.
Базові знання з програмування не є обов’язковими для наших менеджерів. Менеджер може успішно керувати розробкою програмного забезпечення, спираючись на розуміння процесів розробки, ефективну взаємодію з командою розробників та інших зацікавлених сторін. Важливо розуміти технічні аспекти, але не обов’язково вміти програмувати.
Технічні знання можуть впливати на кар’єрне зростання та компенсацію менеджерів. Компетентний менеджер з глибокими техзнаннями може вести складні проєкти, де інші менеджери можуть не впоратися.
У компаніях є різниця в оплаті праці для менеджерів різних рівнів — від джуніора до сеньйора. Зарплата може відрізнятися у два-три рази, залежно від рівня досвіду та вмінь менеджера.
Знання програмування для менеджерів проєктів не є обовʼязковим. Однак важливо розуміти технічні аспекти роботи команди. Це допомагає краще координувати процеси, розуміти потреби команди та вчасно вирішувати технічні завдання. Технічні знання впливають на рішення підвищити людину, але це не єдиний фактор.
Проєктні менеджери та менеджерки компанії повинні знати такі технічні концепції ПЗ:
- архітектура програмного забезпечення;
- аналіз вимог;
- методи розробки та тестування;
- інформаційна безпека;
- інноваційні тренди галузі.
Ми моніторимо рівень компетенції своїх менеджерів за підходом Ensuring Engineering Excellence. Згідно з ним значно полегшують роботу проєктних менеджерів такі знання:
- Architecture. Якщо людина знає основні принципи, це допомагає краще спілкуватися з технічними командами та ухвалювати обґрунтовані рішення щодо дизайну системи та інтеграції компонентів.
- Security. Основи безпеки потрібні, щоб управляти ризиками та захищати дані й інфраструктуру від потенційних загроз.
- Business Analysis. Розуміння основ дає змогу визначити вимоги проєкту та спрямувати зусилля команди на досягнення бізнес-цілей.
- Software Development. Завдяки базовим знанням у розробці ПЗ менеджери краще розуміють технічні вимоги проєкту та спілкуються з розробниками.
- DevOps. Допомагає організувати ефективний процес розробки, тестування та впровадження програмного забезпечення.
- QA. Знання основних принципів дає змогу краще керувати процесом контролю якості.
- UI/UX. Щоб створювати користувацький досвід, який задовольняє потреби людей і відповідає бізнес-цілям.
- Product Management. Щоб краще розуміти потреби користувачів, визначити стратегію продукту та керувати його життєвим циклом.
- IT service management. Допомагає керувати IT-сервісами та інфраструктурою.
У переліку вимог компанії до PM немає пункту про технічний бекграунд. Важливішими є високий рівень володіння англійською, вміння застосовувати на практиці методи управління розробкою ПЗ, сильні комунікативні та організаційні навички тощо.
Технічний бекграунд полегшує комунікацію з архітекторами, розробниками, тестувальниками, дизайнерами та іншими членами команди. Наприклад, якщо менеджер розуміє основи програмування, йому легше ставити завдання розробнику та контролювати їх виконання, а знаючи методологію розробки, — пояснити клієнту основні етапи роботи над проєктом.
Для менеджера проєктів будуть корисними знання:
- основних принципів архітектури програмного забезпечення;
- загальної бази про технології розробки програмного забезпечення: мови програмування, бази даних, середовища розробки, фреймворки.
А також розуміння, на чому пишеться «бек» та «фронт», які API між ними літають, що вони містять і як все влаштовано.
PM має знати систему до такого рівня, щоб чітко уявляти, чи можливо реалізувати запит клієнта, які обмеження системи цьому можуть завадити. Також він має пропонувати рішення, які в межах архітектури могли б допомогти максимально досягти бізнес-потреб клієнтів.
Технічний бекграунд може стати перевагою, проте не обов’язковим пунктом. Сьогодні все йде до того, що PM має розуміти на вищому рівні, як все повинно взаємодіяти на проєкті, які мають бути інтеграції та що на що може вливати. В нинішній ситуації для цього можна обійтися без навичок написання коду.
Ми не бачимо прямої залежності між технічними знаннями та кар’єрним зростанням. На кар’єрне зростання та рівень компенсації можуть вплинути технічні знання, якщо вони є необхідними для конкретного проєкту. Але важливо вміти застосовувати їх на практиці у потрібний момент.
У JatApp PM повинні розуміти ключові технічні аспекти розробки програмного забезпечення. Ось деякі знання та навички, які ми вважаємо важливими:
- методології розробки програмного забезпечення — менеджери повинні добре розуміти Agile/Scrum;
- інструменти управління проєктами — володіння Jira та Confluence;
- аналіз та вимірювання продуктивності команди;
- проєктно-технічна документація — менеджери повинні мати досвід у створенні та управлінні проєктно-технічною документацією.
У нашій компанії базові знання з програмування не є обов’язковими для Project Manager. Однак корисно розуміти основні концепції для ефективної комунікації з технічними спеціалістами та ухвалення кращих рішень. Тому такі знання будуть додатковим плюсом для кандидатів.
Додаткові навички, які можуть стати в пригоді для кар’єрного зростання:
- знання основ програмування — розуміння принципів роботи ПЗ дасть можливість краще спілкуватися з розробниками та ставити їм чіткі завдання;
- вміння аналізувати дані може допомогти PM ухвалювати більш обґрунтовані рішення;
- аналіз ринку та топових гравців у ніші;
- вивчення предметної галузі.
Зазвичай технічні знання не є обов’язковими для проєктних менеджерів компанії, але розуміння ключових процесів може значно полегшити їхню роботу. Тому досвід на певних технічних посадах, таких як Tech Lead, Team Lead або QA, може бути перевагою під час вибору кандидата під час співбесіди.
Основні технічні знання, які, на нашу думку, проєктний менеджер повинен мати:
- код-рев’ю — щоб вчасно виявляти та виправляти помилки, забезпечує високу якість коду;
- Gitflow — щоб ефективно керувати розробкою та розв’язувати проблеми, пов’язані з одночасною роботою кількох розробників над кодом;
- Continuous Integration, Continuous Development, Continuous Deployment (CI/CD);
- QA-процеси — щоб ефективно співпрацювати з QA-командою, забезпечує високу якість продукту;
- управління доступами та пермісіями;
- опис сценаріїв використання системи — допомагає узгоджувати вимоги клієнтів, щоб розроблені продукти відповідали очікуванням користувачів.
Технічні знання непрямо впливають на кар’єрне зростання або компенсацію наших менеджерів. Проте досвід свідчить, що менеджери, які розуміють технічні аспекти роботи, більш успішні на рівні стартових умов порівняно з колегами, які не мають такого бекграунду. Їхнє кар’єрне зростання як менеджерів відбувається швидше, що теж може впливати на рівень компенсації.
Ми вважаємо, що для менеджерів в ІТ корисно:
- розуміти одну з мов об’єктноорієнтованого програмування;
- знати патерни проєктування програмного забезпечення;
- вміти працювати з системами контролю версій;
- знати інструменти, такі як Sentry, SonarQube та інші;
- розуміти різні типи архітектур і особливості технологічних стеків;
- знати UML і різні типи діаграм;
- вміти описувати сценарії використання та працювати з мовами опису сценаріїв, такими як Gherkin.
У нашій компанії є теми, з якими кожен новий менеджер проєктів має ознайомитися під час онбордингу:
- мови програмування;
- front-end/back-end фреймворки;
- бази даних;
- системи контролю версій коду;
- Gitflow;
- види тестування;
- мікросервіси та хмарні сервіси;
- життєвий цикл розробки ПЗ (SDLC);
- методології ведення проєкту — Agile, Waterfall.
Технічний бекграунд полегшує комунікацію з архітекторами, розробниками, тестувальниками, дизайнерами та іншими членами команди.
Те, чи потрібно PM вміти програмувати, залежить від потреб і складності проєкту. В нас є проєкти, куди ми шукали саме Technical Project Manager/Technical Program Manager з глибокими технічними знаннями з програмування (PM там був у минулому розробником). А є проєкти, де PM має сильний бізнес-бекграунд і розвиває відносини із замовником.
Технічні знання можуть впливати на кар’єрне зростання та компенсацію, але не є основним критерієм.
Що важливо знати всім PM в ІТ:
- життєвий цикл розробки (SDLC) — це допомагає краще планувати, виконувати та моніторити проєкти;
- інструменти управління проєктами: Jira, Trello, Asana, Microsoft Project — щоб ефективно координувати процес;
- базові переваги та недоліки мов програмування/фреймворків;
- основи хмарних платформ;
- різницю та зони використання монолітних проєктів і мікросервісів;
- принципи UI/UX дизайну — як бонус.
Навички програмування не є обов’язковими для наших PM. Але важливо знати основи розробки ПЗ.
Проєктні менеджери, яких ми шукаємо в ORIL, повинні розуміти:
- процеси розробки SDLC;
- переваги та недоліки популярних мов програмування і фреймворків;
- CI/CD процеси;
- версійність (e.g. Git);
- архітектуру та інфраструктуру проєкту;
- QA/QC процеси.
Якщо говорити про сеньйорів, то серед технічних знань це також:
- поглиблене розуміння архітектури програмного забезпечення;
- знання принципів та найкращих практик забезпечення безпеки даних.
Технічні знання можуть впливати на кар’єрне зростання та компенсацію PM, якщо вони допомагають їм ефективніше керувати проєктами та командами. Але знання мов програмування не завжди буде впливати на нього.
У PLVision немає специфічних вимог до менеджерів щодо знання програмування. Але досвід показує, що найбільшого успіху досягають саме менеджери, які раніше працювали інженерами (розробниками чи QA). Вони мають базові знання з програмування, верифікації, тестування, розуміють процес розробки тощо.
Усі наші менеджери мають технічний бекграунд, і більшість з них зросли всередині компанії, починаючи з інженерних позицій.
Ось що має знати менеджер нашої компанії, щоб ухвалювати виважені управлінські рішення:
- елементи побудови мережі;
- Network OS;
- інструменти для емуляції та моделювання мережі (GNS3, NS-3 тощо);
- інструменти для тестування мережевих рішень.
А також мати досвід з sw&hw трафік-генераторами (scapy, snappi, IXIA); з опенсорс-проєктами та відкритими технологіями SONiC, SAI, DASH, Linux.
Першочергово ми оцінюємо у PM вміння управляти командою та проєктом, працювати з методологіями розробки ПЗ — Agile, Scrum.
Ми не вимагаємо знати програмування та писати код. Більш важливим на цій позиції є розуміння життєвого циклу розробки продукту — від pre-sale до релізу. Треба орієнтуватися у всіх етапах, щоб ефективно контролювати процеси.
При цьому в компанії є позиції технічних проєктних менеджерів, і на них фахівець має орієнтуватися в коді, знати мови програмування. Зазвичай на ці вакансії подаються розробники, які вирішили змінити карʼєрний напрям.
У нашій компанії Project Manager повинен мати експертизу в розробці, розуміти програмування та основи QA.
Базові знання з програмування не є обов’язковими для менеджерів, проте вони можуть значно полегшити взаємодію з технічними командами.
На кар’єрне зростання та компенсацію менеджерів технічні знання впливають опосередковано. Важливу роль відіграє результативність та ефективність, якість ухвалених рішень і вміння їх втілювати. А для цього технічні навички є дуже корисними.
Для Project Manager в ІТ важливими є навички, які допомагають глибше розуміти бізнес-цілі та керувати процесами в компанії:
- знання методологій розробки;
- володіння аналітичними навичками;
- розуміння циклу SDLC;
- робота з бюджетуванням;
- вміння проводити дослідження (research).
Маркетинг і дизайн — базово.
Вимоги до PM залежать від проєкту. Щоб їх правильно визначати, ми розробили фреймворк для оцінювання навичок. Це можуть бути знання від e-commerce платформ і фреймворків для автоматизації тестування до мов програмування і роботи з Git.
Ми не вимагаємо навичок дебагінгу від PM, але вважаємо обов’язковим мінімумом розуміти платформи/CMS або інші інтеграції та інструменти, які використовують у проєкті.
Ми не віримо в ефективність проєктного менеджера, який не говорить однією мовою зі своєю командою і не може обґрунтувати технічні рішення клієнту, нехай і з залученням архітектора або технічного ліда.
Базові знання з програмування для PM у Valtech не є обов’язковими, але багато наших PM мають технічний бекграунд і прийшли на цю роль з інших позицій. Цей досвід дуже допомагає в управлінні проєктами. Головне не забувати, яку роль виконує PM і не давати непроханих технічних порад.
У нашій компанії технічні знання є лише одним з чотирьох компонентів оцінювання навичок, а отже вони частково впливають і на зростання, і на компенсацію.
Читайте також: Рейтинг мов програмування 2024. TypeScript в трійці лідерів, Python зʼявляється у всіх нішах, а Rust — улюблена мова.