MSF дополняется методологией Microsoft Operation Framework, которая нацелена на работу с существующими программными решениями. Сегодня достаточно актуальной является версия 4.0 Microsoft Solution Framework, но уже больше 10 лет существует MSF и накоплен большой опыт программных проектов (негативный и позитивный). Также, как в Rational Unified Process, существует целый ряд инструментов: визуальных, проектирования, реализации, тестирования и сопровождения, у Microsoft существует средства, которые ориентированы на MSF и поддерживают жизненный цикл программного обеспечения. Это прежде всего Visual Studio, поддерживающий репозиторий проектов на разных языках, визуальное проектирование, описание метаданных проекта, компонентное проектирование (поддержание механизма сборок), безопасное проектирование (каждая сборка идентифицируется цифровой подписью автора), производство программного обеспечения, средства, основанные на веб-сервисах. Эти средства поддерживают командную работу. Уже было сказано о программировании в малом, т. е. об искусстве программирования, и также о программировании в большом, о программной инженерии, технологии производства большого программного обеспечения. Также речь шла о программировании в массе, о командной разработке, где каждый разработчик обладает какой-то ролью, все они должны координироваться в проекте, и необходимо отслеживать соответствие версий. Весь этот сложный функционал берет на себя CASE-средство, в нашем случае Visual Studio.
Нужно сказать, что в основе проектирования как в MSF, так и RUP лежат процессы. И существуют две готовые модели, которые называются Agile и Formal. Они призваны поддерживать построение как небольших программных продуктов, так и больших.
Рассмотрим основные элементы, которые включает MSF. Прежде всего существуют базовые принципы и лучшие практики, которые во многом похожи, но имеют свои особенности. Внутри формируются модели, поддерживающие разработку в команде. Технологии разработки корпоративных информационных систем неосуществимы без грамотной координации и постановки процессов. Microsoft обладает огромным опытом сопровождения программных проектов (существуют средства онлайного сопровождения, большое количество центров и т. д.). У Microsoft также самая большая база знаний по взаимодействию с пользователями. Естественно, существует целый ряд документов, которые описывают дисциплины управления проектами, поскольку в рамках MSF существуют ключевые понятия проекта, менеджера проекта, менеджера продуктов, процедуры управления рисками, разрешения рисков (для этого используется матрица противоречий). Кроме того, существуют наборы практических рекомендаций для той или иной модели, которая применяется для решения задач, связанных с проектированием информационных систем. Если говорить о моделях Agile или Formal, здесь своя специфика, но каждая из них ориентирована на командную разработку, четкое разделение ролей и тесное взаимодействие. Очень важно, что в отличие от RUP и целого ряда других методологий MSF предполагает относительное равенство прав для ролей в проекте. Голос рядового разработчика может быть услышан наряду с голосом менеджера проекта. Учет мнения каждого участника проекта принимается во внимание. Организация потоков работ и активностей, которые составляют эти потоки, похожа на ту, что обсуждалась при разговоре о RUP. Своя специфика связана с отчетами о выполнении рабочих заданий, которые составляют активности. Эти задания включают целый ряд состояний и достаточно обширные отчеты, которые объединяют большое количество различных полей, чтобы сформировать представление о том, в какой степени задание завершено. Более формальная реализация Microsoft Solution Framework Formal включает большее число артефактов, расширенный набор документации и ролей. Эта модель в большой степени подходит для разработки корпоративных приложений.
На рис. 5.5 представлено, каким образом связаны элементы в Microsoft Solution Framework, и те принципы, которые лежат в основе этого подхода. Основными моделями, используемыми в этом подходе, являются проектные модели, а ключевым принципом методологии – управление рисками. При этом определение и мониторинг ключевых факторов риска выступают важной практической особенностью MSF. Существуют рекомендации построения базы данных, которые отслеживают результаты оценки рисков. Кроме того, важен учет знаний, накапливающихся во время выполнения проектов. Обзоры по завершении каждого этапа процессов ложатся в базу данных, которая учитывается при выполнении последующих проектов.
Рис. 5.5. Связь между элементами MSF