Development in MSF

Post on 27-Jun-2015

71 views 4 download

Transcript of Development in MSF

Методология разработки программного обеспечения Microsoft

Андрей А. Терехов

Московское представительство Microsoft

e-mail: andreyte@microsoft.com

Успешные проекты нечасты в ИТ

Статистика по 30,000 проектам по разработке ПО в американских компаниях.

Источник: The Standish Group International, Extreme Chaos, The Standish Group International, Inc., 2000

Успешные проекты – вовремя и в рамках бюджета был выполнен весь намеченный фронт работ.

Проблемные – не уложились в сроки, перерасходовали бюджет и/или сделали не все, что требовалось.

Проваленные – не были доведены до конца.

2000

1998

1995

1994

28%23% 49%

26%28% 46%

27%40% 33%

16%31% 53%

УспешныеПроблемныеПроваленные

Microsoft Solutions Framework (MSF)

• Причиной появления MSF стало осознание в Microsoft проблем в собственном процессе разработки ПО

• Первоначальная версия MSF увидела свет в 1994 г.

• В 2002 г. была опубликована последняя версия MSF (v3.0)

• MSF является частью более широкого набора методологий от Microsoft

MSF и MOF

• MSF = Microsoft Solutions Framework– Подход Microsoft к управлению

ИТ-проектами:• Проекты разработки ПО• Проекты развертывания инфраструктуры

• MOF = Microsoft Operations Framework– Подход Microsoft к управлению

ИТ-процессами (операциями) на предприятии

MSF и MOF

Microsoft Operations Framework

Microsoft Solutions Framework

Эксплуатируем

ЭксплуатируемВ

нед

ряе

м

Вн

едр

яем

СоздаемСоздаем

Пл

ани

руе

м

Пл

ани

руе

м

Структура MSF

Модель Процессов

Модель Проектной

Группы

Дисциплина управленияПроектами

ДВЕ МОДЕЛИ

ТРИ ДИСЦИПЛИНЫ

Дисциплина управленияРисками

Дисциплина управления

Подготовкой

Модель проектной группы

Бизнес-приоритетыМаркетингПредставление интересов заказчикаПланирование продукта

Управление проектомВыработка архитектуры решенияКонтроль производственного процессаАдминистративные службы

Технологическое консультирование Проектирование и осуществление реализацииРазработка приложенийРазработка инфраструктуры

Планирование тестовРазработка тестовОтчетность по тестам

ИнфраструктураСопровождениеБизнес-процессыУправление выпуском готового продукта

ОбучениеЭргономикаГрафический дизайнИнтернационализацияОбеспечение технической поддержкиОбщедоступность (обеспечение возможности работы для пользователей с ограниченными физическими возможностями)

РазработкаРазработка

ТестированиеТестирование

Управление выпуском

Управление выпуском

Удовлетворениепотребителя

Удовлетворениепотребителя

Управление продуктом

Управление продуктом

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

В MSF нет роли “менеджер проекта”

Лидеры групп

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

Управление продуктом

Разработка

Тестирование

Удовл. потребителя

Управление выпуском

Управление ка

чест

вом

Управление риск

ами

Управление сн

абжением

Управление пе

рсоналом

Управление ко

ммуника

цией

Управление ст

оимостью

Управление ка

лендарным графико

м

Управление рамка

ми проект

а

Планирование и м

ониторинг

на уровне всего проекта на уровне подгрупп

Деятельность по управлению проектом распределяется между лидерами группи ролевым кластером“Управление программой”

Характеристики проектной группы MSF

• Команда соратников (команда равных)• Наличие единого видения проекта (shared vision)• Распределение ответственности при

одновременной фиксации отчетности• Нацеленность на необходимый заказчику

конечный результат• Наличие у сотрудников необходимых полномочий• Открытое общение• Установка на отсутствие дефектов• Стремление к самосовершенствованию• Гибкость и готовность к переменам• Заинтересованность и энтузиазм

Внешние связи проектной группы

Технологические цели

Бизнес-целиПользователи

Планированиебизнеса

Заказчик

Технологическая архитектураСтратегическое планирование

Группы эксплуатации

и сопровождения

Пользователи

Проектная группа

Удовл.потребителя

Разработчик

Тестер

Управл.выпуском

Менеджерпродукта

Менеджерпрограммы

Масштабирование модели проектной группы

• В одном ролевом кластере может быть много людей

• Один человек может взять на себя несколько ролей

• Большие коллективы:– Создаем группы направлений– Создаем функциональные группы

• Малые коллективы:– Используем таблицу совместимости ролей

Большой коллектив

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

Управление выпуском

Управление выпуском

Управление продуктом

Управление продуктом

Удовлетворение потребителя

Удовлетворение потребителя

РазработкаРазработка

ТестированиеТестирование

Руководящая Руководящая группагруппа

Разработка клиентских компонент

(группа направления)

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

Удовлетворение потребителя

Удовлетворение потребителя

РазработкаРазработка

ТестированиеТестирование

