Спонсор: Microsoft
Опубликован: 15.01.2013 | Доступ: свободный | Студентов: 1227 / 228 | Длительность: 08:58:00
Специальности: Программист
Лекция 3:

Процессы командной разработки программного обеспечения MSF

< Лекция 2 || Лекция 3 || Лекция 4 >
Аннотация: Рассматривается методология разработки программного обеспечения Microsoft Solutions Framework (MSF), которая описывает управление людьми и рабочими процессами при разработки ИТ-решений. Приводятся принципы создания библиотеки MSF. Показано, что методология MSF базируется на сочетании двух моделей жизненного цикла программных систем: каскадной и спиральной. Отмечается, что в основе методологии MSF лежит итеративный интегрированный подход к созданию и внедрению решений, базирующийся на фазах и вехах. Рассматривается модель команды в MSF, ролевые кластеры, вопросы масштабируемости команд MSF и управление компромиссами.

Презентацию к данной лекции Вы можете скачать здесь.

Цель лекции:

Получить представление о методологии компании Microsoft для создания ИТ-решений.

Введение

Microsoft Solutions Framework (MSF) является методологией разработки ПО, которая представляет собой обобщение лучших проектных практик, которые использовались командами разработчиков Microsoft. Данная методология описывает управление людьми и рабочими процессами при разработке ИТ-решений.

ИТ-решение - понимается как скоординированная поставка набора элементов (таких как программные средства, документация, обучение и сопровождение), необходимых для удовлетворения бизнес-потребности конкретного заказчика.

Концепция управления жизненным циклом приложений, принятая разработчиками ПО, привела к тому, что методология MSF стала составной часть продукта Visual Studio Team System (VSTS), который реализовывал подходMicrosoft в плане - ALM. В продукт VSTS вошли шаблоны процессов для реализации положений модели CMMI - MSF for CMMI и моделей гибкой разработки ПО - MSF for Agileи Scrum. Таким образом, VSTSявляются инструментарием управления жизненным циклом приложений, который позволяет создавать программные системы различного назначения в командах, придерживающихся различных подходов к управлению процессами разработки ПО.

Основными являются следующие принципы MSF.

  1. Единое видение проекта, которое предполагает понимание всеми заинтересованными лицами целей и задач создания ПО.
  2. Гибкость - готовность к переменам, что обеспечивает возможность уточнения и изменения требований в процессе разработки ПО, оперативного и быстрого реагирования на текущие изменения условий проекта при неизменной эффективности управленческой деятельности.
  3. Концентрация на бизнес-приоритетах, что предполагает создание продукта с высоким потребительским качеством и формирование определенной выгоды или отдачи. Для организаций, как правило, это получение прибыли.
  4. Поощрение свободного общения, что предполагает открытый и честный обмен информацией как внутри команды, так и с ключевыми заинтересованными лицами.

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

Модель MSF базируется на сочетании двух моделей жизненного цикла программных систем: каскадной и спиральной (см. рис. 2.1).

Модель жизненного цикла решения MSF

Рис. 2.1. Модель жизненного цикла решения MSF

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

Итеративность подхода предусматривает поэтапное создание работоспособной программной системы с определенной функциональностью, отражающей требования к конечному продукту на данном этапе разработки. Каждый виток спирали состоит из идентичных фаз, на которых выполняются этапы работ по формированию концепции фазы, планированию, разработке, стабилизации и внедрению. Набор требований программной системы и соответствующих им задач, которые реализуются на заданном витке спирали, определяется менеджером проекта на основе ранжирования требований к системе. Каждый последующий виток спирали добавляет к программной системе функциональность, отражающую требования заказчика.

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

Фазы проекта определяют последовательно решаемые задачи, а вехи (milestones) - ключевые точки проекта, характеризующие достижение какого-либо существенного результата.

В MSF используются два вида вех: главные и промежуточные. Они имеют следующие характеристики:

  • главные вехи служат точками перехода от одной фазы к другой и определяют изменения в текущих задачах ролевых кластеров проектной команды; в MSF главные вехи являются в достаточной степени универсальными для применения в любом ИТ проекте;
  • промежуточные вехи показывают достижение определенного прогресса в исполнении фазы проекта и расчленяют большие сегменты работы на меньшие, обозримые и управляемые участки; промежуточные вехи могут варьироваться в зависимости от характера проекта.

Модель команд

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

Такое возможно при высоком уровне самосознания и заинтересованности каждого члена команды, а также при достаточно высоком уровне профессионализма.

