JavaRush /Java блог /Random /Кто есть кто в IT. Чем занимаются PM-ы, frontend- и backe...
Константин
36 уровень

Кто есть кто в IT. Чем занимаются PM-ы, frontend- и backend-девелоперы и QA

Статья из группы Random
Hey! Все мы заглянули сюда, потому что нас заинтересовала работа в IT-сфере. Но вместо того, чтобы тыкать в первую попавшуюся IT специальность, возможно, стоит немного рассмотреть перечень возможных направлений в IT компании? Это вторая часть, моего небольшого обзора. В первой мы рассмотрели такие специальности, как Recruiter, HR, System admin, DBA, DevOps. Сегодня мы рассмотрим специальности, которые являются "костяками" любой команды и, соответственно, проекта.Кто есть кто в IT. Чем занимаются PM-ы, frontend- и backend-девелоперы и QA - 1Если где-то что-то напутаю, сильно не ругайте, а лучше поправьте в комментах: я на всё смотрю со стороны Java-разработчика и нюансов всех специальностей могу попросту не знать.

6. PM — Project manager

Работа менеджера проектов заключается в грамотном планировании, организации, управлении техническими проектами и улучшении взаимодействий между членам команды, чтобы обеспечить бесперебойное и максимально эффективное выполнение работы. Эти специалисты должны знать потребности клиентов и преследуемые ими цели, максимально координировать действия сотрудников, чтобы довести проект до логического, положительно завершения. Положительного, потому что проекты не всегда можно успешно завершить из-за ряда причин: остановка финансирования, недовольство работой со стороны заказчика, и так далее…Кто есть кто в IT. Чем занимаются 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 разработчиками.Кто есть кто в IT. Чем занимаются 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) и образуют веб-приложение, с которым и взаимодействует конечный пользователь.Кто есть кто в IT. Чем занимаются 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 — это специалист, работающий над обеспечением качества продукта, цель которого — улучшение самого процесса разработки приложения, анализ документации и на ее основании — выявление ошибок и неточностей в работе продукта.Кто есть кто в IT. Чем занимаются 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 использует какой-то язык программирования для написания тестов, проверяющих правильность работы функционала приложения. Эти тесты, как правило, автоматически запускаются при определенных условиях: при сборке приложения, или каждый день в какое-то время и так далее.Кто есть кто в IT. Чем занимаются 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$ и выше. Если вы обладаете критическим складом ума, хотите писать код, но при этом не иметь “вызовов”, которые могут временами изрядно подпортить нервишки, а хотите более спокойную работу, вам стоит узнать об этой профессии поподробнее. Кто есть кто в IT. Чем занимаются PM-ы, frontend- и backend-девелоперы и QA - 7Во всех специальностях я указывал английский язык как необходимый навык. Но если у вас он не очень, не стоит расстраиваться. Это не приговор. Есть довольно много различных российских и украинских продуктовых компаний, которые набирают специалистов без обязательного знания английского, так как людям не нужно будет общаться с иностранными заказчиками (клиентами), а только внутри команды. Например, это может быть IT-отдел какого-то банка или оператора связи. Так что найти работу можно и без языка, было бы желание. А сегодня у меня на этом всё…Кто есть кто в IT. Чем занимаются PM-ы, frontend- и backend-девелоперы и QA - 8
Комментарии (6)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Максим Li Уровень 36
23 января 2024
Спасибо за статью!
David Уровень 9
26 января 2021
Спасибо! Очень интересно! И да, прикольные картинки в тему ))
Антон Уровень 25
20 января 2021
Отличная статья. Узнал много нового. Картинки подобраны просто гениально )))
Леонид Уровень 7
20 января 2021
Спасибо огромное, часть уже знал, но другая инфа очень полезна! 👍
Roman Pantyukhin Уровень 19
19 января 2021
Хорошая статья. Разложила многое по полочкам.
svoyboy Уровень 3
19 января 2021
Отличная работа, сэр. Спасибо за проделанный труд!