Опубликован: 20.07.2007 | Доступ: свободный | Студентов: 765 / 147 | Оценка: 4.30 / 4.06 | Длительность: 09:58:00
Специальности: Программист
Лекция 4:

Версии. Модель проектной группы

< Лекция 3 || Лекция 4: 123 || Лекция 5 >
3. Нововведения версии MSF 4.0

MSF 4.03Раздел подготовлен с использованием материалов презентации [4.14] представляет собой эволюционное развитие предыдущей версии методологии. Тем не менее, изменений внесено довольно много. В этом разделе мы обсудим основные.

Прежде всего, в новой редакции методологии делается упор на то, что MSF - это не просто набор рекомендаций, MSF - это образ мыслей (mindsets![4.15]

"Образ мыслей" MSF 4.0. Источник: MSF for Agile Software Development Process Guidance

Рис. 4.1. "Образ мыслей" MSF 4.0. Источник: MSF for Agile Software Development Process Guidance

MSF предлагает стремиться к созданию культуры, которая бы помогала разработчикам успешно выполнять проекты. При этом под образом мыслей понимается набор ценностей, которые определяют, как мы интерпретируем ситуации и реагируем на них. Образ мыслей помогает членам команды принимать решения, приоритезировать работу, представлять свои роли в команде и взаимодействовать с другими участниками проекта.

3.1. Два направления в MSF 4.0

Важное нововведение состоит в том, что в MSF 4.0 произошло разделение методологии на два направления: MSF for Agile Software Development и MSF for CMMI Process Improvement.

Все оставшееся время в течение курса мы будем работать в рамках первого направления. Что касается второго, то оно предлагает в существенной степени формализованный подход к процессу разработки, чем-то сближающийся с RUP. В частности, помогает организациям работать на третьем уровне модели CMMI (Capability Maturity Model Integration4Дополнительная информация может быть получена на http://www.sei.cmu.edu/cmmi/ ). Если говорить кратко, MSF for CMMI Process Improvement - это строгий, документированный процесс, рассчитанный на большие команды и длительный процесс разработки, что предполагает больше верификации, больше планирования, процедуры утверждения, отслеживание потраченных ресурсов и т.д.

3.2. Основные положения MSF for Agile Software Development

MSF for Agile Software Development в определенной степени отражает тенденции последнего времени, связанные с появлением методологий, предлагающих максимально облегченный и гибкий подход к процессу разработки. Одним из примеров подобных методологий является Extreme Programming ( XP5http://www.extremeprogramming.org/ ).

Agile направление в MSF ориентируется на небольшие команды (5-6 человек), предполагает, что информация о разрабатываемом продукте не просто выясняется в процесе разработки, а может и будет изменяться по ходу. Таким образом, первая рабочая версия системы должна быть создана как можно раньше, а сам продукт фактически проявляется из прототипов путем повторения итераций в цикле разработки.

Методология MSF содержит весьма много элементов, в частности:

  • рекомендованные процессы создания IT-проектов;
  • структуру итераций;
  • роли членов команды;
  • шаблоны документов (Excel, Word);
  • шаблоны Microsoft Project;
  • отчеты;
  • портал проекта (шаблон сайта SharePoint).

MSF for Agile Software Development ориентирован на использование итеративной и эволюционной модели процесса разработки и основан на сценариях использования.

3.3. Инструментальная поддержка MSF 4.0

У MSF 4.0 в отличие от предыдущих редакций появилась инструментальная поддержка в среде разработки Microsoft Visual Studio 2005 Team System. Фактически среда Visual Studio 2005 может выступать теперь в качестве интегрирующего средства, из которого можно работать со всеми инструментами, обеспечивающими стадии процесса разработки от создания планов проекта до проведения различных видов тестирования, включая создание и выполнение тестовых сценариев.

3.4. Источники информации

К сожалению, с источниками информации по MSF 4.0 дела обстоят несколько хуже, чем по третьей версии. Наиболее полную информацию на данный момент можно получить на http://www.microsoft.com/msf.

4. Формирование команды. Модель проектной группы MSF for Agile Software Development

В этом разделе6Основными источниками материалов раздела являются белая книга [4.3] и руководство [4.15] мы рассмотрим, наверное, самую главную из отличительных черт MSF в сравнении с другими методологиями - модель проектной группы и принципы, положенные в основу построения команды.

4.1. Основные принципы построения команды

Методология MSF считает, что успешная работа команды над проектом существенным образом зависит от ее структуры и распределения зон ответственности ролевых групп (более подробно о составе проектной группы далее) внутри команды. Построение команды в MSF соответствует ряду ключевых концепций (key concepts), часть которых кажутся самоочевидными, другие чем-то сродни "ноу-хау".

К самоочевидным можно отнести:

  • Концентрация на нуждах заказчика (customer-focused mindset) - главный приоритет любой хорошо работающей проектной группы. Означает обязательное понимание бизнес-задач заказчика и стремление к их решению со стороны команды. Не менее важным является активное участие заказчика в проектировании решения и получение его отзывов в ходе процесса разработки.
  • Нацеленность на конечный результат (product mindset) - каждый участник проектной группы должен рассматривать собственную работу в качестве самостоятельного проекта или же вклада в какой-либо больший проект. Установка на конечный продукт означает, что получению конечного результата проекта уделяется больше внимания, чем процессу его достижения. Из этого не следует, что сам процесс может быть плох или непродуман - просто он существует для получения конечной цели, а не ради себя самого.
  • Установка на отсутствие дефектов (zero-defect mindset) - это стремление к высочайшему уровню качества. Она означает, что цель команды - выполнение своей работы с максимально возможным качеством, в идеале таким образом, что если от команды потребуют поставить результат завтра, она будет способна поставить что-то работающее. В успешной команде каждый сотрудник чувствует ответственность за качество продукта. Она не может быть делегирована одним членом команды другому или же от одной ролевой группы другой.

Концепции, которые в определенном смысле можно отнести к "ноу-хау" методологии MSF:

  • "Проектная группа - команда равных" (teem of peers). Концепция означает равноправное положение каждой из ролей в команде. Чтобы достичь успеха в рамках команды равных, каждый из ее членов, независимо от роли, должен нести ответственность за качество продукта, понимать интересы заказчика и сущность решаемой бизнес-задачи. В то же время, принятие решения методом консенсуса между ролями не тождественно принятию решения методом консенсуса между сотрудниками. Каждая ролевая группа требует определенной организационной иерархии для распределения работы и управления ее ресурсами.
  • Стремление к самосовершенствованию (willingness to learn) - это приверженность идее неустанного саморазвития посредством накопления опыта и обмена знаниями. Оно позволяет членам проектной группы извлекать пользу из отрицательного опыта сделанных ошибок, равно как и воспроизводить успехи, используя проверенные методы работы других людей. По окончанию основных фаз проекта и по завершению проекта в целом предполагается проведение открытых обсуждений его состояния и доброжелательный, но объективный анализ.

К концепции команды равных в MSF тесно примыкает идея о том, что каждая ролевая группа имеет зону ответственности и защищает интересы заинтересованных лиц из этой зоны (более подробно об этом далее).

Модель проектной группы в MSF может масштабироваться в зависимости от числа участников.

4.2. Ролевые группы и роли

Методология MSF основана на постулате о качественных целях, достижение которых определяет успешность проекта. Эти цели обуславливают модель проектной группы. В то время как за успех проекта ответственна вся команда, каждая из ее ролевых групп, определяемых моделью, ассоциирована с одной из целей и работает над ее достижением.

MSF for Agile Software Development выделяет 7 ролевых групп [4.15]:

  • Управление программой (program management)
  • Архитектура продукта (architecture)
  • Разработка (development)
  • Тестирование (test)
  • Управление выпуском (release operations)
  • Удовлетворение потребителя (user experience)
  • Управление продуктом (product management)
Модель команды в MSF 4.0 - ролевые группы. Источник: MSF for Agile Software Development Process Guidance

Рис. 5.2. Модель команды в MSF 4.0 - ролевые группы. Источник: MSF for Agile Software Development Process Guidance

и 6 ролей [4.15]:

  • менеджер проекта (project manager) - ролевая группа Управление программой
  • архитектор (architect) - ролевая группа Архитектура
  • разработчик (developer) - ролевая группа Разработка
  • тестер (tester) - ролевая группа Тестирование
  • релиз-менеджер (release manager) - ролевая группа Управление выпуском
  • бизнес-аналитик (business analyst) - ролевые группы Управление продуктом и Удовлетворение потребителя
Модель команды в MSF 4.0 - роли. Источник: MSF for Agile Software Development Process Guidance

Рис. 4.3. Модель команды в MSF 4.0 - роли. Источник: MSF for Agile Software Development Process Guidance
4.2.1. Зоны ответственности ролевых групп

Каждая ролевая группа в команде имеет зону ответственности (advocacy), в которой роль из этой группы имеет решающий голос.

  • Управление программой - отвечает за управление проектом, за то, что ожидания заинтересованных сторон будут верно поняты и проведены через проект.
  • Архитектура продукта - отвечает за систему в целом, вырабатывает архитектуру решения, включая сервисы, технологии и стандарты, которые будут использованы в ходе работы над решением.
  • Разработка - отвечает за проектирование и осуществление реализации.
  • Тестирование - отвечает за качество решения с точки зрения заказчика и будущих пользователей.
  • Управление выпуском - отвечает за гладкое внедрение решения в инфраструктуру заказчика.
  • Удовлетворение потребителя - отвечает за понимание потребностей пользователей и их надлежащую реализацию в решении.
  • Управление продуктом - представляет бизнес-сторону проекта и обеспечивает его согласованность со стратегическими целями заказчика (успешное получение бизнес-отдачи от внедрения разрабатываемого решения, которое в результате сможет получить заказчик).
4.2.2. Задачи ролевых групп и взаимодействие с заинтересованными лицами

Для каждой ролевой группы, помимо зоны ответственности, определены заинтересованные стороны, как внутри, так и вне команды, с которыми группа должна взаимодействовать и чьи интересы представлять/отстаивать при принятии решений.

Управление программой

Ролевая группа выполняет следующие задачи:

  • управляет процессом разработки с целью получения готового продукта в отведенные сроки;
  • регулирует взаимоотношения и коммуникацию внутри проектной группы;
  • следит за временным графиком проекта и готовит отчетность о его состоянии;
  • разрабатывает, поддерживает и исполняет сводный план и календарный график проекта;
  • организует управление рисками.
< Лекция 3 || Лекция 4: 123 || Лекция 5 >