Одной из особенностей отношений внутри команды является высокая культура дисциплины обязательств:

  • готовность работников принимать на себя обязательства перед другими;
  • четкое определение тех обязательств, которые они на себя берут;
  • стремление прилагать должные усилия к выполнению своих обязательств;
  • готовность честно и незамедлительно информировать об угрозах выполнению своих обязательств.

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

В MSF следующие ролевые кластеры:

Управление продуктом Основная задача кластера- обеспечить, чтобы заказчик остался довольным в результате выполнения проекта. Этот ролевой кластер в проекте представляет интересы заказчика. Он представляет бизнес-сторону проекта и обеспечивает его согласованность со стратегическими целями заказчика.
Управление программой Кластер обеспечивает управленческие функции - отслеживание планов и их выполнение, ответственность за бюджет, ресурсы проекта, разрешение проблем и трудностей процесса, создание условий, при которых команда может работать эффективно, испытывая минимум бюрократических преград.
Разработка Кластер обеспечивает разработку кода приложения.
Тестирование Кластер отвечает за тестирование ПО.
Удовлетворение потребителя Кластер решает задачи пользовательского дизайна приложения и обеспечения удобства эксплуатации ПО, обучение пользователей работе с ПО, создание пользовательской документации.
Управление выпуском Кластер отвечает за внедрение проекта и его функционирование, берет на себя связь между разработкой решения, его внедрением и последующим сопровождением, обеспечивая информированность членов проектной группы о последствиях их решений.
Архитектура Кластер отвечает за организацию и выполнение высокоуровневого проектирования решения, создание функциональной спецификации ПО и управление этой спецификацией в процессе разработки, определение рамок проекта и ключевых компромиссных решений.

Изменения в задачах ролевых кластеров проектной команды происходят по мере смены фаз проекта. Переход от одной фазы к другой включает в себя также перенос основной ответственности от одних ролевых кластеров к другим, как показано в таблице 2.1.

Таблица 2.1. Распределение ответственности ролевых кластеров
Веха Ведущие ролевые кластеры
Концепция утверждена Управление продуктом
Планы проекта утверждены Управление программой
Разработка завершена Разработка, удовлетворение потребителя
Готовность решения утверждена Тестирование, управление выпуском
Внедрение завершено Управление выпуском

Масштабирование команды MSF

В зависимости от размера и сложности проекта модель команд MSF допускает масштабирование. Для небольших и несложных проектов один сотрудник может объединять несколько ролей. При этом некоторые роли нельзя объединять. В таблице 2.2 представлены рекомендации MSF относительно совмещения ролей в рамках одним членом команды. "+" означает, что совмещение возможно, "+-" - что совмещение возможно, но нежелательно, "-" означает, что совмещение не рекомендуется.

Таблица 2.2. Рекомендации MSF относительно совмещения ролей в команде проекта
Управление продуктом Управление программой Разработка Тестирование Удовлетворение потребителя Управление выпуском Архитектура
Управление продуктом - - + + +- -
Управление программой - - +- +- + +
Разработка - - - - - +
Тестирование + +- - + + +-
Удовлетворение потребителя + +- - + +- +-
Управление выпуском +- + - + +- +
Архитектура - + + +- +- +

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

Для больших команд (более 10 человек) модель проектной группы MSF предлагает разбиение на малые многопрофильные группы направлений. Эти малые коллективы работают параллельно, регулярно синхронизируя свои усилия, каждая из которых устроена на основе модели кластеров. Такие команды имеют четко определенную задачу и ответственны за все относящиеся к ней вопросы, начиная от проектирования и составления календарного графика.

Кроме того, когда ролевому кластеру требуется много ресурсов, формируются так называемые функциональные группы, которые затем объединяются в ролевые кластеры. Они создаются в больших проектах, когда необходимо сгруппировать работников внутри ролевых кластеров по их областям компетенции. Часто функциональные группы имеют внутреннюю иерархическую структуру. Например, менеджеры программы могут быть подотчетны ведущим менеджерам программы, которые в свою очередь отчитываются перед главным менеджером программы. Подобные структуры могут также появляться внутри областей компетенций.

Управление компромиссами. Хорошо известна взаимозависимость между ресурсами проекта (людскими и финансовыми), его календарным графиком (временем) и реализуемыми возможностями (функциональность). Эти три переменные образуют треугольник, показанный на рис. 2.2.

