JavaRush /Java блог /Random UA /Хто є хто в ІТ. Чим займаються PM-и, frontend- та backend...
Константин
36 рівень

Хто є хто в ІТ. Чим займаються PM-и, frontend- та backend-девелопери та QA

Стаття з групи Random UA
Hey! Усі ми завітали сюди, бо нас зацікавила робота у IT-сфері. Але замість того, щоб тикати в першу IT спеціальність, можливо, варто трохи розглянути перелік можливих напрямів в IT компанії? Це друга частина мого невеликого огляду. У першій ми розглянули такі спеціальності як Recruiter, HR, System admin, DBA, DevOps. Сьогодні ми розглянемо спеціальності, які є кістяками будь-якої команди і, відповідно, проекту. Хто є хто в ІТ.  Чим займаються PM-и, frontend- та backend-девелопери та QA - 1Якщо десь щось наплутаю, сильно не лайте, а краще поправте в коментах: я дивлюся на все з боку Java-розробника і нюансів усіх спеціальностей можу просто не знати.

6. PM - Project manager

Робота менеджера проектів полягає у грамотному плануванні, організації, управлінні технічними проектами та покращенні взаємодій між членами команди, щоб забезпечити безперебійне та максимально ефективне виконання роботи. Ці фахівці повинні знати потреби клієнтів і цілі, які вони переслідують, максимально координувати дії співробітників, щоб довести проект до логічного, позитивно завершення. Позитивного, тому що проекти не завжди можна успішно завершити через низку причин: зупинення фінансування, невдоволення роботою з боку замовника тощо… Хто є хто в ІТ.  Чим займаються PM-и, frontend- та backend-девелопери та QA - 2Головне завдання PM— координація групи співробітників для вирішення технічних проблем, адже розробники не завжди супер товариські і не завжди можуть грамотно спілкуватися між собою, і це, у свою чергу, може грати лише проти проекту. Ну або, наприклад, у розробника стався на чомусь затик: він може довго сидіти і не знати, як розібратися з проблемою. Усі ми не любимо визнавати, що чогось не знаємо чи не можемо, а розробники – тим паче. Тут на допомогу і приходить PM , який допоможе знайти людину, до якої можна звернутися за додатковою інформацією, або яка вже стикалася з чимось подібним. До обов'язків PM входить:
  • постановка спільних цілей проекту;
  • розробка планів задля досягнення цих цілей;
  • ведення термінів проекту, звітів про поточний стан;
  • управління ресурсами проектів (співробітники та технічне оснащення);
  • покращення координації взаємодії між членами команди проекту;
  • відстеження ефективності проекту та слідування наміченому графіку;
  • проведення оцінки ризиків для проектів;
  • організація різних зборів для обговорення цілей, поточного прогресу, позитивних та негативних моментів проекту.
Необхідні навички:
  • англійська Upper Intermediate і вище, оскільки ПМ комунікує зі стороною замовника від імені команди;
  • широкі технічні знання, але не дуже глибокі, щоб можна було розуміти, хто чим займається, як відбувається робота в цілому, не сильно заглиблюючись;
  • навички управління проектами та командами, що беруть у них участь;
  • найсильніші комунікаційні навички, оскільки робота PM переважно складається з комунікацій з членами команди, керівництвом;
  • розвинені навички ведення листування. Наприклад, часто потрібно надсилати листи на email замовника від імені команди, компанії, і лист неправильно складений або з помилками ніхто не оцінить;
  • аналітичний склад розуму, який буде корисним під час вирішення проблем, що виникають під час роботи над проектом;
  • навички тайм-менеджменту, використання яких дозволить тримати проекти в рамках графіка та бюджету (адже час = гроші);
  • навички планування ресурсів та завдань.
