Технология Microsoft Solutions Framework (MSF)

Microsoft Solutions Framework – это методология разработки программного обеспечения от Microsoft. MSF опирается на практический опыт корпорации Microsoft и описывает управление людьмии рабочими процессами в процессе разработки решения.

MSF представляет собой согласованный набор концепций, моделей и правил.

В 1994 г., стремясь достичь максимальной отдачи от IT-проектов, корпорация Microsoft выпустила в свет пакет руководств по эффективному проектированию, разработке, внедрению и сопровождениюрешений, построенных на основе своих технологий. Эти знания базируются на опыте, полученном корпорацией при работе над большими проектами по разработке и сопровождению программногообеспечения, опыте консультантов Microsoft и лучшем из того, что«накопила» на данный момент IT-индустрия. Все это представленов виде двух взаимосвязанных и хорошо дополняющих друг другаобластейзнаний: MicrosoftOperationsFramework (MOF) иMicrosoftSolutions Framework (MSF).

MOF призван обеспечить организации, создающие критическиважные (mission-critical) IT-решения на базе продуктов и технологийMicrosoft, техническим руководством по достижению их надежности(reliability), доступности (availability), удобства сопровождения (supportability) и управляемости (manageability). MOF затрагивает вопросы, связанные с организацией персонала и процессов; технологиямии менеджментом в условиях сложных (complex), распределенных (distributed) иразнородных (heterogeneous) IT-сред. MOF основан на лучших производственных методиках, собранных в IT Infrastructure Library(ITIL), составленной Агентством правительства Великобритании (CentralComputerandTelecommunicationsAgency). Информация по MOFдоступна в Интернете по адресу http://www.microsoft.com/mof.

Создание бизнес-решения в рамках отведенных времени и бюджета требует наличия испытанной методологической основы. MSFпредлагает проверенные методики для планирования, проектирования, разработки и внедрения успешных IT-решений. Благодаря своейгибкости, масштабируемости и отсутствию жестких инструкций MSFспособен удовлетворить нужды организации или проектной группылюбого размера. Методология MSF состоит из принципов, моделейи дисциплин по управлению персоналом, процессами, технологическими элементами и связанными со всеми этими факторами вопросами, характерными для большинства проектов. Информация по MSFдоступна в Интернете по адресу http://www.microsoft.com/msf.

MSF состоит из двух моделей и трех дисциплин.

Модели MSF: 1) модель проектной группы; 2) модель процессов

Дисциплины MSF: 1) дисциплина «управление проектами»; 2) дисциплина «управление рисками»; 3)дисциплина «управление подготовкой.

Структура процессов MSF. Модель процессов MSF является компромиссной – она сочетает водопадную и спиральную модели жизненного цикла. Проект реализуется поэтапно с использованием необходимых контрольных точек. Сама же последовательность этапов можетповторяться по спирали. Схема этой модели представлена на рис. 19.3.

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

Технология Microsoft Solutions Framework (MSF) - student2.ru

Рис. 19.3. Этапы и контрольные точки модели процессов MSF

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

Создание общей картины приложения. На этом этапе решаютсяследующие основные задачи:

- определение состава команды;

- определение структуры проекта;

- определение бизнес-целей;

- оценка существующей ситуации;

- создание документа общей картины и области действия проекта;

- определение требований и профилей пользователей;

- разработка концепции решения;

- оценка риска;

- закрытие этапа.

На этом этапе выделяются две промежуточные контрольные точки: «Организован костяк команды» и «Создана общая картина решения».

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

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

Данный этап завершается контрольной точкой «Утверждение документа общей картины и области действия проекта».

Планирование. На этапе планирования команда решает, что нужно разработать, и формирует планы реализации продукта. Готовитсяфункциональная спецификация, создается проект решения, детализируются планы работы, выполняется оценка стоимости и сроковполучения результатов.

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

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

В ходе данного этапа решаются следующие задачи:

- разработка проекта и архитектуры решения;

- создание функциональной спецификации;

- разработка планов проекта;

- разработка календарного графика;

- создание среды разработки, тестирования и пилотной эксплуатации;

- закрытие этапа.

Контрольные точки этапа планирования связаны с достижениемследующих результатов:

- функциональная спецификация;

- план управления рисками;

- определение среды разработки и тестирования;

- генеральный план и календарный график проекта.

Результаты данного этапа служат для принятия компромиссныхрешений в дальнейшем.

Разработка. На этапе разработки создается решение, в том числепишется и документируется код. В начале этого этапа команда проверяет выполнение всех задач, характерных для предыдущих этапов, а затем приступает к решению следующих задач:

- создание прототипа приложения;

- разработка программных компонентов приложения;

