Модели Microsoft Solution Framework

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

 

Team model

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

 

Роль Описание
Product Management Связь с клиентом. Должен понимать для чего нужен продукт, кто его будет использовать и.т.д. Составляет бизнес-правила. Объясняет всем участникам проекта, что надо собственно делать.
Program Management Выработка решения, позволяющего получить нужный продукт в нужное время. Гарантирует оответствие продукта стандартам организации и правильную его работу в сетевой структуре организации.
Development Программирование проекта.
Testing Тестирование проекта.
User Education Обучение пользователей.
Logistics Инсталляция продукта. Переход на навые версии и.т.д.

Основные задачи группы разработчиков

Ключевая задача Роль в группе
Работать в рамках ограничений, наложенных на проект. 
(В первую очередь имеется в виду бюджет и сроки)
Program Manager
Выполнить задачу согласно требованиям клиента Development
Клиент должен быть доволен Product Manager
Увеличить работоспособность пользователя User Education
Выпускать проект только после устранения всех недоделок Testing
Обеспечить беспроблемную инсталляцию продукта и его техническую поддержку Logistics

В случае, если количество участников в группе разработчиков меньше количества ролей, роли могут совмещатся. Но существует два ограничения при совмещении ролей:

Зависимость ролей от внешних факторов

Роль Внешняя группа Причина
Product Management Customer
Senior management
Зависит от клиента, так как должен узнавать от него требования к проекту. 
Program Management Customer Создает функциональную спецификацию которая отвечает требованиям клиента.
Development None Избежание перебоев в работе, что может сказаться на ее качестве.
Testing None Избежание перебоев в работе, что может сказаться на ее качестве.
User Education End User Гарантирует, что пользователь сможет работать с продуктом.
Logistics Management Operations and support groups Обучает группу поддержки.

Business case

Business case - это план действий, который представляется главному менеджеру менеджером продукта. Состоит из следующих частей:

Должен меняется в ходе разработки проекта и всегда отражать реальное состояние проекта.

 

 

Process model

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

Достижение компромисов с клиентом. Установка приоритетов.

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

Например. Если клиент хочет добавить несколько новых характиристик в проект, то соответственно должны быть пересмотрены сроки и ресурсы.

Для установки приоритетов обычно составляется матрица компромисов, которая выглядит следующим образом

 

  Optimize Constrain Accept
Ресурсы      
Сроки    
Характеристики    

В каждой строке должен обязательно стоять один крестик. Важно, чтобы колонка Accept была помечена хотя бы в одной строке.

 

 

Application model

Предназначена для конструирования архитектуры приложения. Описывает компоненты (COM) из которых будет состоять приложение и способы их взаимодействия. Приложение разбивается на множество потребителей (consumer) и поставщиков (supplier). Потребитель использует службы (services) предлагаемые поставщиком. Служба - это часть логики приложения выполняющая операцию, функцию или еще какое преобразование объектов. 

Каждое приложение представляется совокупностью трех уровное служб:

Modular design

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

 

Solution design model

"Дайте людям то что они хотят" - девиз этой модели. Модель помогает команде разработчиков предвидеть потребности пользователя путем включения его в разработку модели.  Включает в себя 3 проекции (perspective).

 

Enterprise Architecture model

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

 

Infrastructure model

Описывает все ресурсы, необходимые для поддержки технической инфраструктуры.

 

TCO (Total Cost of Ownership) model

Оптимизация ресурсов, направленная на минимизацию стоимости проекта.

Факторы, которые могут быть оптимизированы:

Для оптимизации вышеперечисленных факторов модель применяет 3-х этапную модель. Этапы выполняются последовательно.

 

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

Project Model
standard desktop Team
Process
Infrastructure
TCO
Планирование сетевой архитектуры Team
Process
Enterprise Architecture
Infrastructure
TCO
Построение intranet Team
Process
Enterprise Architecture
Infrastructure
Internet приложение Team
Process
Solution Design
Application
Infrastructure
Инфраструктура сообщений Team
Process
Enterprise Architecture
Infrastructure
Сайт электронной коммерции Team
Process
Solution Design
Enterprise Architecture
Infrastructure