Згідно з dou, по Києву середня зарплата PM-початківця — 700$ . Діапазон зарплат по Києву для даних фахівців - 1200-4500 $ : все залежить від досвіду спеціаліста та компанії. У кого можна вирости:
  • delivery manager ( DM ) - пряме продовження PM -a, стоїть відразу над групою PM-ів і координує їх проекти на вищому рівні;
  • program manager - координує кілька взаємопов'язаних проектів, але я сам не сильно розумію різницю з DM-ом;
  • chief technical officer ( CTO ) - технічний директор, який несе відповідальність за розробку продуктів та покращення їх процесів створення;
  • chief executive officer ( CEO ) - головний виконавчий директор;
  • account manager ( AM ) - менеджер по роботі з клієнтами;
  • перевчитися і перейти в іншу спеціальність))
Якщо люди вам цікаві, ви любите з ними спілкуватися і готові прийняти на себе тягар відповідальності за команду (а то й не одну) розробників, це професія явно для вас.

7. Frontend developer

Frontend developer — це розробник, який відповідає за реалізацію візуальної частини програми, яку бачать користувачі і з якою взаємодіють у веб-додатку. Як правило, ці фахівці співпрацюють з Backend -розробниками, які відповідають за логічну (серверну) частину програми, яка продовжує візуальну частину додатку, створювану Frontend розробниками. Хто є хто в ІТ.  Чим займаються PM-и, frontend- та backend-девелопери та QA - 3Frontend-розробники, як і Backend-розробники, це кістяк розробки будь-яких проектів. Ті, на кому проекти й тримаються. Адже який би бізнес не був, він тримається на звичайних, так би мовити, роботягах. Ось розробники і виступають у ролі таких роботяг. Їх, як правило, набагато більше, ніж представників інших спеціальностей, і вони найбільш потрібні у будь-якому проекті. До обов'язків Frontend Developer входить:
  • розробка нового функціоналу та покращення старого;
  • рефакторинг коду для покращення продуктивності, яка іноді може сильно просідати; читання, щоб інші розробники швидше могли вникати в код та його логіку; розширюваності, щоб у майбутньому було легше реалізувати новий функціонал завдяки перевикористання частин старого;
  • рев'ю (огляд) коду, що відправляється на сервер. Наприклад, один розробник написав код, інший його переглядає і може повернути його першому із зауваженнями щодо того, що потрібно поправити;
  • комунікація з клієнтами та членами команди - як Frontend , так і з Backend розробниками;
  • технічна реалізація графічного UI/UX макету, складеного дизайнером;
  • відстеження продуктивності програми;
  • ремонт багів (помилок).
Frontend-розробники - це програмісти, що вивчабо верстку в HTML , CSS , JavaScript і взялися за вивчення певного фреймворку, наприклад, Angular або React. Далі розглянемо конкретні навички, які необхідні для становлення, Frontend -розробником, і як приклад візьмемо Angular напрямок. Необхідні навички:
  • рівень англійської - Intermediate ;
  • розуміння всього процесу веб-розробки (дизайн, розробка та розгортання);
  • роботи з Angular 5+ ;
  • знання JavaScript , TypeScript , RxJS , Sass , webpack ;
  • навички верстки ( HTML , CSS );
  • навички в роботі з Git ;
  • розуміння патернів проектування;
  • хороше знання Linux .
Згідно з dou, по Києву середня зарплата фахівця-початківця даного профілю — 500$ . Загальна ж медіана по Києву для даних фахівців 1800-2700 $ . Ну а найбільші показники взагалі можуть досягати мало не 5000 $ . Але ви повинні розуміти, що це поодинокі випадки, і у фахівців, які мають найвищу кваліфікацію. Якщо ви любите працювати з технічною частиною, але так, щоб вона не божеволіла своєю складністю, і при цьому мати професію в популярному напрямку, ця спеціальність може вас зацікавити. У кого можна вирости:
  • tech lead - технічного спеціаліста (гуру) у цій галузі;
  • team lead - керівник команди розробки (польового командира). Звідси можна зростати в менеджерський напрямок, наприклад, у CTO ;
  • full-stack developer - розробник, який володіє і backend- , і frontend -частиною, тобто потрібно підвчити backend ;
  • solution architect — спеціаліст, який приймає рішення щодо архітектури внутрішнього пристрою та зовнішніх інтерфейсів продукту;
  • tech consultant – технічний консультант у якійсь технології;
  • перевчитися та перейти в іншу спеціальність.

