Учебники

Главная страница


Банковское дело
Государственное управление
Культурология
Журналистика
Международная экономика
Менеджмент
Туризм
Философия
История экономики
Этика и эстетика


5.3. Функциональные роли в коллективе разработчиков

  Функции, выполняемые разработчиками в проекте подразделяются на организационные и производственные. Первые создают условия для выполнения проектных заданий, вторые непосредственно связаны с этими заданиями.
  Согласно концепции Microsoft Solution Framework (MSF) выделяются следующие группы функций - так называемые области функциональной специализации (functional area). Определено шесть ролевых кластеров, которые соответствующим образом структурируют проектные функции разработчиков (рис. 2.1).
  • Управление продуктом (product management). Ключевая цель кластера - обеспечивать удовлетворение интересов заказчика. Для ее достижения кластер должен содержать следующие области компетенции:
  - планирование продукта;
  - планирование доходов;
  - представление интересов заказчика;
  - маркетинг.
  • Управление программой (program management). Задача - обеспечить реализацию решения в рамках ограничений проекта, что может рассматриваться как удовлетворение требований к бюджету проекта и к его результату. Области компетенции кластера:
  - управление проектом;
  - выработка архитектуры решения;
  - контроль производственного процесса;
  - административные службы.
  • Разработка (development). Первостепенной задачей кластера является построение решения в соответствии со спецификацией. Области компетенции кластера:
  - технологическое консультирование;
  - проектирование и осуществление реализации;
  - разработка приложений;
  - разработка инфраструктуры.
  • Тестирование (test). Задача кластера - одобрение выпуска продукта только после того, как все дефекты выявлены и устранены. Области компетенции кластера:
  - разработка тестов;
  - отчетность о тестах;
  - планирование тестов.
  • Удовлетворение потребителя (user experience). Цель кластера - повышение эффективности использования продукта. Области компетенции кластера:
  - общедоступность (возможности работы для людей с недостатками зрения, слуха и др.);
  - интернационализация (эксплуатация в иноязычных средах);
  - обеспечение технической поддержки;
  - обучение пользователей;
  - удобство эксплуатации (эргономика);
  - графический дизайн.
  • Управление выпуском (release management). Задача кластера - беспрепятственное внедрение и сопровождение продукта. Области компетенции кластера:
  - инфраструктура (infrastructure);
  - сопровождение (support);
  - бизнес-процессы (operations);
  - управление выпуском готового продукта (commercial release management).
  Центр объектно-ориентированной технологии компании IBM предлагает свою ролевую структуру проекта. Эта структура включает достаточно полный перечень типичных ролей, согласованный со многими реальными дисциплинами развития программных проектов. В то же время она представляет роли разработчиков в организационном контексте, т. е. рассматривает не только разработчиков, но и тех, кто, не участвуя в проекте в качестве исполнителей, оказывает влияние на постановку задач проекта, на выделение ресурсов и обеспечение осуществимости развития работ. В представленном перечне характеристика каждой роли, по сути, задает круг родственных организационных и производственных функций, которые объединяются с целью определить роль.
  • Заказчик (Customer) - реально существующий (в организации, которой подчинена команда, или вне ее) инициатор разработки или кто-либо иной, уполномоченный принимать результаты (как текущие, так и окончательные) разработки.
  • Планировщик ресурсов (Planner) - выдвигает и координирует требования к проектам в организации, осуществляющей данную разработку, а также развивает и направляет план выполнения проекта с точки зрения организации.
  • Менеджер проекта (Project Manager) - отвечает за развитие проекта в целом, гарантирует, что распределение заданий и ресурсов позволяет выполнить проект, что работы и предъявление результатов идут по графику, что результаты соответствуют требованиям. В рамках этих функций менеджер проекта взаимодействует с заказчиком и планировщиком ресурсов.
  • Руководитель команды (Team Leader) - производит техническое руководство командой в процессе выполнения проекта. Для больших проектов возможно привлечение нескольких руководителей подкоманд, отвечающих за решение частных задач.
  • Архитектор (Architect) - отвечает за проектирование архитектуры системы, согласовывает развитие работ, связанных с проектом.
  • Проектировщик подсистемы (Designer) - отвечает за проектирование подсистемы или категории классов, определяет реализацию и интерфейсы с другими подсистемами.
  • Эксперт предметной области (Domain Expert) - отвечает за изучение сферы приложения, поддерживает направленность проекта на решение задач данной области.
  • Разработчик (Developer) - реализует проектируемые компоненты, владеет и создает специфичные классы и методы, осуществляет кодирование и автономное тестирование, строит продукт. Это широкое понятие, которое может подразделяться на специальные роли (например, разработчик классов). В зависимости от сложности проекта команда может включать различное число разработчиков.
  • Разработчик информационной поддержки (Information Developer) - создает документацию, сопровождающую продукт, когда выпускается версия. Включаемые в нее инсталляционные материалы, равно как ссылочные и учебные, а также материалы помощи предоставляются на бумажных и машинных носителях. Для сложных проектов возможно распределение этих задач между несколькими разработчиками информационной поддержки.
  • Специалист по пользовательскому интерфейсу (Human Factors Engineer) - отвечает за удобство применения системы. Работает с заказчиком, чтобы удостовериться, что пользовательский интерфейс удовлетворяет требованиям.
  • Тестировщик (Tester) - проверяет функциональность, качество и эффективность продукта. Строит и исполняет тесты для каждой фазы развития проекта.
  • Библиотекарь (Librarian) - отвечает за создание и ведение общей библиотеки проекта, которая содержит все проектные рабочие продукты, а также за соответствие рабочих продуктов стандартам.
  Первые две позиции в приведенном перечне отведены заказчику и планировщику ресурсов, которые имеют лишь внешнее отношение к разработке проекта, - они не являются членами команды. Заказчик - это лицо, заинтересованное в получении результатов. Планировщик решает задачи распределения финансовых, трудовых и технических ресурсов для разных проектов внутри фирмы. При правильной организации разработки с этими действующими лицами приходится сталкиваться лишь менеджеру проекта.
  В заключение приведем перечень ключевых ролей, характеризующих наиболее типичные ситуации для программных проектов:
  • архитектор проекта;
  • проектировщики подсистем;
  • руководители команд разработки подсистем;
  • специалист по пользовательскому интерфейсу;
  • эксперт предметной области.

 
© www.textb.net