Hey! Усі ми завітали сюди, бо нас зацікавила робота у IT-сфері. Але замість того, щоб тикати в першу IT спеціальність, можливо, варто трохи розглянути перелік можливих напрямів в IT компанії? Це друга частина мого невеликого огляду. У першій ми розглянули такі спеціальності як Recruiter, HR, System admin, DBA, DevOps. Сьогодні ми розглянемо спеціальності, які є кістяками будь-якої команди і, відповідно, проекту. Якщо десь щось наплутаю, сильно не лайте, а краще поправте в коментах: я дивлюся на все з боку Java-розробника і нюансів усіх спеціальностей можу просто не знати.
6. PM - Project manager
Робота менеджера проектів полягає у грамотному плануванні, організації, управлінні технічними проектами та покращенні взаємодій між членами команди, щоб забезпечити безперебійне та максимально ефективне виконання роботи. Ці фахівці повинні знати потреби клієнтів і цілі, які вони переслідують, максимально координувати дії співробітників, щоб довести проект до логічного, позитивно завершення. Позитивного, тому що проекти не завжди можна успішно завершити через низку причин: зупинення фінансування, невдоволення роботою з боку замовника тощо… Головне завдання PM— координація групи співробітників для вирішення технічних проблем, адже розробники не завжди супер товариські і не завжди можуть грамотно спілкуватися між собою, і це, у свою чергу, може грати лише проти проекту. Ну або, наприклад, у розробника стався на чомусь затик: він може довго сидіти і не знати, як розібратися з проблемою. Усі ми не любимо визнавати, що чогось не знаємо чи не можемо, а розробники – тим паче. Тут на допомогу і приходить PM , який допоможе знайти людину, до якої можна звернутися за додатковою інформацією, або яка вже стикалася з чимось подібним. До обов'язків PM входить:- постановка спільних цілей проекту;
- розробка планів задля досягнення цих цілей;
- ведення термінів проекту, звітів про поточний стан;
- управління ресурсами проектів (співробітники та технічне оснащення);
- покращення координації взаємодії між членами команди проекту;
- відстеження ефективності проекту та слідування наміченому графіку;
- проведення оцінки ризиків для проектів;
- організація різних зборів для обговорення цілей, поточного прогресу, позитивних та негативних моментів проекту.
- англійська Upper Intermediate і вище, оскільки ПМ комунікує зі стороною замовника від імені команди;
- широкі технічні знання, але не дуже глибокі, щоб можна було розуміти, хто чим займається, як відбувається робота в цілому, не сильно заглиблюючись;
- навички управління проектами та командами, що беруть у них участь;
- найсильніші комунікаційні навички, оскільки робота PM переважно складається з комунікацій з членами команди, керівництвом;
- розвинені навички ведення листування. Наприклад, часто потрібно надсилати листи на email замовника від імені команди, компанії, і лист неправильно складений або з помилками ніхто не оцінить;
- аналітичний склад розуму, який буде корисним під час вирішення проблем, що виникають під час роботи над проектом;
- навички тайм-менеджменту, використання яких дозволить тримати проекти в рамках графіка та бюджету (адже час = гроші);
- навички планування ресурсів та завдань.
- 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 розробниками. Frontend-розробники, як і Backend-розробники, це кістяк розробки будь-яких проектів. Ті, на кому проекти й тримаються. Адже який би бізнес не був, він тримається на звичайних, так би мовити, роботягах. Ось розробники і виступають у ролі таких роботяг. Їх, як правило, набагато більше, ніж представників інших спеціальностей, і вони найбільш потрібні у будь-якому проекті. До обов'язків Frontend Developer входить:- розробка нового функціоналу та покращення старого;
- рефакторинг коду для покращення продуктивності, яка іноді може сильно просідати; читання, щоб інші розробники швидше могли вникати в код та його логіку; розширюваності, щоб у майбутньому було легше реалізувати новий функціонал завдяки перевикористання частин старого;
- рев'ю (огляд) коду, що відправляється на сервер. Наприклад, один розробник написав код, інший його переглядає і може повернути його першому із зауваженнями щодо того, що потрібно поправити;
- комунікація з клієнтами та членами команди - як Frontend , так і з Backend розробниками;
- технічна реалізація графічного UI/UX макету, складеного дизайнером;
- відстеження продуктивності програми;
- ремонт багів (помилок).
- рівень англійської - Intermediate ;
- розуміння всього процесу веб-розробки (дизайн, розробка та розгортання);
- роботи з Angular 5+ ;
- знання JavaScript , TypeScript , RxJS , Sass , webpack ;
- навички верстки ( HTML , CSS );
- навички в роботі з Git ;
- розуміння патернів проектування;
- хороше знання Linux .
- tech lead - технічного спеціаліста (гуру) у цій галузі;
- team lead - керівник команди розробки (польового командира). Звідси можна зростати в менеджерський напрямок, наприклад, у CTO ;
- full-stack developer - розробник, який володіє і backend- , і frontend -частиною, тобто потрібно підвчити backend ;
- solution architect — спеціаліст, який приймає рішення щодо архітектури внутрішнього пристрою та зовнішніх інтерфейсів продукту;
- tech consultant – технічний консультант у якійсь технології;
- перевчитися та перейти в іншу спеціальність.
8. Backend developer
Backend developer -и - створюють та покращують серверну частину, що відповідає за бізнес логіку програми, яка з'єднується з візуальною (інтерфейсною) частиною програми (наприклад, через REST API ). Комбінація серверної частини програми ( Backend ) + візуальна частина програми ( Frontend ) і утворюють веб-додаток, з яким і взаємодіє кінцевий користувач. Backend-розробники несуть відповідальність за створення, підтримку, тестування та налагодження всієї серверної частини. Як правило, це включає в себе базову логіку програми, взаємодію з базами даних, взаємодію з різними APIта інші внутрішні процеси. Фахівець даного профілю, окрім знання синтаксису своєї мови та основних фреймворків, повинен мати загальні знання з баз даних, зокрема, реляційним , вміти писати модульні та інтеграційні тести на свій код, мати знання з збирача програми - Maven або Gradle , вміти користуватися Git . ом. До обов'язків Backend developer входить:- розробка нового функціоналу;
- рефакторинг коду;
- рев'ю коду інших Backend розробників;
- написання документації, за допомогою якої нові backend -розробники,
- що прийшли на проект, швидше вникатимуть у логіку програми;
- ремонт багів;
- написання тестів (модульне, інтеграційне тестування);
- комунікація з рештою членів команди.
- рівень англійської - Intermediate ;
- знання Java Core - синтаксису мови Java та набору базових технологій;
- розуміння всього процесу веб-розробки;
- знання мови SQL ;
- знання реляційних баз даних, наприклад PostgreSQL або MySQL ;
- навички взаємодії з базою даних через JDBC , Hibernate ;
- знання базових фреймворків Spring (Spring Core, Spring Data, Spring Web) ;
- знання Git , Maven ;
- навички в модульному та інтеграційному тестуванні, наприклад, за допомогою JUnit та Mockito .
- tech lead ;
- team lead ;
- full-stack developer - потрібно підвчити frontend ;
- solution architect ;
- tech consultant ;
- перевчитися та перейти в іншу спеціальність.
9.QA Manual
Manual Quality Assurance — це спеціаліст, який працює над забезпеченням якості продукту, мета якого — покращення процесу розробки програми, аналіз документації та на її підставі — виявлення помилок і неточностей у роботі продукту. Як правило, забезпечення якості, яким займається QA Manual , складається з:- проведення оцінки ризиків;
- аналізу специфікацій та вимог;
- генерації ідей щодо покращення якості продукту;
- складання планувань тестування;
- аналізу та документації отриманих результатів тестування.
- вивчення вимог, специфікації та іншої документації;
- перегляд та перевірка системи та її технічних характеристик на відповідність специфікації (переліку вимог);
- розробка ефективних стратегій та планів тестування;
- написання сценаріїв тестування (тест кейсів), за якими QA Automation виробляють автоматизаційні тести;
- ручне виконання тестових прикладів; аналіз результатів;
- у разі невдач чи невідповідностей при тестуванні потрібно складати звіт, заводити завдання (заводити баги) та відправляти розробникам на доопрацювання;
- регресійне тестування продукту;
- документування етапів тестування;
- комунікація з командами розробників про невідповідності функціоналу та баги.
- рівень англійської - Intermediate ;
- гарне розуміння методологій та практик забезпечення якості програми;
- знання регресійного тестування;
- вміння документувати помилки;
- навички докладного розгляду вимог до ПЗ;
- базове орієнтування у технічній частині;
- розуміння JSON , XML ;
- базові знання SQL ;
- навички в роботі з інструментами організації тестової документації, наприклад - Testrail ;
- увага до деталей;
- критичний склад розуму.
- QA lead - ватажка QA у команді;
- перевчиться і перейти в іншу спеціальність, наприклад, стати frontend- або backend developer -ом.
10. QA Automation
QA Automation — спеціаліст, який відповідає за якість продукту, який використовує в роботі різні програмні інструменти, щоб створювати тести за сценаріями, написаними особисто або QA Manual . QA Automation – це щось на зразок наступного рівня після QA Manual . Якщо QA Manual виконує все вручну, QA Automation використовує якусь мову програмування для написання тестів, що перевіряють правильність роботи функціонала програми. Ці тести, як правило, автоматично запускаються за певних умов: при складанні програми, або щодня в якийсь час і таке інше. Як правило, в обов'язки AQA входить :- вивчення вимог, специфікації та іншої документації;
- створення та налаштування тестових середовищ для виконання тестових випадків та сценаріїв;
- проектування, створення та виконання автоматизації тестових сценаріїв (планів тестування) з використанням Selenium відповідно до певних стандартів та методологій забезпечення якості;
- вивчення ручного тестування програми та внесення пропозицій по можливості автоматизації;
- підтримка актуальних автоматизаційних тестових випадків;
- написання документації;
- підтримка необхідного рівня тестового покриття (test coverage);
- при необхідності – допомога з ручним тестуванням. Може виконувати вручну тестові приклади та сценарії для продуктів, що розробляються за допомогою інструментів управління тестуванням;
- участь у розробці, а саме – в адмініструванні процесу контролю якості;
- комунікація з командами розробників про невідповідності функціоналу та баги.
- рівень англійської - Intermediate ;
- гарне розуміння методологій та практик забезпечення якості;
- відмінне знання синтаксису однієї мови (наприклад, Java або JavaScript ), адже на чомусь потрібно писати тести;
- написання автоматизаційних тестів за допомогою Selenium ;
- знайомство з CI/CD ;
- вміння працювати з Git ;
- увага до деталей;
- критичний склад розуму.
- QA lead ;
- перевчитися та перейти в іншу спеціальність.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