Всем привет! Меня зовут Артем и я бэкенд разработчик на Ruby с опытом в 3,5 года. Я решил создать канал по ИТ направлению. Статьи по началу будут больше про общие темы в ИТ (веб-разработку), а дальше будут углубляться в специализацию моей профессии. Итак, тема сегодняшней первой статьи - Как устроена стандартная команда по разработке веб приложения (+ некоторые опциональные специалисты).
Project Manager - менеджер проекта, у которого в зависимости от проекта набор обязанностей может отличаться. Но в целом, основные обязанности - внешняя коммуникация с заказчиком\SCRUM мастером\инвестором\product owner-ом, постановка и оформление (иногда актуализация) задач в отношении разработчиков, взаимодействие с тех поддержкой проекта. Помимо этих обязанностей, в зависимости от методологии разработки выбранной на проекте, могут еще присутствовать дополнительные обязанности, например, проведение ретро команды.
Front-end developer - разработчик, который пишет код создающий визуальную часть приложения (веб-сайта). Фактически все или почти все отображаемое на сайте, это сфера обязанности фронтендера. Статические части сайт, информация которая обновляется, кнопочки, которые нажимаются, сама верстка сайта выглядящая корректно.
Back-end developer - разработчик, который пишет код на стороне сервера, реализующий бизнес логику и хранение данных. Если совсем просто - бэкендер реализует все то, что происходит после нажатия на какие-либо кнопки, зачастую также поиск. Самый тривиальный пример - вы регистрируетесь на сайте, форму с полями email и пароль отображает фронтендер, а вот после ввода данных и нажатия кнопки зарегистрироваться, уже начинается работа бэкендера, которая заключается в сохранении данных от пользователя в базу данных сервера и отображение информации успешна ли попытка сохранения.
Android/IOS developer - это разработчики, которые создают мобильные приложения, в которых добавляют отображение необходимых фич (по англ. - feature - возможность) или возможностей пользователя (если допустим взять для примера приложение CoronaPay для переводов денег, то тут возможности пользователя - регистрация, внесение личных данных, осуществление перевода и т.д.)
QA - специалист, который тестирует разработанные возможности тем или иным способом. Есть еще QA - которые пишут автоматизированные тесты (да, код может тестировать код), для проверки фич. По сути, это автоматизированный ввод данных в веб\ином интерфейсе и получение определенного результата - все тот же пример с регистрацией.
Аналитик - специалист, тщательно продумывающий новые фичи, взаимодействие уже существующих фичей друг с другом и новой фичей, которую разрабатывают. Зачастую в зависимости от типа предприятия - опциональный специалист.
DB developer - разработчик, который пишет код сложных запросов, и занимается проектированием и обслуживанием базы данных. На многих проектах роль такого специалиста выполняет back-end разработчик.
Архитектор - специалист, который продумывает и описывает техническую и логическую реализацию фич, которые необходимо реализовать. Разница между архитектором и аналитиком казалось бы невелика, но на деле аналитик только продумывает и описывает требования, а архитектор представляет и описывает, как это все с технической стороны реализовать. Часто бывает, что опытный бэкендер становится архитектором. Тоже в зависимости от типа компании - опциональный специалист.
Product Owner - это либо отдельный специалист, либо даже владелец бизнеса - который целостно представляет себе проект, и имеет квалификацию, чтобы построить путь развития проекта на долгие годы вперед. Опциональный специалист.
В целом, это основных, хоть и иногда опциональные специалисты на проекте веб приложения.