Разработка программного обеспечения: каковы ключевые роли в команде?
Опубликовано: 2021-01-29Многие думают, что для создания приложения достаточно нанять одного разработчика. Однако по мере роста сложности и увеличения времени разработки становится ясно, что кто-то должен выполнять и другие роли, даже если они четко не определены.
Разработка программного обеспечения осуществляется в рамках проектов. Четко очерчены сроки, желаемый результат и бюджет. Каждый проект также включает в себя человеческие ресурсы, и очень важно правильно выбрать участников, потому что это влияет на требуемый бюджет. Итак, попробуем разобраться, кто занимается разработкой проекта и какие у них обязанности.
- 10 ключевых ролей в команде разработчиков программного обеспечения
- 1. Менеджер проекта
- 2. Аналитик
- 3. Архитектор
- 4. Ведущий разработчик (Team Lead)
- 5. Разработчик
- 6. QA-специалист/тестер
- 7. Дизайнер
- 8. Системный администратор/сотрудник DevOps
- 9. Начальник отдела развития
- 10. Владелец клиента/продукта
- Типичное сочетание ролей
- В заключение
10 ключевых ролей в команде разработчиков программного обеспечения
«При анализе проектных ролей необходимо понимать, что типичный сотрудник от компании может играть сразу несколько ролей, а также участвовать в разных проектах в разных ролях». – как упомянул Себастьян Штрайфферт, директор по маркетингу Beetroot, в одной из своих недавних статей.
О совмещении ролей поговорим позже. Теперь обратим внимание на основные роли и должности команды проекта разработки программного обеспечения:
Рекомендуется для вас: как компании, занимающиеся разработкой программного обеспечения и ИТ, выживают в условиях пандемии COVID-19?
1. Менеджер проекта
Этот человек составляет план проекта и берет на себя ответственность за его реализацию. Он или она получает части плана от персонала, сводит их вместе и проверяет их согласованность. PM отвечает за составление отчетов для членов команды и предоставление результата вовремя и в рамках определенного бюджета. Кроме того, они выполняют следующие задачи:
- Проводить регулярный (еженедельный) пересмотр плана с заказчиком и командой проекта;
- Адаптировать план в соответствии с запросами клиента;
- Написание еженедельных отчетов по проекту;
- Информировать клиента и персонал о проблемах и попытаться решить их в рамках бюджета и т. д.
По сути, PM отвечает за KPI проекта. По статистике лишь немногие девелоперские проекты выполняются в срок с установленными KPI и в рамках первоначального бюджета. Если что-то пойдет не так, PM в конечном итоге берет на себя ответственность за отсрочку выпуска продукта, ошибки обновлений и т. д.
2. Аналитик
Аналитик отвечает за написание и поддержание в актуальном состоянии требований. В частности, он/она является основным переговорщиком с клиентом по требованиям проекта. Этот человек пишет рекомендации по проекту, рассматривает их с заинтересованными сторонами, архитекторами и ведущими разработчиками. Также аналитик просматривает тест-планы, объясняет тестировщикам трудности, а также может принимать участие в тестировании кода. Этот человек также может участвовать в проверке разработки верхнего уровня.
Для сложных проектов может потребоваться группа аналитиков и лид, отвечающий за команду.
3. Архитектор
Этот человек разрабатывает архитектуру проекта. Для крупных проектов архитектор должен быть штатным сотрудником. Этот член команды отвечает за документацию высокого уровня (ДВУ), приведение архитектуры в соответствие с техническими требованиями заказчика. Он структурирует проект, распределяет задачи между разработчиками, помогает им в сложных вопросах.
4. Ведущий разработчик (Team Lead)
В небольших проектах без выделенных архитекторов ведущие разработчики несут ответственность за все задачи разработки. Они назначают разработчиков, просматривают план и устанавливают для них сроки. Кроме того, они выполняют следующие задачи:
- Принимать работу от разработчиков и выполнять код-ревью;
- Объединяйте ветки в репозиторий и следите за тем, чтобы в основную ветку попадал только проверенный и актуальный код;
- Написать проектную документацию;
- Обучать сотрудников и помогать им в сложных вопросах;
- Напишите код.
5. Разработчик
Этот человек пишет код для проекта. Он читает требования, анализирует сложные участки с аналитиком, принимает задачи на разработку от тимлида или архитектора и, при необходимости, дает обратную связь. В их прямые обязанности входит:
- Разработка компонентов кода и модульных тестов;
- Запуск тестов;
- Проверка соответствия реализованного функционала требованиям;
- Прием тикетов от тестировщиков и исправление ошибок;
- Участие в тестировании в сложных случаях.
Без написанного и скомпилированного кода не будет приложения. Поэтому разработчиков нельзя исключать, даже если некоторые приложения создаются в простом визуальном конструкторе, что тоже является своего рода программированием.
Вам может понравиться: Будущее программной инженерии | Тенденции, прогнозы на 2021 год и далее.
6. QA-специалист/тестер
Это люди, которые проверяют, правильно ли работает приложение. Более того, правильно не всегда означает удобно. Тестировщик может написать заметку об удобстве использования, но его главная задача — убедиться, что приложение работает в соответствии с требованиями и спецификациями. Они могут тестировать приложения как вручную, так и с помощью автотестов.
Что касается аналитиков, то тестировщики могут быть назначены по подсистеме проекта или методам тестирования. Если тестировщиков несколько, один из них должен быть назначен тимлидом. Если в штате проекта нет выделенных тестировщиков, их функции обычно делегируются разработчикам. В то же время считается, что разработчики не могут корректно тестировать собственные коды, и поэтому лучшим вариантом является перекрестное тестирование.
7. Дизайнер
Это человек, который определяет, как приложение будет выглядеть и работать. Дизайнеру приходится продумывать расположение элементов, схемы движения, анимацию и т. д. Для сложных приложений может потребоваться несколько дизайнеров. Например, один дизайнер может рисовать интерфейс, а другой продумывать всю концепцию взаимодействия с пользователем. В некоторых компаниях по разработке программного обеспечения нет дизайнеров, поэтому разработчики могут взять на себя эту роль для простых проектов. Основными задачами дизайнера являются следующие:
- разработка ScreenFlow;
- прототипирование экрана;
- Оптимизация взаимодействия с пользователем (предоставление рекомендаций);
- Консультация команды разработчиков.
Иногда дизайнер вместе с программистами несут ответственность за какие-то ошибки в приложении. Например, реализовать дизайнерские идеи заказчика может быть довольно сложно, поэтому вероятность совершения ошибок возрастает. Следовательно, все неудачи связаны с работой конструктора.
8. Системный администратор/сотрудник DevOps
Этот член команды отвечает за рабочий процесс непрерывной поставки и непрерывной интеграции, организацию взаимодействия между системами, развертывание, выявление проблем во время тестирования. Они принимают участие в планировании и работе над миграцией и синхронизацией данных. Кроме того, они выполняют следующие задачи:
- Написать руководство по развертыванию и администрированию системы;
- Взаимодействовать с клиентами;
- Составить и структурировать системное оборудование;
- Установите VPN и справьтесь с брандмауэрами;
- Разверните систему без программистов.
9. Начальник отдела развития
Этот человек принимает участие в формировании проектных команд. Они отвечают за квалификацию сотрудников, поэтому в их обязанности входит организация обучения, контроль за карьерным ростом сотрудников. Кроме того, они также отвечают за комфорт на рабочем месте.
10. Владелец клиента/продукта
Это основной член команды, который определяет весь ход создания продукта. Этот человек решает, что нужно сделать, и оценивает, соответствует ли реализация концепции продукта или нет. В частности, ответственный владелец продукта выполняет следующие задачи:
- Определяет концепцию продукта;
- Создает маркетинговую стратегию;
- Делает анализ конкурентов;
- Осуществляет контроль состояния разработки;
- Выбор продуктовой стратегии и методов монетизации;
- Генерирует идеи повышения эффективности бизнеса;
- Оценивает качество продукции.
Итак, основная задача этого человека — убедиться, что продукт соответствует бизнес-целям.
Типичное сочетание ролей
Иногда при обсуждении результатов клиенты говорят, что разработчики сделали что-то не так. Такая ситуация может возникнуть, если некоторым сотрудникам проекта приходится выполнять сразу несколько ролей. Эта проблема обычно возникает, когда не хватает финансовых ресурсов для найма группы разработчиков. Иногда совмещение ролей может принести положительные результаты. Например, возможны следующие варианты:
- Аналитик + тестер — звучит неплохо, но такой человек будет стоить вам целое состояние;
- Менеджер проекта + аналитик – такой вариант приемлем в небольшом проекте;
- Архитектор + ведущий разработчик — в небольших проектах нормально;
- Менеджер проекта + ведущий разработчик — для небольших проектов с опытной командой программистов и тестировщиков можно попробовать и этот вариант;
- Разработчик + дизайнер – возможно при наличии квалифицированной команды разработчиков.
Между тем, есть также командные роли, которые по возможности не следует совмещать в проекте разработки программного обеспечения:
- Разработчик + тестер – не допускается.
- Архитектор + Аналитик — на первый взгляд звучит приемлемо, но в целом — не вариант. Эти две роли немного антагонистичны.
Как видите, в то время как некоторые позиции можно объединить, другие составят гремучую смесь, которая испортит конечный результат. Старайтесь избегать совмещения ролей или уделяйте достаточно времени разработке проекта.
Вам также может понравиться: Советы по саморазвитию в качестве удаленного разработчика программного обеспечения в условиях COVID-19.
В заключение
Теперь вы знаете, кто есть кто в команде разработчиков проекта. Если вы задумаетесь о разработке приложения для Android или iOS, вы будете знать, каких людей вам нужно найти. При этом ключевые роли могут существенно различаться в зависимости от типа проекта. Если вы хотите создать программное обеспечение с нуля, вам нужна команда, отличная от тех, кто внедряет систему ERP или устанавливает приложение BI для высшего руководства заказчика.
Если вы нанимаете собственную команду, вам приходится содержать полный штат сотрудников, даже если они не задействованы или не полностью вовлечены в ваши текущие проекты. В действительности для большинства проектов не требуется штатный дизайнер, системный администратор или тестировщик. Поэтому нанять специальную команду разработчиков или отдать эту работу на аутсорсинг может быть хорошей идеей.
Какие роли в разработке программного обеспечения были полезны для вашего проекта и вашей команды? Поделитесь с нами своим опытом в комментариях.