Разработка Разработка средств печати средств печати

(группа направления)(группа направления)

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

Удовлетворение потребителя

Удовлетворение потребителя

РазработкаРазработка

ТестированиеТестирование

Разработка средств Разработка средств обмена сообщениямиобмена сообщениями(группа направления)(группа направления)

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

Удовлетворение потребителя

Удовлетворение потребителя

РазработкаРазработка

ТестированиеТестирование

Удовлетворение потребителя

(функциональная группа)

Лидер группы

-

- -

-

-

-

-

-

-

- - -

+

+

+

+

+

+

+

+

+

+

±

±

±

±

± ±

±

±

+ Допустимо ± Нежелательно - Нельзя

Управление Управление продуктомпродуктом

Управление Управление продуктомпродуктом

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

Управление Управление выпускомвыпуском

Управление Управление выпускомвыпуском

Управление Управление продуктомпродуктом

Управление Управление продуктомпродуктом

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

РазработкаРазработкаРазработкаРазработка

ТестированиеТестированиеТестированиеТестирование

Удовлетворение Удовлетворение потребителяпотребителя

Удовлетворение Удовлетворение потребителяпотребителя

Управление Управление выпускомвыпуском

Управление Управление выпускомвыпуском

РазработкаРазработкаРазработкаРазработка ТестированиеТестированиеТестированиеТестирование Удовлетворение Удовлетворение потребителяпотребителя

Удовлетворение Удовлетворение потребителяпотребителя

Таблица совместимости ролей

Минимальный коллектив

Удовлетворение потребителя

Удовлетворение потребителя

Управление продуктомУправление продуктом

ТестированиеТестирование

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

Управлениевыпуском

Управлениевыпуском

РазработкаРазработка

Модель процесса разработки

Планы проекта утверждены

Разработка завершена

Готовность решения утверждена

Внедрение завершено

Концепция проекта утверждена

Выработка

концепцииВнедр

ение

Разработка

Пл

анир

ован

иеС

табилизация

Итеративный подход

Время

Фун

кци

он

аль

но

сть

Минимизируем риски, разбивая большие проекты на несколько версий

Версия 1

Версия 2

Версия 3

Промежуточные вехи

Планы проекта утверждены

Разработка завершена

Готовность решения утверждена

Внедрение завершено

Концепция проекта утверждена

Пилотное внедрение завершено

Контрольное тестирование завершено

Версии-кандидаты

Тестирование приемлемости для потребителей завершено

Точка достижения нуля

Точка конвергенции

Верификация технологий осуществлена

Базовая версия функциональной спецификации создана

Базовая версия сводного плана проекта создана

Базовая версия сводного календарного графика проекта создана

Среды разработки и тестирования развернуты

Внедренное решение стабилизировано

Внедрение на местах завершено

Ключевые компоненты развернуты

Ядро проектной группы сформировано

Черновой вариант концепции проекта составлен

Концепция подтвержденаПромежуточная версия 1 завершена

Промежуточная версия 2 завершенаПромежуточная версия N завершена

Конвейер cборки программы

• Задача:– Необходимость обеспечить параллельную работу

многих разработчиков

• Проблемы:– Изменения разрушают сделанное ранее– Множественность и подвижность участников

разработки => отсутствие цельного видения у отдельных разработчиков

– Изменчивость платформ, средств разработки и смежных программ в процессе разработки

Технологические принципы

• Поддержание целостности сборки (build)

• Авто-тестирование сборки (automation)

• Линейная последовательность внесения изменений

Как это происходит

• Основа – система управления версиями (source code control)

• Подготовка изменения: check-out, кодировка, отладка, проверка, структурный просмотр

• Постановка изменения в очередь – вход в конвейер

• Принятие изменения: компиляция, функциональная проверка, проверка производительности, занесение в базу или отвержение, оповещение

Структура конвейера

• Классический конвейер:

• Конвейер программной сборки:

Конвейер программной сборки

• Огромные аппаратные затраты – до 1,000 компьютеров на небольшую команду (30 чел.)

• Построение программы:– 2 (2+) супермашины – debug & retail builds

• Функциональная проверка:– 100-200 машин – параллельный прогон функциональных

авто-тестов

• Проверка производительности:– 200-300 машин – параллельные группы тестов

производительности

• Приемка в главную базу данных

Обслуживание конвейера

• Клиент on-line монитора:– Текущий статус очереди– Изменение приоритетов, досрочное снятие– Ход исполнения построения и сборки

• Супервизор очереди:– Раннее обнаружение конфликтов– Слияние изменений

• Сервер авто-тестирования:– Освобождение клиентского ресурса– Сертификация изменения для ввода в конвейер

Результат конвейера

• Постоянное поддержание действующей сборки:– за счет незначительного усложнения

индивидуальных изменений– группа никогда не заблокирована в

дальнейшей разработке– при постоянном гарантированном контроле

качества сборки

Типичный сценарий выпуска ПО

BetaBug Convergence

Zero-Bug Release

