Обзор методологии разработки программного обеспечения Microsoft Solutions Framework Андрей А. Терехов Московское представительство Microsoft
План доклада Обзор MSF Модель команды MSF Модель процесса в MSF Дисциплина управления рисками Дисциплина управления проектами Дисциплина управления подготовкой Краткое сравнение с другими методологиями (RUP, CMM, …) Вопросы/ответы
Успешные проекты нечасты в ИТ Статистика по 30,000 проектам по разработке ПО в американских компаниях. Источник: The Standish Group International, Extreme Chaos, The Standish Group International, Inc., 2000 Успешные проекты – вовремя и в рамках бюджета был выполнен весь намеченный фронт работ. Проблемные – не уложились в сроки, перерасходовали бюджет и/или сделали не все, что требовалось. Проваленные – не были доведены до конца %23%49% 26%28%46% 27%40%33% 16%31%53% УспешныеПроблемныеПроваленные
Эволюция 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 Команда соратников (команда равных) Наличие единого видения проекта (shared vision) Распределение ответственности при одновременной фиксации отчетности Нацеленность на необходимый заказчику конечный результат Наличие у сотрудников необходимых полномочий Открытое общение Установка на отсутствие дефектов Стремление к самосовершенствованию Гибкость и готовность к переменам Заинтересованность и энтузиазм
Замечание по терминологии Заинтересованные стороны (stakeholders) – лица либо организации, чьи интересы затрагиваются результатами проекта Спонсоры проекта (project sponsors) – лица либо организации, которые инициировали проект, выделяют для проекта ресурсы и утверждают его результаты. Иногда project sponsor переводится как куратор проекта
Масштабирование модели проектной группы В одном ролевом кластере может быть много людей Один человек может взять на себя несколько ролей Большие коллективы: –Создаем группы направлений –Создаем функциональные группы Малые коллективы: –Используем таблицу совместимости ролей
Большой коллектив Управление программой Управление выпуском Управление продуктом Удовлетворение потребителя Разработка Тестирование Руководящая группа Разработка клиентских компонент (группа направления) Управление программой Удовлетворение потребителя Разработка Тестирование Разработка средств печати (группа направления) Управление программой Удовлетворение потребителя Разработка Тестирование Разработка средств обмена сообщениями (группа направления) Управление программой Удовлетворение потребителя Разработка Тестирование Удовлетворение потребителя (функциональная группа) Лидер группы
± ± ± ± ±± ± ± + Допустимо ± Нежелательно - Нельзя Управление продуктом Управление программой Управление выпуском Управление продуктом Управление программой РазработкаРазработка ТестированиеТестирование Удовлетворение потребителя Управление выпуском РазработкаРазработкаТестированиеТестирование Удовлетворение потребителя Таблица совместимости ролей
Минимальный коллектив Удовлетворение потребителя Управление продуктом Тестирование Управление программой Управление выпуском Разработка
Модель процессов Планы проекта утверждены Разработка завершена Готовность решения утверждена Внедрение завершено Концепция проекта утверждена Выработка концепции Внедрение Разработка Планирование Стабилизация
Промежуточные вехи Планы проекта утверждены Разработка завершена Готовность решения утверждена Внедрение завершено Концепция проекта утверждена Пилотное внедрение завершено Контрольное тестирование завершено Версии-кандидаты Тестирование приемлемости для потребителей завершено Точка достижения нуля Точка конвергенции Верификация технологий осуществлена Базовая версия функциональной спецификации создана Базовая версия сводного плана проекта создана Базовая версия сводного календарного графика проекта создана Среды разработки и тестирования развернуты Внедренное решение стабилизировано Внедрение на местах завершено Ключевые компоненты развернуты Ядро проектной группы сформировано Черновой вариант концепции проекта составлен Концепция подтверждена Промежуточная версия 1 завершена Промежуточная версия 2 завершена Промежуточная версия N завершена
Итеративный подход Время Функциональность Минимизируем риски, разбивая большие проекты на несколько версий Версия 1 Версия 2Версия 3
Для каждой фазы модели процессов MSF определяет: Что (какие артефакты) является результатом этой фазы Над чем работает каждый из ролевых кластеров на этой фазе
Дисциплина управления рисками Мы не боремся с рисками – мы ими управляем Итеративный процесс Осуществляется на протяжении всего проекта Базируется на посылке о присутствии рисков в любом проекте Нацелена на проведение профилактических мероприятий
Процесс управления рисками Формулировка риска База знаний о рисках Список рисков Глав ные риски Анализ и приоритез ация Планировани е Мониторин г Коррекция Извлечени е уроков Выявление
Дисциплина управления проектами Проект (project) – ограниченная временными рамками деятельность, цель которой состоит в создании уникального продукта или услуги Управление проектами (project management) – это область знаний, навыков, инструментария и приемов, используемых для достижения целей проектов в рамках согласованных параметров качества, бюджета, сроков и прочих ограничений Ресурсы Время Возможности
Управление изменениями Фиксируе тся Согласов ывается Принимае тся Ресурсы Возможности Время Мы не можем избежать изменений в проекте Но мы можем заранее договориться о приоритетах, которыми будем руководствоваться при реагировании на изменения Для этого используется матрица компромиссов
Управление ожиданиями заказчика Конус неопределенности показывает, как меняется точность оценок стоимости проекта по мере его осуществления. Важно, чтобы заказчик понимал это.
В MSF нет ролименеджер проекта Лидеры групп Управление программой Управление продуктом Разработка Тестирование Удовл. потребителя Управление выпуском Управление качеством Управление рисками Управление снабжением Управление персоналомУправление коммуникацией Управление стоимостью Управление календарным графиком Управление рамками проекта Планирование и мониторинг на уровне всего проекта на уровне подгрупп Деятельность по управлению проектом распределяется между лидерами групп и ролевым кластеромУправление программой
Определение Дисциплина управления подготовкой Знания, умения, способности Корректировк а Оценивание Осмыслени е
MSF как концепция Например, для организации процесса производства ПО можно использовать MSF и при этом применять инструменты Borland Более того, MSF не навязывает даже конкретную методологию разработки программного обеспечения (как, например, RUP) MSF – это концепция (framework), применимая в самом широком наборе случаев
Доступность стандартов, знание которых требуется от ИТ-менеджера Бесплатный доступ Платный доступ Есть русский перевод MSF некоторые стандарты ISO, PMBOK** Только английский вариант MOF, CMMI, SWEBOK*, стандарты OMG ITIL***, RUP***, стандарты IEEE, стандарты ISO
MSF и... PMI PMBOK –Whitepaper MSF and the Project Management Body of Knowledge – RUP –Whitepaper Microsoft Solutions Framework and The Rational Process – CMM –Whitepaper Microsoft Solutions Framework and the Capability Maturity Model – Перечисленные документы ссылаются на предыдущие версии MSF, однако общую картину этот факт не меняет
Сравнение RUP, MSF и CDM Произво дитель ПродуктЦена Допустимые технологии и инструменты Маркетинг IBM Rational Unified Process ~ $700 Любые, но акцент на Rational Suite Ведется активно Microsoft Microsoft Solutions Framework $ 0Любые Практически не ведется Oracle Custom Development Method ~ $ 1500* ~ $ 2500** Oracle Практически не ведется
Материалы по MSF На английском языке – – MCT могут получить доступ к учебникам и презентациям курсов 1846 и 2710 через MCT Download Center: Не MCT могут прослушать эти курсы в СТЕС. В стоимость курса входит комплект материалов На русском языке –
Шаблоны и примеры документов Есть только на английском языке Шаблоны доступны бесплатно на –Нужно сделать поиск по ключевому слову MSF Детальные примеры входят в студенческий комплект материалов курса 2710 –В т.ч. UML диаграммы (промежуточные и окончательные версии)
Курс 1846 Microsoft Solutions Framework Essentials 3 дня, компьютеры не используются Изучаются все элементы MSF Великолепные деловые игры
Курс 2710 Analyzing Requirements and Defining Microsoft.NET Solution Architectures 5 дней, компьютеры используются Подробно изучается фаза планирования для проектов разработки ПО (application development)
Экзамен Microsoft Solutions Framework Practitioner Endorsement Exam –70 вопросов –90 минут –Проходной балл – 70% (49 вопросов) –Язык - английский Не является частью программы MCP Можно сдавать только через Prometric – В СНГ стоимость экзамена - $50, в США - $125 В мире сегодня – 266 MSF Practitioners –В России – 4 –На Украине – 2
Заключение MSF представляет собой обобщение опыта управления ИТ-проектами, накопленного в Microsoft MSF состоит из двух моделей и трех дисциплин, описание которых доступно на русском языке на сайте MSF – это набор рекомендаций, которые можно применять выборочным образом Наиболее революционная часть MSF – это модель команды равных
Дополнительные слайды
Как организовано обучение MSF преподают как минимум в 5-6 вузах СНГ студентам 3-6 курсов технических специальностей Аббревиатура MSF в названиях курсов обычно отсутствует –Системный анализ и проектирование информационных систем –Управление проектами –... Уже есть как минимум один пример базирующейся на MSF дипломной работы
Как организована практика Один или несколько небольших коллективов студентов, каждый из которых реализует свой проект В качестве заказчиков выступают кафедра, деканат или дружественная организация ПО для учета нагрузки преподавателей, посещаемости и успеваемости студентов и т.п. Работа и документооборот организуются по правилам MSF Два способа синхронизации лекций и практики лекции по MSF на тему или две опережают практические занятия лекции по MSF идут в одном семестре, практика – в следующем
На какие грабли наступали Механизм вовлечения заказчика в работу иногда оказывался недостаточно эффективен и исполнитель роли заказчика начинает уклоняться, не участвуя во всех этапах проекта. Студенты не всегда чувствуют, что предпосылкой для создания одних документов является готовность других, и, следовательно, в одну ночь все документы не сделаешь За разные документы отвечают разные люди Студенты нередко боятся писать понятные тексты, при составлении проектной документации используют многословные наукообразные трудночитаемые фразы Низкий уровень знания английского языка может создать проблемы при работе с шаблонами документов MSF Студенты, которые учатся ради зачета, а не ради знаний, могут плохо влиять на командный дух, понижая общий энтузиазм Таким студентам, наверное, проще сразу поставить зачет, чтобы не мешали... ;-))
Рекомендации Преподаватель должен быть Endorsed MSF Practitioner (экзамен ) Преподаватель должен иметь практический опыт участия в разработке ПО большими коллективами Не имеет смысла пытаться учить студентов MSF, если нет возможности организовать закрепление материала на практике. Без практического опыта у студентов не сформируется понимание решаемых MSF производственных проблем, а ведь это – главная задача Оптимальный вариант получения опыта и применения знаний MSF – участие в реальном проекте во время производственной практики на реальном предприятии Начинать учить MSF необходимо с модели проектной группы, а не с модели процессов Нужно очень подробно разъяснять дисциплину управления рисками, возможно, стоит привлекать материал из PMBOK Лекции – плохой способ обучения MSF, нужны активные обсуждения, деловые игры, постоянный диалог с аудиторией
В вузах можно не только преподавать MSF, но и вести исследования ВОЗМОЖНЫЕ НАПРАВЛЕНИЯ ИССЛЕДОВАНИЙ: Использование и адаптация MSF для нестандартных и узкоспециальных проектов Проекты внедрения MSF Проекты локализации (не только ПО) Software outsourcing Разработка учебных курсов Совместное использование MSF и других подходов CDM, ГОСТы, etc. MSF и SPEM (Software Process Engineering Metamodel)