8. Backend developer

Backend developer -и - створюють та покращують серверну частину, що відповідає за бізнес логіку програми, яка з'єднується з візуальною (інтерфейсною) частиною програми (наприклад, через REST API ). Комбінація серверної частини програми ( Backend ) + візуальна частина програми ( Frontend ) і утворюють веб-додаток, з яким і взаємодіє кінцевий користувач. Хто є хто в ІТ.  Чим займаються PM-и, frontend- та backend-девелопери та QA - 4Backend-розробники несуть відповідальність за створення, підтримку, тестування та налагодження всієї серверної частини. Як правило, це включає в себе базову логіку програми, взаємодію з базами даних, взаємодію з різними APIта інші внутрішні процеси. Фахівець даного профілю, окрім знання синтаксису своєї мови та основних фреймворків, повинен мати загальні знання з баз даних, зокрема, реляційним , вміти писати модульні та інтеграційні тести на свій код, мати знання з збирача програми - Maven або Gradle , вміти користуватися Git . ом. До обов'язків Backend developer входить:
  • розробка нового функціоналу;
  • рефакторинг коду;
  • рев'ю коду інших Backend розробників;
  • написання документації, за допомогою якої нові backend -розробники,
  • що прийшли на проект, швидше вникатимуть у логіку програми;
  • ремонт багів;
  • написання тестів (модульне, інтеграційне тестування);
  • комунікація з рештою членів команди.
Як і у Frontend , у Backend -розробників є різні напрямки, а саме – конкретна мова розробки. Але ми, зрозуміло, як приклад візьмемо мову розробки Java. Отже, які необхідні навички для Java-розробника:
  • рівень англійської - Intermediate ;
  • знання Java Core - синтаксису мови Java та набору базових технологій;
  • розуміння всього процесу веб-розробки;
  • знання мови SQL ;
  • знання реляційних баз даних, наприклад PostgreSQL або MySQL ;
  • навички взаємодії з базою даних через JDBC , Hibernate ;
  • знання базових фреймворків Spring (Spring Core, Spring Data, Spring Web) ;
  • знання Git , Maven ;
  • навички в модульному та інтеграційному тестуванні, наприклад, за допомогою JUnit та Mockito .
Для Frontend та Backend розробників, я нічого не говорив про високі комунікативні навички. Скрізь ось пишуть, що важливими є високі комунікативні навички для цих фахівців, але це не зовсім так. Так, важливо адекватно спілкуватися, але це важливо в будь-якому напрямку та в будь-якій іншій професії. Але якщо порівнювати з PM -ом або рекрутером, у яких вся робота складається з спілкування, то для розробника мати надрозвинені softскіли (навички комунікації) не так критично важливо. Адже вони цілими днями працюють саме в коді і, наприклад, щодня беруть участь у якихось зборах на кшталт щоденного мітингу, на яких говорять буквально кілька пропозицій: що робабо, що роблять, що робитимуть. Ну і іноді телефонують зі своїми колегами для обговорення деяких технічних моментів. Тому ця професія чудово підходить для інтровертів – людей, які люблять самотність. Ви можете отримати своє завдання і працювати над ним, не витрачаючи купу годинника на незрозумілі дзвінки та обговорення. Також я написав, що необхідний рівень англійської мови — Intermediate, так як з одного боку, немає величезної кількості комунікацій із замовником, але при цьому потрібно вміти читати/писати англійською (документація, Jira) і, можливо, комунікувати з розробниками з боку замовника. Замовники можуть дивитися на криваву англійську з боку розробників трохи крізь пальці: головне, щоб вони були сильні безпосередньо у розробці. Можливості для зростання у Backend такі самі, як і у Frontend-розробників:
  • tech lead ;
  • team lead ;
  • full-stack developer - потрібно підвчити frontend ;
  • solution architect ;
  • tech consultant ;
  • перевчитися та перейти в іншу спеціальність.