Release Candidate

Golden Release

Release

0

ActiveBugs

Time

Дисциплина управления проектами

• Проект (project) – ограниченная временными рамками деятельность, цель которой состоит в создании уникального продукта или услуги

• Управление проектами (project management) – это область знаний, навыков, инструментария и приемов, используемых для достижения целей проектов в рамках согласованных параметровкачества, бюджета, сроков и прочих ограничений

Ресу

рсы Время

Возможности

Управление изменениями

Фиксируется

Фиксируется

Согласовывается

Согласовывается

Принимается

Принимается

РесурсыРесурсы

ВозможностиВозможности

ВремяВремя

• Мы не можем избежать изменений в проекте

• Но мы можем заранее договориться о приоритетах,которыми будем руководствоваться при реагировании на изменения

• Для этого используется матрица компромиссов

ОпределениеОпределение

Дисциплина управления подготовкой

Знания, умения,

способности

Знания, умения,

способности

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

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

ОцениваниеОценивание

Осмысление

Осмысление

MSF как концепция

• Например, для организации процесса производства ПО можно использовать MSF и при этом применять инструменты Borland

• Более того, MSF не навязывает даже конкретную методологию разработки программного обеспечения (как, например, RUP)

• MSF – это концепция (framework), применимая в самом широком наборе случаев

Доступность стандартов, знание которых требуется от ИТ-менеджера

Бесплатныйдоступ

Платный доступ

Есть русский перевод

MSFнекоторые

стандарты ISO, PMBOK**, ITIL***

Только английский

вариант

MOF, CMMI, SWEBOK*,

стандарты OMG

RUP***, стандарты IEEE,стандарты ISO

MSF и ...• PMI PMBOK

– Whitepaper “MSF and the Project Management Body of Knowledge”– http://www.webster.edu/~dlorenc/PMPStudy/Library/MSFandthePMBOK.doc

• RUP– Whitepaper “Microsoft Solutions Framework and The Rational

Process”– http://www.rational.com/media/whitepapers/msfratprcs.rtf

• CMM– Whitepaper “Microsoft Solutions Framework and the Capability

Maturity Model”– http://www.aurelian.ro/MSF/RESOURCE_KIT-PAD/papers/MSFAndTheCapMaturityModel.doc

Перечисленные документы ссылаются на предыдущие версии MSF, однако общую картину этот факт не меняет

Сравнение RUP, MSF и CDM

Производитель

Продукт ЦенаДопустимыетехнологии и инструменты

Маркетинг

IBMRational Unified Process

~ $700Любые, но акцент на Rational Suite

Ведется активно

MicrosoftMicrosoft Solutions

Framework$ 0 Любые

Практическине ведется

OracleCustom

Development Method

~ $ 1500*~ $ 2500**

OracleПрактическине ведется

Материалы по MSF

• На английском языке– http://www.microsoft.com/msf – http://www.microsoft.com/traincert/mcp/msf

• MCT могут получить доступ к учебникам и презентациям курсов 1846 и 2710 черезMCT Download Center:https://partnering.one.microsoft.com/mct

• Не MCT могут прослушать эти курсы в СТЕС. В стоимость курса входит комплект материалов

• На русском языке– http://www.microsoft.com/rus/msf

Шаблоны и примеры документов

• Есть только на английском языке• Шаблоны доступны бесплатно на

http://download.microsoft.com – Нужно сделать поиск

по ключевому слову MSF

• Детальные примеры входят в студенческий комплект материалов курса 2710– В т.ч. UML диаграммы (промежуточные

и окончательные версии)

Курс 1846

• Microsoft Solutions Framework Essentials

• 3 дня, компьютеры не используются

• Изучаются все элементы MSF

• Великолепные деловые игры• http://www.microsoft.com/traincert/syllabi/1846Afinal.asp

Курс 2710

• Analyzing Requirements and Defining Microsoft .NET Solution Architectures

• 5 дней, компьютеры используются

• Подробно изучается фаза планирования для проектов разработки ПО (application development)

• http://www.microsoft.com/traincert/syllabi/2710bfinal.asp

Экзамен 74-100

• Microsoft Solutions Framework Practitioner Endorsement Exam

– 70 вопросов– 90 минут– Проходной балл – 70% (49 вопросов)– Язык - английский

• Не является частью программы MCP• Можно сдавать только через Prometric

– http://www.2test.com

• В СНГ стоимость экзамена - $50, в США - $125• В мире сегодня – 266 MSF Practitioners

– В России – 4– На Украине – 2

• http://www.microsoft.com/technet/itsolutions/tandp/innsol/banmsfpro/default.asp

Заключение

• MSF представляет собой обобщение опыта управления ИТ-проектами, накопленного в Microsoft

• MSF состоит из двух моделей и трех дисциплин, описание которых доступно на русском языке на сайте http://www.microsoft.com/rus/msf

• MSF – это набор рекомендаций, которые можно применять выборочным образом

• Наиболее революционная часть MSF – это модель команды равных