development in msf

39
Методология разработки программного обеспечения Microsoft Андрей А. Терехов Московское представительство Microsoft e-mail: [email protected]

Upload: tester20111

Post on 27-Jun-2015

71 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Development in MSF

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

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

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

e-mail: [email protected]

Page 2: Development in MSF

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

Статистика по 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%

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

Page 3: Development in MSF

Microsoft Solutions Framework (MSF)

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

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

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

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

Page 4: Development in MSF

MSF и MOF

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

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

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

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

Page 5: Development in MSF

MSF и MOF

Microsoft Operations Framework

Microsoft Solutions Framework

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

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

нед

ряе

м

Вн

едр

яем

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

Пл

ани

руе

м

Пл

ани

руе

м

Page 6: Development in MSF

Структура MSF

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

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

Группы

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

ДВЕ МОДЕЛИ

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

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

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

Подготовкой

Page 7: Development in MSF

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Page 8: Development in MSF

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

Лидеры групп

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

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

Разработка

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

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

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

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

чест

вом

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

ами

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

абжением

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

рсоналом

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

ммуника

цией

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

оимостью

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

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

м

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

ми проект

а

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

ониторинг

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

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

Page 9: Development in MSF

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

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

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

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

Page 10: Development in MSF

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

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

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

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

Заказчик

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

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

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

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

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

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

Разработчик

Тестер

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

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

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

Page 11: Development in MSF

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

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

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

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

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

Page 12: Development in MSF

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Лидер группы

Page 13: Development in MSF

-

- -

-

-

-

-

-

-

- - -

+

+

+

+

+

+

+

+

+

+

±

±

±

±

± ±

±

±

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Page 14: Development in MSF

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

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

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

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

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

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

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

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

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

Page 15: Development in MSF

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

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

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

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

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

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

Выработка

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

ение

Разработка

Пл

анир

ован

иеС

табилизация

Page 16: Development in MSF

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

Время

Фун

кци

он

аль

но

сть

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

Версия 1

Версия 2

Версия 3

Page 17: Development in MSF

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Page 18: Development in MSF

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

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

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

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

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

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

Page 19: Development in MSF

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

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

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

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

Page 20: Development in MSF

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

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

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

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

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

Page 21: Development in MSF

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

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

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

Page 22: Development in MSF

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

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

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

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

авто-тестов

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

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

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

Page 23: Development in MSF

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

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

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

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

Page 24: Development in MSF

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

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

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

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

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

Page 25: Development in MSF

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

BetaBug Convergence

Zero-Bug Release

Release Candidate

Golden Release

Release

0

ActiveBugs

Time

Page 26: Development in MSF

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

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

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

Ресу

рсы Время

Возможности

Page 27: Development in MSF

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

Фиксируется

Фиксируется

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

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

Принимается

Принимается

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

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

ВремяВремя

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

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

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

Page 28: Development in MSF

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

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

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

способности

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

способности

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

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

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

Осмысление

Осмысление

Page 29: Development in MSF

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

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

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

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

Page 30: Development in MSF

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

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

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

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

MSFнекоторые

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

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

вариант

MOF, CMMI, SWEBOK*,

стандарты OMG

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

Page 31: Development in MSF

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, однако общую картину этот факт не меняет

Page 32: Development in MSF

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

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

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

Маркетинг

IBMRational Unified Process

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

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

MicrosoftMicrosoft Solutions

Framework$ 0 Любые

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

OracleCustom

Development Method

~ $ 1500*~ $ 2500**

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

Page 33: Development in MSF

Материалы по 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

Page 34: Development in MSF

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

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

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

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

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

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

Page 35: Development in MSF

Курс 1846

• Microsoft Solutions Framework Essentials

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

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

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

Page 36: Development in MSF

Курс 2710

• Analyzing Requirements and Defining Microsoft .NET Solution Architectures

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

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

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

Page 37: Development in MSF

Экзамен 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

Page 38: Development in MSF

Заключение

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

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

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

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

Page 39: Development in MSF