вторник, февраля 20, 2007

Что в имени тебе моем?

Данный пост представляет собой кросс-пост отсюда и является ответом на вопрос в RSDN.

Вопрос:

Что-то я немного отстал от современных терминов. Я являюсь руководителем разработчиков в
одной из компаний. В оффисе у нас в во-всю ходят термины: прожект менеджер, продакт менеджер, тим лидер, руководитель проекта, аналитик, архитектор и т.п.
Мог бы кто-нибудь мне разъяснить, в чем состоят функциональные обязанности вышеперечисленных ролей? Чем они отличаются? Может, есть где-то документ, регламентирующий обязанности этих ролей? Больше всего интересует, чем отличается продакт-менеджер от архитектора, так как передо мной стоит выбор одной из этих двух ролей...

Люди и Роли


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

В итоге, в каждой компании, в которой хотят ввести такие роли/должности их вводят по принципу:
  1. Какими методологиями пользовался/что изучал человек, который придумывает роли
  2. Собственное понимание/перевод соответствующих английских терминов
Некоторые термины, тем не менее, имеют чёткое определение, которое дано им международными организациями. Например, что такое project, project management, определяется документом PMBOK (Project Management Body Of Knowledge), который можно назвать стандартным.

По этому документу:

Project — Временное предприятие, предназначенное для создания уникальных продуктов или услуг.
Здесь временное означает, что у проекта есть четко определенные начало и конец.
Уникальные продукты или услуги — означает что, то что будет создано, каким-то существенным образом отличается от того что уже есть.

Project Management — Использование знаний, навыков, методов, средств и технологий при выполнении проекта с целью достижения или превышения ожиданий участников проекта.

Project Manager — человек, осуществляющий project management.

Почти что как у Лема

«СЕПУЛЬКИ — важный элемент цивилизации ардритов (см.) с планеты Энтеропия (см.). См. СЕПУЛЬКАРИИ».
Я последовал этому совету и прочёл:
«СЕПУЛЬКАРИИ — устройства для сепуления (см.)».
Я поискал «Сепуление»; там значилось:
«СЕПУЛЕНИЕ — занятие ардритов (см.) с планеты Энтеропия (см.). См. СЕПУЛЬКИ».
Лем С. Звёздные дневники Ийона Тихого. Путешествие четырнадцатое.


В задачи Project Manager входит (опять же по PMBOK):

  1. Создание и исполнение плана проекта
  2. Создание календарного плана и контроль времени
  3. Управление ресурсами проекта (людьми, оборудованием, помещениями)
  4. Создание и управление бюджетом проекта (как денежным, так и временным)
  5. Установка и поддержание стандартов качества
  6. Взаимодействие с другими отделами компании, а также с контактами вне компании
  7. Оценка и управление рисками проекта

Тем не менее, необходимо помнить, что в каждой конкретной организации сложилось свое понимание каждого термина, в том числе и для таких как "project management".

Личный взгляд

В моей голове тоже есть понимание того что означают все эти должности, и это понимание я здесь сейчас изложу.

  • Project manager/руководитель проекта — мое понимание совпадает с тем, что изложено в PMBOK (приведено выше)
    Данная роль является "начальственной" в бюрократическом смысле слова. В конечном итоге, если не удается договориться,
    последнее слово всегда остаётся за руководителем проекта.
  • Product Manager
    Отвечает за продукт с точки зрения заказчика. То есть product manager — это человек, представляющий заказчика в команде разработчиков. В обязанности Product Manager входит:

    1. Исследование рынка
    2. Выявление потенциально нужных заказчикам продуктов, сервисов, функциональности
    3. Исследование конкурентов (иногда этим занимаются специально выделенные люди)
    4. Маркетинговые исследования, PR акции, пресс-релизы (иногда эту работу делают специальные Product Marketing Manager, иногда она производится совместно этими двумя ролями)
    5. Выработка списка "features" продукта
    6. Определение приоритетности тех или иных "features" (что делать обязательно, что нет)
    7. Позиционирование продукта (на какой рынок продукт нацелен, портрет покупателя)
    8. План развития продукта (RoadMap)
    9. Ценообразование (сколько продукт будет стоить, какая будет модель лицензирования)
    10. Взаимодействие с высшим руководством компании, если таковое необходимо
    11. Взаимодействие с отделом продаж и совместная выработка стратегии продаж

    Все вышеизложенное взято из определений "product manager" в MSF, курсов Pragmatic Marketing,
    а также из собственного опыта и возможно ещё откуда-то (ну то есть в голове есть, а откуда взялось — не помню).

    Данная роль не является "начальственной", то есть product-manager-ы не могут никому приказать — их голос совещательный.

  • Program Manager
    Это странная сущность, существование которой кажется мне не очень оправданным. В моей картине мира вполне можно обойтись без неё. Тем не менее, она существует и, по всей видимости, введена была в Microsoft
    ещё очень давно. Про эту роль есть два неплохих рассказа:

    1. Элдар Мусаев "Про маразм и Program Management"
    2. Steven Sinofsky — бывший руководитель группы разработки MS Office

    Данная роль не является "начальственной", то есть program manager-ы не могут никому приказать — их голос совещательный.

  • Team Leader
    Team Leader — это руководитель небольшой группы программистов. Подчеркну TeamLeader — это начальник, в бюрократическом смысле этого слова. То есть он может приказать. И пусть никого не смущает слово leader. Под небольшой группой понимается группа в 1-5 человек (ну понятно что цифры приблизительные).

  • Technical Leader
    Данная роль предполагает, что человек обладает некоторыми очень глубокими знаниями в каком-то техническом вопросе или теме — более глубокими чем все остальные. Это — "эксперт" в какой-то области. Областью может быть все что угодно: C++, ADSI или очень глубокое знание системы контроля за исходными текстами, использующейся в компании.
    В любом случае эта роль оказывается у человека в результате его "репутации" — в какой-то момент все понимают что этот человек действительно эксперт. Эта роль не является начальником в бюрократическом смысле этого слова, то есть никто не обязан подчиняться technical leader-у.

  • Analyst
    Данная роль отвечает за исследование "процессов" для заказчика. Часто эта роль оказывается близкой к роли Product Manager, особенно если нужна разработка для какого-то одного конкретного заказчика.
    Также как и product manager-ы аналитики занимаются:

    1. Выявлением нужной заказчикам функциональности
    2. Составлением спецификаций и приоритезацией "features" продукта
    3. [иногда] Оценкой применимости тех или иных средств для реализации нужной функциональности (в MS, насколько я понимаю — это как раз часть деятельности Program Manager-ов)

    Данная роль не является "начальственной", то есть аналитики не могут никому приказать — их голос совещательный.

  • Architect

    "I am the Architect"(C)Matrix Reloaded. Честно говоря я затрудняюсь здесь дать точное определение.
    Очень часто — это не роль, а состояние души

    Данная роль не является "начальственной", то есть архитекторы не могут никому приказать — их голос совещательный.

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

Несколько ссылок

  1. Project Management Institute — авторы PMBOK
  2. Российский портал управления проектами pmprofy — у них есть глоссарий с определениями

1 комментарий:

Анонимный комментирует...
Этот комментарий был удален администратором блога.