Зарплати у Backend-розробників дуже приємні. Наприклад, початківець Java Developer в середньому по Києву може отримувати близько 600 $ . Середня зарплата по Києву для цих фахівців варіюється в межах 1950-2850 $ . Ну а для сильних розробників Senior рівня зарплата може сягати 5000 $і вище. Але ви повинні розуміти, що цього можна досягти з колосальним досвідом за плечима та найвищим рівнем навичок. Мені в школі завжди добре давалася математика та фізика, адже там давали цеглинки у вигляді формул, і для вирішення якихось завдань потрібно було вибудовувати з цієї цеглини логічну структуру. Тому мені й подобається розробка — той самий принцип, тільки логічних цеглин набагато більше, та й структури треба будувати складніше. Якщо ви не шукаєте легких шляхів і вам хочеться справжніх викликів, то сміливо обирайте цей напрямок.

9.QA Manual

Manual Quality Assurance — це спеціаліст, який працює над забезпеченням якості продукту, мета якого — покращення процесу розробки програми, аналіз документації та на її підставі — виявлення помилок і неточностей у роботі продукту. Хто є хто в ІТ.  Чим займаються PM-и, frontend- та backend-девелопери та QA - 5Як правило, забезпечення якості, яким займається QA Manual , складається з:
  • проведення оцінки ризиків;
  • аналізу специфікацій та вимог;
  • генерації ідей щодо покращення якості продукту;
  • складання планувань тестування;
  • аналізу та документації отриманих результатів тестування.
На даний момент тестування йде пліч-о-пліч з розробкою програмного забезпечення і займає важливу роль у створенні будь-якого якісного IT продукту. І вірно, адже, крім правильно написаного функціоналу, нам потрібно бути впевненими, що він правильно відпрацьовує і не містить 100500+ багів. Тут на допомогу і приходить тестування, яке служить певним контролем якості, щоб його пройти міг лише продукт, максимально налагоджений та відшліфований. До обов'язків QA Manual входить:
  • вивчення вимог, специфікації та іншої документації;
  • перегляд та перевірка системи та її технічних характеристик на відповідність специфікації (переліку вимог);
  • розробка ефективних стратегій та планів тестування;
  • написання сценаріїв тестування (тест кейсів), за якими QA Automation виробляють автоматизаційні тести;
  • ручне виконання тестових прикладів; аналіз результатів;
  • у разі невдач чи невідповідностей при тестуванні потрібно складати звіт, заводити завдання (заводити баги) та відправляти розробникам на доопрацювання;
  • регресійне тестування продукту;
  • документування етапів тестування;
  • комунікація з командами розробників про невідповідності функціоналу та баги.
Необхідні навички для становлення QA Manual :
  • рівень англійської - Intermediate ;
  • гарне розуміння методологій та практик забезпечення якості програми;
  • знання регресійного тестування;
  • вміння документувати помилки;
  • навички докладного розгляду вимог до ПЗ;
  • базове орієнтування у технічній частині;
  • розуміння JSON , XML ;
  • базові знання SQL ;
  • навички в роботі з інструментами організації тестової документації, наприклад - Testrail ;
  • увага до деталей;
  • критичний склад розуму.
Пряма можливість для зростання такого фахівця - QA Automation . Для цього потрібно буде трохи підучитися. Також можна вирости в :
  • QA lead - ватажка QA у команді;
  • перевчиться і перейти в іншу спеціальність, наприклад, стати frontend- або backend developer -ом.
За Києвом зарплата QA Manual новачка в середньому становить 400 $ . Ну а в середньому зарплати для цих фахівців знаходяться в межах 1250-1650 $ . У найзапекліших фахівців Senior рівня зарплати можуть досягати 3000 $ і вище. Це один з найлегших шляхів "увійти в айти": можна почати з цієї спеціальності, а потім перейти на щось складніше або досягати вершин майстерності в даному напрямку.

10. QA Automation

