October 8

Основные участники команды разработки ПО

В этой статье вы узнаете, кто является основными участниками команды на проекте и какие функции они выполняют

В разработке ПО принимает участие большое количество людей. В этой статье рассмотрим основных участников команды разработки ПО, без которых невозможно представить какой-либо сложный проект.

Менеджер проекта

Успех проекта во многом определяется качественным планированием, когда каждый член команды ясно понимает общие цели, свои задачи и учитывает временные рамки и ограничения. Этот процесс требует времени и усилий, поэтому за планирование и координацию обычно отвечает отдельный специалист — менеджер проекта.

Менеджер проекта (Project Manager, PM, проджект-менеджер, руководитель проекта, РП) — это человек, ответственный за то, чтобы проект был выполнен в срок и успешно завершён.

Успех проекта измеряется по трем критериям: Весь запланированный функционал → должен быть выполнен в установленные сроки → в рамках согласованного бюджета.

Что именно делает менеджер проекта, чтобы проект был успешен?

  • Составляет план, в котором указано, кто, что и когда делает
  • Контролирует исполнение плана
  • Управляет рисками
  • Отвечает за коммуникацию команды
  • Решает проблемы, которые могут повлиять на успех

Менеджер участвует во всех этапах создания ПО.

Системный аналитик

Системный аналитик подключается к проекту когда идея и цели проекта уже сформулированы.

Задачей системного аналитика является разработка требований к ПО. Эту работу он проводит, когда проектная команда находится на первых двух этапах разработки (анализ и проектирование).

Что делает системный аналитик:

  • Собирает и описывает требования к продукту
  • Изучает информацию для проекта из разных источников и документов
  • Проектирует архитектуру (формулирует, как должно работать ПО)
  • Отвечает на вопросы пользователей и разработчиков о том, как должно работать ПО, вносит правки
  • Документирует результат разработки

Разработчик

После того, как системный аналитик собрал требования к продукту и спроектировал архитектуру, на проект подключается разработчик.

Разработчик, как и следует из названия, занимается разработкой ПО. Тоесть он пишет код.

Разработку программного обеспечения можно разделить на две основные категории:

  1. Frontend-разработка
  2. Backend-разработка

Frontend-разработчик отвечает за визуальную, клиентскую часть приложения, с которой взаимодействует пользователь. Это часть, называемая графическим интерфейсом. Чтобы создать внешний вид элементов интерфейса и сделать его интерактивным, frontend-разработчик использует языки программирования и разметки (например, HTML, CSS, JavaScript), а также библиотеки и фреймворки (такие как React, Angular и другие).

К основным обязанностям frontend-разработчика относятся:

  • Реализация интерфейса в точности с дизайнерским макетом.
  • Придание интерфейсу интерактивности — например, создание выпадающих меню или подсветки ошибок в формах.
  • Настройка передачи данных от пользователя на сервер и отображение серверного ответа.
  • Адаптация интерфейса под разные браузеры и устройства.
  • Поиск и устранение ошибок в работе клиентской части.

Backend-разработчик, в свою очередь, отвечает за серверную часть программы, которая управляет хранением и обработкой данных. Пользователь не взаимодействует с сервером напрямую, но через интерфейс (например, нажимая на кнопку «Поиск»), отправляет запросы на сервер, который выполняет их, обращаясь к базе данных.

Если сравнить с автомобилем, frontend — это элементы, которыми водитель управляет (руль, педали), а backend — это «начинка» под капотом, обеспечивающая работу (двигатель, трансмиссия и т.д.).

Backend-разработчик использует серверные языки программирования (например, Python, Java, C#, C++, PHP) и инструменты для работы с данными (SQL, GraphQL). Его основные задачи включают:

  • Организацию и управление базами данных.
  • Разработку алгоритмов обработки данных.
  • Обеспечение связи серверной части с клиентской или другими приложениями.
  • Исправление ошибок в серверной части.

Кроме того, существуют fullstack-разработчики, которые объединяют в себе навыки как frontend, так и backend

Тестировщик

После того как разработчик завершает свою работу — создает новый программный код или вносит изменения в существующий — необходимо проверить, насколько корректно функционирует программа. Основная задача заключается в том, чтобы убедиться, что код действительно выполняет требуемые задачи. Хотя разработчики обычно сами тестируют свою работу, для полноценной проверки качества программного обеспечения нужны профессионалы — специалисты по тестированию, или QA-инженеры.

QA-инженер (Quality Assurance) — это эксперт, отвечающий за качество продукта. Его задача — убедиться, что все элементы системы функционируют в соответствии с требованиями, выявить возможные ошибки и сбои, а также предоставить информацию о том, какие из них нужно устранить.

Ключевые задачи тестировщика включают:

  • Разработка и описание тестовых сценариев для проверки различных вариантов использования программы.
  • Проведение тестов, как вручную, так и с использованием автоматизированных средств.
  • Документирование обнаруженных ошибок и анализ их влияния на функциональность системы.
  • Контроль за исправлением критичных ошибок и проверка исправлений для подтверждения их эффективности.

Финальная проверка перед выпуском продукта также находится в зоне ответственности тестировщика — он дает заключение о том, что программа достигла необходимого уровня качества для использования.

Задача тестирования не в том, чтобы достичь абсолютного совершенства, а в том, чтобы обеспечить соответствие продукта установленным стандартам.

При этом уровень качества может варьироваться в зависимости от типа проекта — для медицинских или финансовых систем требования будут более строгими, чем, например, для развлекательных веб-сайтов.

Это не все роли, которые влияют на создание продукта, но являются самыми основными. Другие роли, которые привлекаются в процессе создания ПО, подробно рассмотрим в следующей статье