Треугольник компромиссов

Рис. 2.2. Треугольник компромиссов

После достижения равновесия в этом треугольнике изменение на любой из его сторон для поддержания баланса требует модификаций на другой (двух других) сторонах и/или на изначально измененной стороне.

В проектной практике может фиксироваться один из ресурсов, тогда в процессе проектирования системы измерению подлежат только два оставшихся ресурса. Данная ситуация задается матрицей компромиссов, которая приведена на рис. 2.3. Так, если фиксируются ресурсы, то время выполнения проекта согласовывается, а функциональные возможности подлежат изменению.

Матрица компромиссов

Рис. 2.3. Матрица компромиссов

Ключевые термины

IT решение скоординированная поставка набора элементов, необходимых для удовлетворения бизнес-потребности конкретного заказчика.
Итеративный подход поэтапное создание работоспособной программной системы с определенной функциональностью, отражающей требования к конечному продукту на данном этапе разработки.
Интегрированный подход позволяет представлять заказчику различные промежуточные работоспособные версии программного продукта, оперативно вносить изменения, снизить риски проекта.
Фазы проекта последовательно решаемые задачи проекта.
Вехи проекта ключевые точки проекта, характеризующие достижение какого-либо существенного результата.
РолевойкластерУправление продуктом ролевой кластера модели MSF, предназначенный для обеспечения удовлетворения заказчика результатом выполнения проекта.
РолевойкластерУправление программой ролевой кластера модели MSF, предназначенный для отслеживания выполнения планов, бюджета, ресурсов проекта.
РолевойкластерРазработка ролевой кластера модели MSF, предназначенный для обеспечения разработки кода приложения.
РолевойкластерТестирование ролевой кластера модели MSF, предназначенный длятестирования ПО.
РолевойкластерУдовлетворение потребителя ролевой кластера модели MSF, предназначенный обеспечения удобства эксплуатации ПО.
РолевойкластерУправление выпуском ролевой кластера модели MSF, который отвечает за внедрение проекта и его функционирование.
Ролевой кластер Архитектура ролевой кластера модели MSF, который отвечает заорганизацию и выполнение высокоуровневого проектирования решения.

Краткие итоги

Microsoft Solutions Framework является методологией разработки ПО, которая представляет собой обобщение лучших проектных практик, которые использовались командами разработчиков Microsoft. ИТ-решение представляет собой скоординированную поставку набора элементов, необходимых для удовлетворения бизнес-потребности конкретного заказчика. Методология MSF является составной часть продукта Visual Studio Team System. Модель MSF базируется на сочетании двух моделей жизненного цикла ПО: каскадной и спиральной. В основе методологии MSF лежит итеративный интегрированный подход к созданию и внедрению ИТ-решений, базирующийся на фазах и вехах. В модели команды MSF нет официального лидера, а все отвечают за проект в равной степени. Ролевые кластеры MSF основаны на семи качественных целях, достижение которых определяет успешность проекта. В зависимости от размера и сложности проекта модель команд MSF допускает масштабирование. Управление компромиссами основано на балансе функциональности, времени и ресурсах проекта.

Набор для практики

Вопросы

  1. Как определяет понятие "ИТ-решение" компания Microsoft?
  2. Назовите основные принципы MSF.
  3. Чем определяется универсальность модели MSF?
  4. Какая модель цикла программной системы используется в MSF?
  5. В чем состоит итеративность методологии MSF?
  6. Поясните назначение интеграции в методологии MSF?
  7. В чем проявляется высокая культура дисциплины обязательств методологии MSF?
  8. Назовите ролевые кластеры модели команд методологии MSF.
  9. Как можно масштабировать команду, использующую методологию MSF?
  10. Поясните назначение треугольника компромиссов.

Упражнения

  1. Проведите анализ облачных решений по управлению жизненным циклом приложений.
  2. Проведите сравнительный анализ потребительского качества методологии MSF и решение компании HP по управлению жизненным циклом приложений.
  3. Проведите сравнительный анализ потребительского качества методологии MSF и решение компании IBM по управлению жизненным циклом приложений.
< Лекция 2 || Лекция 3 || Лекция 4 >
Мария Морозова
Мария Морозова

Здравствуйте!

В диалоговом окне Добавить Team Foundation Server введите имя или URL-адрес сервера TFS. Ввожу как в инструкции localhost, выдает ошибку, что невозможно соединиться с сервером. Что делать? Никакого администратора нет, что вводить?