QA Automation — спеціаліст, який відповідає за якість продукту, який використовує в роботі різні програмні інструменти, щоб створювати тести за сценаріями, написаними особисто або QA Manual . QA Automation – це щось на зразок наступного рівня після QA Manual . Якщо QA Manual виконує все вручну, QA Automation використовує якусь мову програмування для написання тестів, що перевіряють правильність роботи функціонала програми. Ці тести, як правило, автоматично запускаються за певних умов: при складанні програми, або щодня в якийсь час і таке інше. Хто є хто в ІТ.  Чим займаються PM-и, frontend- та backend-девелопери та QA - 6Як правило, в обов'язки AQA входить :
  • вивчення вимог, специфікації та іншої документації;
  • створення та налаштування тестових середовищ для виконання тестових випадків та сценаріїв;
  • проектування, створення та виконання автоматизації тестових сценаріїв (планів тестування) з використанням Selenium відповідно до певних стандартів та методологій забезпечення якості;
  • вивчення ручного тестування програми та внесення пропозицій по можливості автоматизації;
  • підтримка актуальних автоматизаційних тестових випадків;
  • написання документації;
  • підтримка необхідного рівня тестового покриття (test coverage);
  • при необхідності – допомога з ручним тестуванням. Може виконувати вручну тестові приклади та сценарії для продуктів, що розробляються за допомогою інструментів управління тестуванням;
  • участь у розробці, а саме – в адмініструванні процесу контролю якості;
  • комунікація з командами розробників про невідповідності функціоналу та баги.
Основна "фішка" автоматизаційного тестування полягає в тому, що автоматичні тести дозволяють тестувати програмне забезпечення набагато швидше, частіше і, відповідно, прискорюють доставку продукту. По-перше, добре виконана робота з автоматизації тестування дозволить запустити тести швидко та передбачувано. Це, у свою чергу, дозволить уникнути ситуацій, коли людина, яка виконує кроки вручну, може пропустити крок або ввести значення, не призначене для тестування. По-друге, можна включити автоматизаційні тести в процес складання та запускати їх щоразу, коли складання завершується. Це можна зробити за допомогою інструмента CI. По-третє, як у додатку розробниками змінюється певний функціонал, він може вплинути на зовсім іншу частину системи та змінити її поведінка теж. Але при запуску автоматизаційних тестів зміни в поведінці будь-якої частини системи відразу стане видно - це додаткова страховка на той випадок, якщо ми лагодженням одного бага створимо нових три. Необхідні навички:
  • рівень англійської - Intermediate ;
  • гарне розуміння методологій та практик забезпечення якості;
  • відмінне знання синтаксису однієї мови (наприклад, Java або JavaScript ), адже на чомусь потрібно писати тести;
  • написання автоматизаційних тестів за допомогою Selenium ;
  • знайомство з CI/CD ;
  • вміння працювати з Git ;
  • увага до деталей;
  • критичний склад розуму.
Пряма можливість зростання для AQA — розвинутись до розробника тієї мови програмування, якою ви вже пишете тести. Також можна стати:
  • QA lead ;
  • перевчитися та перейти в іншу спеціальність.
Середня зарплата QA Automation по Києву - 600 $ . Середні показники для цього напряму - 1700-2500 $ , а у фахівців рівня Senior зарплати можуть досягати 4000 $ і вище. Якщо ви володієте критичним складом розуму, хочете писати код, але при цьому не мати "дзвінків", які можуть часом неабияк зіпсувати нерви, а хочете спокійнішу роботу, вам варто дізнатися про цю професію детальніше. Хто є хто в ІТ.  Чим займаються PM-и, frontend- та backend-девелопери та QA - 7У всіх спеціальностях я вказував англійську мовуяк необхідна навичка. Але якщо у вас він не дуже, не варто засмучуватися. Це не вирок. Є чимало різних російських та українських продуктових компаній, які набирають фахівців без обов'язкового знання англійської, оскільки людям не потрібно буде спілкуватися з іноземними замовниками (клієнтами), а лише всередині команди. Наприклад, це може бути IT-відділ якогось банку чи оператора зв'язку. Тож знайти роботу можна і без мови, було б бажання. А сьогодні у мене на цьому все…Хто є хто в ІТ.  Чим займаються PM-и, frontend- та backend-девелопери та QA - 8
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