Команда проекта и ее роль
в процессе разработки крупных приложений
Харитонова И.А., к.т.н. Астро Софт
Два последних вопроса мы кратко описали в предыдущей статье. Сейчас мы попробуем рассказать о принципах организации команды проекта. При этом Астро Софт в своей практике, как уже говорилось ранее, использует те принципы и модели, которые предлагает фирма Microsoft своим партнерам в Microsoft Solution Framework (MSF).
Для каждой роли четко определены задачи, обязанности и требуемые профессиональные навыки.
Управление продуктом √ это, как правило, бизнес-аналитики или представители заказчика. Во всяком случае, это должны быть люди, хорошо знакомые с бизнес-процессами в организации-заказчике, т.к. их основная задача - определить место разрабатываемого программного обеспечения в бизнес-процессах организации, цели и задачи проекта, приоритеты внедрения, сформулировать требования и ожидания пользователей. Руководитель этой группы ≈ Менеджер продукта ≈ обеспечивает взаимодействие с руководством заказчика, несет ответственность за то, что цели и задачи проекта, а также требования и ожидания пользователей однозначно понимаются всеми ролями и что функциональные спецификации проекта отвечают требованиям пользователей и приоритетам бизнеса. Чтобы справиться со своей ролью этот человек должен быть знаком с современными информационными технологиями, хорошо ориентироваться в бизнесе и иметь хорошие организаторские способности.
Управление программой √ это постановщики задачи. Их основная цель √ разработать функциональные спецификации проекта. Руководитель этой группы ≈ Менеджер программы ≈ является одновременно руководителем проекта, поскольку это ключевая организационная и координирующая роль. Он выполняет общее планирование проекта и координирует действия всех ролей в ходе выполнения проекта. Он отвечает за содержание функциональных спецификаций и отслеживает их изменения в течение всего периода работы над проектом. Он несет ответственность за выполнение проекта в запланированные сроки, следит за применением рекомендаций MSF и стандартов. Очевидно, что основное, что требуется от этого человека - это организаторские способности, глубокое знание методологии выполнения проектов.
Разработчики √ это программисты, которые создают необходимые программные модули. Руководитель группы ≈ Менеджер разработки ≈ руководит процессами создания архитектуры проекта, детального проектирования и созданием программных модулей. Поскольку создание приложений в архитектуре клиент-сервер требует знаний во многих областях: языки программирования, сети, коммуникации, управление базами данных, это должна быть группа высококвалифицированных специалистов по каждой из описанных областей.
Группа тестирования должна обеспечить независимую проверку проекта на соответствие функциональным спецификациям. Менеджер по тестированию разрабатывает стратегию и план тестирования и обеспечивает выполнение всех необходимых тестов. От менеджера по тестированию требуется знание технологий и средств тестирования программных продуктов, методики создания тестовых примеров. Как правило, это профессиональные программисты. Члены группы, выполняющие непосредственную прогонку тестов и регистрирующие результаты, могут не иметь профессиональных знаний в области создания программного обеспечения. От них требуется четкость и аккуратность в регистрации проблем.
Группа обучения обеспечивает подготовку всей необходимой документации как в бумажном, так и в электронном виде, т.е. создает систему подсказок, инструкции пользователей. Они также обеспечивают обучение специалистов технических служб заказчика, которые, в свою очередь, обучают конечных пользователей. Менеджер по обучению разрабатывает план обучения и контролирует процессы создания документации и обучения. Для успешного выполнения своих обязанностей члены этой группы должны уметь работать с инструментальными средствами создания печатной и онлайновой информации, понимать требования пользователя и бизнеса, обладать педогогическими способностями.
Логистики подготавливают и поддерживают необходимую среду для разработки и тестирования разрабатываемого продукта, а также обеспечивают плавную передачу выпускаемой системы службам технической поддержки заказчика. Чтобы успешно справиться со своими обязанностями, они должны хорошо знать инфраструктуру организации заказчика, иметь хорошие коммуникационные способности.
Роль | Менеджер продукта | Менеджер программы | Разработчик | Тестер | Инструктор | Логистик |
Менеджер продукта |
≈ | + | + | |||
Менеджер программы |
≈ | ≈ | + | + | ||
Разработчик | ≈ | ≈ | ||||
Тестер | ≈ | |||||
Инструктор (тренер) |
+ | + | ||||
Логистик | + | + |
В таблице знаком (+) помечены возможные комбинации ролей, а знаком (≈) нежелательные комбинации.
Описанную модель команды отличает:
Это очень важно, т.к. роли продуманы таким образом, что все главные сферы проекта оказываются в зоне внимания на протяжении всего процесса. Каждый член команды представляет интересы своей роли на всех стадиях при любых согласованиях проекта. Известно, что изменения в приоритетах разработки могут сильно повлиять на тестирование, обучение или внедрение. С другой стороны, очень часто проблемы тестирования, обучения пользователей и внедрения не поднимаются до самой последней стадии проекта, и усилия по их разрешению в этом случае много больше, чем если бы они были подняты раньше.
Для эффективной работы команды требуется соблюдение следующих условий:
Формирование команды начинается, как только принято решение о выполнении проекта или предпроектных исследований и заканчивается тогда, когда созданы функциональные спецификации проекта и становится возможным оценить сроки его выполнения и профессиональные требования к специалистам. Cм. табл. 2.
Шаг | Описание | Вход | Выход | Ответственный |
1. Анализ требуемых ресурсов |
Определить набор требований к квалификации и профессиональным качествам персонала, необходимым для выполнения проекта. |
Общее описание проекта | Список необходимых ресурсов |
Менеджер проекта |
2. Анализ имеющихся ресурсов (исполнителей) |
Отобразить требования, полученные на предыдущем шаге, к текущему состоянию персонала. |
Анализ необходимых ресурсов |
Таблица загрузки персонала |
Менеджер проекта совместно с администрацией |
3. Выработка решений для заполнения вакантных ролей |
Заключение необходимых контрактов или перераспределение ресурсов. |
Анализ необходимых ресурсов и занятости персонала |
Решения по заполнению вакантных ролей |
Менеджер проекта совместно с администрацией |
4. Планирование работы команды |
Познакомить членов команды с планом внедрения, определить задачи и ответственность каждого и согласовать сроки выполнения работ. |
Общее описание проекта | Согласованное решение команды |
Менеджер проекта |
5. Подготовка и координация мероприятий по обучению |
Спроектировать материалы для технического тренинга |
Анализ необходимых ресурсов |
Материалы и план для технического тренинга |
Инструкторы |
6. Обучение сотрудников | Технический тренинг должен быть проведен на основе результатов шага 2 |
Материалы для технического тренинга |
Обладающие необходимыми знаниями и профессиональными качествами сотрудники |
Инструкторы |
Качество √ это степень соответствия системы требованиям, спецификациям и ожиданиям пользователей. Традиционные определения качества включают также и критерий своевременности, который можно рассматривать как разновидность спецификации. Качество продукта обеспечивается качеством процесса проектирования, которое, в свою очередь, складывается из качества функционирования каждой роли. Тогда качественным, в широком смысле слова, может считаться продукт, который обладает следующими характеристиками:
Таким образом, за качество конечного продукта несет ответственность каждый член команды проекта: от руководителей до непосредственных исполнителей. И это также характерная черта описанной модели команды. Заключение В данной статье мы попытались описать принципы формирования команды проекта, которые являются очень важными при разработке сложных приложений масштаба предприятия. В следующей статье мы собираемся описать итеративную модель процесса разработки, которая может быть использована руководителем проекта для организации проектных работ.