Как вы понимаете, системы создаются не одними только программистами – работает целая команда. Программисты – это люди, которые создают физически ядро системы. Сейчас мы разберем, кто им помогает (или мешает) в процессе работы над системой.

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

Менеджер проекта выступает своего рода связующим звеном в проекте. Он организует выполнение работ на проекте, планирует проект, проверяет формальные параметры проекта. В общем на нем лежит вся работа по организационным моментам.

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

Основные навыки менеджера – это коммуникация, планирование и постановка задач, контроль хода проекта.

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

Тестировщик

Специалист по тестированию занимается проверкой качества создаваемого ПО. Что сюда входит:

  • проведение тестирования по чек-листам или тест-кейсам
  • создание тест-кейсов / чек-листов.
  • создание автотестов (автоматизатор)
  • проведение исследовательского тестирования

В проекте тестировщик обычно взаимодействует с программистами – проверяет задачи, задает вопросы, скидывает баги через баг-трекер и поясняет их.

Раньше мы использовали для тестирования младших начинающих программистов. Со временем стало ясно, что это подход плохой. Тестированием должны заниматься люди, которые планируют в этой области развиваться и в дальнейшем работать.

На мой взгляд, переход из программиста в тестировщики возможен только, если вы почувствуете, что контроль качества в ПО – это ваше призвание. В остальных случаях такой переход скорее шаг назад, нежели чем шаг вперед.

Заказчик (или продукт-менеджер)

Продукт-менеджер – это человек, который в целом занимается продуктом. Это более широкое понятие, чем менеджер проекта. Проект начнется и закончится, а продукт будет жить и развиваться еще очень долго. В эту роль можно вырасти через менеджера продукта. Ну либо вы являетесь заказчиком создаваемого ПО. Эта роль – наверно максимально далека от программиста.

Бизнес-аналитик / Автор ТЗ

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

Эта работа обычно требует хорошего понимания бизнес-логики предметной области заказчика, а также умение проектировать системы. Менеджер проекта вполне может выполнять роль бизнес-аналитика, но если только он “в теме” – т.е. старший программист.

Если же бизнес-аналитик совсем далек от мира программирования, то вероятно задание он будет писать примерно на уровне понимания заказчика.

Дизайнер

Дизайнер делает графический вид продукта. Иногда дизайнер делает макеты сайта (хотя это лучше отнести к созданию ТЗ).

Задача дизайнера – это придать содержанию продукта заказчика правильную форму. Что это значит?

  • Сделать продукт простым для понимания
  • Сделать продукт удобным для использования
  • Сделать продукт эстетически приятным

Порядок здесь важен. Дизайнер – это не человек, который вешает бантики и стрелочки на продукт. Его задача – придать максимально правильную форму для использования продукта. Вспомните дизайн самолета – там нет ничего лишнего. Любая деталь самолета имеет смысл.

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

← Преимущества работы программистом ч.3 Смежные профессии и перспективы работы программиста ч.2 →