- создание решения (последовательность ежедневных или более частых сборок приложения;

- закрытие разработки (реализация всех функций, поставка кода идокументации.

Результаты этапа предполагают следующие элементы:

- исходный текст кода и исполняемые файлы;

- сценарии установки и конфигурации для развертывания;

- окончательная функциональная спецификация;

- элементы поддержки решения;

- спецификации и сценарии тестирования.

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

Стабилизация. Данный этап – подготовка к выпуску окончательной версии продукта, доводка его до заданного уровня качества.

На этапе стабилизации выполняется комплекс работ по тестированию(обнаружение и устранение дефектов), а также проверяется сценарийразвертывания продукта и проводится пилотная эксплуатация.

Тестирование подразумевает следующие основные виды работ:

- тестирование компонентов;

- тестирование баз данных;

- тестирование инфраструктуры;

- тестирование защиты;

- тестирование интеграции;

- анализ удобства работы с продуктом;

- нагрузочное тестирование (включая анализ ресурсоемкости и производительности

- регрессивное тестирование;

- ведение отчетности по тестированию.

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

Один из главных показателей этапа стабилизации – число обнаруженных ошибок. Сходимость этой величины в сторону устойчивогоуменьшения – признак того, что близится завершение работ над продуктом. Важнейшая промежуточная контрольная точка – появлениеверсии, в которой усилиями самой проектной команды не обнаруженони одной ошибки. Затем следуют выпуски кандидат-релизов продуктадля их исследования в условиях пилотной эксплуатации.

Завершающаяконтрольная точка – «Подтверждение готовности продукта к выпускуи полноценному развертыванию в промышленной среде».

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

Основные контрольные точки данного этапа:

- развернуты основные компоненты;

- развернуто решение в целом;

- развернутое решение стабилизировано;

- решение развернуто и передано в эксплуатацию заказчику.

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

Комментарии по поводу этапов работ. В целом те же самые идеилежат в основе всех современных промышленных методологий разработки ПО (IBM/Rational, Borland, Microsoft и т. д.) – именно этимотличаются выверенные временем технологии от кустарного производства. Но в то же время в каждой методологии есть свой подходк выделению различных этапов разработки и зачастую используетсясобственная терминология, что усложняет проведение параллелеймежду ними. Эта проблема усугубляется отсутствием устоявшейсярусской терминологии.

Далее приведен общепринятый в настоящее время перечень ALMэтапов, которого, в частности, придерживаются Borland и Rational:

- Defining (определение требований);

- Designing (анализ и проектирование);

- Developing (разработка);

- Testing (тестирование);

- Deploying (развертывание).

Модель MSF предлагает немного другое подразделение на этапыи их наименования. Здесь речь идет не просто о разных названиях одних и тех же видов деятельности. Объективная проблема категоризациизаключается в том, что выделение самостоятельных этапов в жизненномцикле приложений условно, особенно если речь идет об итерационнойциклической модели разработки. Например, широкое использованиевизуальных методов проектирования с автоматической генерацией кодафактически стирает грань между проектированием и кодированием, а тестирование вообще пронизывает всю «жизнь» программы.

Имеются и субъективные факторы, которые определяются различиями стратегических бизнес-целей разных поставщиков методологий. Именно этим объясняется то, что Microsoft, основу бизнеса, которой составляют не средства разработки, а платформенное ПО, больше внимания (по сравнению с Rational и Borland) уделяет общим вопросам организации процесса создания приложений, а такжеих внедрению. Поэтому, например, этап Envisioning включает в себяопределение не только требований к ПО, но и состава команды (здесьсодержатся, в частности, рекомендации, касающиеся ролевой моделикоманды разработчиков, а также возможных вариантов совмещенияролей), а этап Stabilizing подразумевает не только собственно тестирование, но и фактически опытную эксплуатацию ПО, во время которой могут уточняться исходные требования заказчика.

Формирование проектных команд. Один из ключевых элементовреализации проекта – задача управления коллективом его участников.

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

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

Менеджер продукта (product manager) отвечает за управление связями с клиентом. На этапе проектирования он собирает требования заказчика и осуществляет контроль за тем, чтобы они соответствовали потребностям его бизнеса. Он также разрабатывает план взаимодействияс клиентом в ходе реализации проекта, в том числе организует встречис клиентом, демонстрации продукта и другие маркетинговые акции.

Менеджер программы (program manager) управляет собственноразработкой ПО и несет ответственность за его поставку в соответствии с утвержденными спецификациями.

Разработчик (developer) занимается разработкой ПО в соответствии с заданными спецификациями.

Тестировщик (tester) выявляет и устраняет все неполадки в продукте и дает окончательное разрешение на его выпуск. Он такжеоценивает соответствие набора реализованных в продукте функцийобщей концепции и области действия проекта.

Менеджер по выпуску (release manager) отвечает за развертываниеи поддержку продукта, проверяет корректность ИТ-инфраструктурызаказчика на предмет ее готовности к эксплуатации ПО.

Специалист по удобству использования (user experience specialist) занимается изучением и решением проблем пользователей, оцениваетпродукт с точки зрения соответствия их потребностям.

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

Наши рекомендации