MSF и

advertisement
Обзор методологии разработки
программного обеспечения
Microsoft Solutions Framework
Андрей А. Терехов
Московское представительство Microsoft
e-mail: andreyte@microsoft.com
План доклада
•
•
•
•
•
•
•
Обзор MSF
Модель команды MSF
Модель процесса в MSF
Дисциплина управления рисками
Дисциплина управления проектами
Дисциплина управления подготовкой
Краткое сравнение с другими методологиями
(RUP, CMM, …)
• Вопросы/ответы
Успешные проекты нечасты в ИТ
Проваленные
2000
1998
Успешные
49%
28%
23%
28%
1995
1994
Проблемные
46%
40%
31%
26%
33%
53%
27%
16%
Статистика по 30,000 проектам по разработке ПО в американских компаниях.
Источник: The Standish Group International, Extreme Chaos, The Standish Group International, Inc., 2000
Успешные проекты – вовремя и в рамках бюджета был выполнен весь намеченный фронт работ.
Проблемные – не уложились в сроки, перерасходовали бюджет и/или сделали не все, что требовалось.
Проваленные – не были доведены до конца.
Эволюция 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 Solutions Framework
Microsoft Operations Framework
Структура MSF
ДВЕ МОДЕЛИ
Модель
Модель
Проектной
Группы
Процессов
ТРИ ДИСЦИПЛИНЫ
Дисциплина
управления
Дисциплина
управления
Дисциплина
управления
Проектами
Рисками
Подготовкой
Модель проектной группы
Управление проектом
Выработка архитектуры решения
Контроль производственного процесса
Административные службы
Бизнес-приоритеты
Маркетинг
Представление
интересов заказчика
Планирование продукта
Управление
программой
Технологическое консультирование
Проектирование и осуществление реализации
Разработка приложений
Разработка инфраструктуры
Управление
продуктом
Разработка
Удовлетворение
потребителя
Тестирование
Обучение
Эргономика
Графический дизайн
Интернационализация
Обеспечение технической
поддержки
Общедоступность (обеспечение
возможности работы для
пользователей с ограниченными
физическими возможностями)
Управление
выпуском
Инфраструктура
Сопровождение
Бизнес-процессы
Управление
выпуском готового
продукта
Планирование тестов
Разработка тестов
Отчетность по тестам
Характеристики проектной группы MSF
• Команда соратников (команда равных)
• Наличие единого видения проекта (shared vision)
• Распределение ответственности при
одновременной фиксации отчетности
• Нацеленность на необходимый заказчику
конечный результат
• Наличие у сотрудников необходимых полномочий
• Открытое общение
• Установка на отсутствие дефектов
• Стремление к самосовершенствованию
• Гибкость и готовность к переменам
• Заинтересованность и энтузиазм
Масштабирование модели проектной
группы
• В одном ролевом кластере может быть
много людей
• Один человек может взять на себя
несколько ролей
• Большие коллективы:
– Создаем группы направлений
– Создаем функциональные группы
• Малые коллективы:
– Используем таблицу совместимости ролей
Большой коллектив
Руководящая
группа
Управление
программой
Лидер
группы
Управление
продуктом
Разработка
Удовлетворение
потребителя
Тестирование
Управление
выпуском
Управление
программой
Удовлетворение
потребителя
(функциональная группа)
Управление
программой
Разработка
Удовлетворение
потребителя
Разработка
Удовлетворение
потребителя
Тестирование
Тестирование
Управление
программой
Разработка
клиентских компонент
(группа направления)
Разработка
Удовлетворение
потребителя
Тестирование
Разработка
средств печати
(группа направления)
Разработка средств
обмена сообщениями
(группа направления)
Таблица совместимости ролей
Управление
продуктом
Управление
продуктом
Управление
программой
Разработка
Тестирование
Удовлетворение
потребителя
Управление
выпуском
-
-
+
+
±
-
±
±
+
-
-
-
+
+
Управление
программой
-
Разработка
-
-
Тестирование
+
±
-
Удовлетворение
потребителя
+
±
-
+
Управление
выпуском
±
+
-
+
+ Допустимо
± Нежелательно
- Нельзя
±
±
Минимальный коллектив
Удовлетворение
потребителя
Управление
программой
Управление
продуктом
Управление
выпуском
Тестирование
Разработка
Модель процессов
Внедрение
завершено
Готовность решения
утверждена
Концепция проекта
утверждена
Планы проекта
утверждены
Разработка
завершена
Разработка
Промежуточные вехи
Внедрение
завершено
Внедренное решение стабилизировано
Внедрение на местах завершено
Ключевые компоненты развернуты
Готовность решения
утверждена
Пилотное внедрение завершено
Контрольное тестирование завершено
Версии-кандидаты
Тестирование приемлемости для
потребителей завершено
Точка достижения нуля
Точка конвергенции
Разработка
завершена
Ядро проектной группы сформировано
Черновой вариант концепции
проекта составлен
Концепция проекта
утверждена
Верификация технологий
осуществлена
Базовая версия функциональной
спецификации создана
Базовая версия сводного плана
проекта создана
Базовая версия сводного календарного
графика проекта создана
Среды разработки и тестирования
развернуты
Планы проекта
утверждены
Концепция подтверждена
Промежуточная версия 1 завершена
Промежуточная версия 2 завершена
Промежуточная версия N завершена
Итеративный подход
Функциональность
Минимизируем риски, разбивая большие проекты на
несколько версий
Версия 3
Версия 2
Версия 1
Время
Для каждой фазы модели процессов
MSF определяет:
• Что (какие артефакты) является
результатом этой фазы
• Над чем работает каждый из ролевых
кластеров на этой фазе
Дисциплина управления рисками
• Итеративный процесс
• Осуществляется на протяжении
всего проекта
• Базируется на посылке о присутствии
рисков в любом проекте
• Нацелена на проведение
профилактических мероприятий
Мы не боремся с рисками – мы ими управляем
Процесс управления рисками
2
1
Анализ и
приоритез
ация
Формулировка
риска
Выявление
5
Коррекция
6
База знаний
о рисках
Извлечени
е уроков
Список
рисков
3
Планировани
е
Глав
ные
риски
Мониторин
г
4
Дисциплина управления
проектами
• Проект (project) – ограниченная временными
рамками деятельность, цель которой состоит
в создании уникального продукта или услуги
• Управление проектами (project management) –
это область знаний, навыков, инструментария
и приемов, используемых
для достижения целей
проектов в рамках
согласованных параметров
качества, бюджета, сроков
Возможности
и прочих ограничений
Управление изменениями
• Мы не можем
избежать изменений
в проекте
• Но мы можем заранее
договориться о
приоритетах,
которыми будем
руководствоваться
при реагировании на
изменения
• Для этого
используется матрица
компромиссов
Фиксируе
тся
Ресурсы
Время
Возможности
Согласов
ывается
Принимае
тся
Управление ожиданиями заказчика
Конус неопределенности показывает, как меняется точность оценок стоимости
проекта по мере его осуществления. Важно, чтобы заказчик понимал это.
В MSF нет роли
“менеджер проекта”
Деятельность по управлению
проектом распределяется
между лидерами групп
и ролевым кластером
“Управление
программой”
Лидеры групп
Управление программой
Управление продуктом
Разработка
Тестирование
Удовл. потребителя
Управление выпуском
на уровне всего проекта
на уровне подгрупп
Дисциплина управления подготовкой
Определение
Знания,
умения,
способности
Оценивание
Осмыслени
е
Корректировк
а
MSF как концепция
• Например, для организации процесса
производства ПО можно использовать MSF
и при этом применять инструменты Borland
• Более того, MSF не навязывает даже
конкретную методологию разработки
программного обеспечения (как, например,
RUP)
• MSF – это концепция (framework),
применимая в самом широком наборе
случаев
Доступность стандартов, знание которых
требуется от ИТ-менеджера
Есть
русский
перевод
Бесплатный
доступ
Платный
доступ
MSF
некоторые
стандарты ISO,
PMBOK**
MOF, CMMI,
Только
ITIL***, RUP***,
SWEBOK*,
английский
стандарты IEEE,
вариант
стандарты OMG стандарты 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
Цена
Допустимые
технологии и
инструменты
Маркетинг
IBM
Rational
Unified
Process
~ $700
Любые, но
акцент на
Rational Suite
Ведется
активно
Microsoft
Microsoft
Solutions
Framework
$0
Любые
Практически
не ведется 
Oracle
Custom
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 – это
модель команды равных
Дополнительные слайды
Как организовано обучение
• MSF преподают как минимум в 5-6 вузах СНГ
студентам 3-6 курсов технических
специальностей
• Аббревиатура MSF в названиях курсов
обычно отсутствует
– “Системный анализ и проектирование
информационных систем”
– “Управление проектами”
– ...
• Уже есть как минимум один пример
базирующейся на MSF дипломной работы
Как организована практика
• Один или несколько небольших коллективов
студентов, каждый из которых реализует свой проект
• В качестве заказчиков выступают кафедра, деканат
или “дружественная” организация
• ПО для учета нагрузки преподавателей, посещаемости и
успеваемости студентов и т.п.
• Работа и документооборот организуются
по правилам MSF
• Два способа синхронизации лекций и практики
• лекции по MSF на тему или две опережают практические занятия
• лекции по MSF идут в одном семестре, практика – в следующем
На какие грабли наступали
• Механизм вовлечения “заказчика” в работу иногда оказывался
недостаточно эффективен и исполнитель роли “заказчика”
начинает уклоняться, не участвуя во всех этапах проекта .
• Студенты не всегда чувствуют, что предпосылкой для создания
одних документов является готовность других, и, следовательно,
в одну ночь все документы не сделаешь
• За разные документы отвечают разные люди
• Студенты нередко боятся писать понятные тексты, при
составлении проектной документации используют многословные
наукообразные трудночитаемые фразы
• Низкий уровень знания английского языка может создать
проблемы при работе с шаблонами документов MSF
• Студенты, которые учатся ради зачета, а не ради знаний, могут
плохо влиять на командный дух, понижая общий энтузиазм
• Таким студентам, наверное, проще сразу поставить зачет, чтобы не
мешали... ;-))
Рекомендации
•
Преподаватель должен быть Endorsed MSF Practitioner
(экзамен 74-100)
•
Преподаватель должен иметь практический опыт участия в
разработке ПО большими коллективами
•
Не имеет смысла пытаться учить студентов MSF, если нет возможности
организовать закрепление материала на практике. Без практического
опыта у студентов не сформируется понимание решаемых MSF
производственных проблем, а ведь это – главная задача
•
Оптимальный вариант получения опыта и применения знаний MSF –
участие в реальном проекте во время производственной практики на
реальном предприятии
•
Начинать учить MSF необходимо с модели проектной группы,
а не с модели процессов
•
Нужно очень подробно разъяснять дисциплину управления рисками,
возможно, стоит привлекать материал из PMBOK
•
Лекции – плохой способ обучения MSF, нужны активные обсуждения,
деловые игры, постоянный диалог с аудиторией
В вузах можно не только преподавать MSF,
но и вести исследования
ВОЗМОЖНЫЕ НАПРАВЛЕНИЯ ИССЛЕДОВАНИЙ:
• Использование и адаптация MSF для нестандартных и
узкоспециальных проектов
•
•
•
•
Проекты внедрения MSF
Проекты локализации (не только ПО)
Software outsourcing
Разработка учебных курсов
• Совместное использование MSF и других подходов
• CDM, ГОСТы, etc.
• MSF и SPEM (Software Process Engineering Metamodel)
• http://www.omg.org/technology/documents/formal/spem.htm
Download