Опубликован: 04.05.2010 | Доступ: свободный | Студентов: 4190 / 517 | Оценка: 4.64 / 4.44 | Длительность: 41:24:00
Лекция 16:

Место веб-разработчика в команде MSF

Аннотация: Данная лекция описывает общие черты методологии разработки программного обеспечения Microsoft Solutions Framework. Рассматриваются основные обязанности и задачи веб-разработчика в команде MSF for Agile Software Development Место.

Презентацию к данной лекции Вы можете скачать здесь.

23.1. Введение

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

MSF – это методология ведения проектов и разработки решений, базирующаяся на принципах работы над продуктами как самой фирмы Microsoft, так и других компаний, работающих в области IT-индустрии.

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

Microsoft Solutions Framework представляет собой хорошо сбалансированный и гибкий набор методик организации процесса разработки, который может быть адаптирован под потребности практически любого коллектива разработчиков и проекта, вне зависимости от его размера и сложности. MSF поддерживает самые различные подходы к организации процесса разработки, что позволяет команде разработчиков выбирать самый подходящий для них путь. Философия MSF утверждает то, что не существует единой методологии разработки, которая оптимально будет соответствовать требованиям любых проектов. Но, тем не менее, любому проекту необходимо управление. MSF направлена на помощь в обеспечении этого управления. При этом MSF не налагает предписаний, а позволяет команде разработчиков настраивать предоставленные средства. Средства MSF могут быть применены по отдельности или все вместе. Главное – они позволят добиться успеха для многих типов проектов.

Главными принципами MSF можно назвать производительность, интегрируемость и расширяемость.

  • Производительность: Один из ключевых принципов MSF направлен на то, чтобы сделать команду разработчиков более производительной. Производительность в MSF поддерживается хорошо налаженным управлением процесса разработки.
  • Интегрируемость: Решения и управление представлены инструментальными средствами, посредством плавной интеграции любых наборов инструментальных средств, справки и содержания MSF. Все эти элементы легко обновляются через MSDN.
  • Расширяемость: Процесс управления и справка полностью настраиваемы в пределах MSF. Разработчики могут выбрать быстрый или более структурированный подход, каждый из которых включает в себя наборы предложенных сценариев, или определить свой собственный подход, используя эти сценарии.

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

MSF состоит из двух моделей и трех дисциплин. Они подробно описаны в 5 whitepapers [2]:

  • модели:
    • модель проектной группы ;
    • модель процессов ;
  • дисциплины:
    • дисциплина управление проектами;
    • дисциплина управление рисками;
    • дисциплина управление подготовкой.

23.2. Модель процессов MSF

Модель процессов MSF (MSF process model) представляет общую методологию разработки и внедрения IT решений [3]. Особенность этой модели состоит в том, что благодаря своей гибкости и отсутствию жестко навязываемых процедур она может быть применена при разработке весьма широкого круга IT проектов. Эта модель сочетает в себе свойства двух стандартных производственных моделей: каскадной (waterfall) и спиральной (spiral) (рис. 23.1).

16_0116_01
Модели процесса: каскадная, спиральная, MSF Источник: Модель процессов MSF [4]

Рис. 23.1. Модели процесса: каскадная, спиральная, MSF Источник: Модель процессов MSF [4]

Модель процессов в MSF 3.0 была дополнена еще одним инновационным аспектом: она покрывает весь жизненный цикл создания решения, начиная с его отправной точки и заканчивая непосредственно внедрением. Такой подход помогает проектным группам сфокусировать свое внимание на бизнес-отдаче (business value) решения, поскольку эта отдача становится реальной лишь после завершения внедрения и начала использования продукта.

Основные принципы модели процессов:

  • MSF настаивает на непрерывном взаимодействии с заказчиком в ходе всей работы над проектом.
  • Модель процессов MSF считает очень важным открытый обмен информацией как внутри команды, так и с ключевыми заинтересованными лицами.
  • Успех коллективной работы над проектом немыслим без наличия у членов проектной группы и заказчика единого видения ( shared vision ), т.е. четкого, и, самое главное, одинакового, понимания целей и задач проекта.
  • MSF настаивает на том, что каждый участник проектной группы должен ощущать ответственность за качество разрабатываемого решения.
  • MSF основывается на принципе непрерывной изменяемости условий проекта при неизменной эффективности управленческой деятельности.
  • Каждая итерация, каждая фаза процесса создания решения должна заканчиваться некоторым зримым результатом, некоторой вехой ( milestone ).
  • Работа проектной группы в идеале должна быть построена так, чтобы при возникновении такой потребности у заказчика текущее состояние разрабатываемого решения могло быть немедленно внедрено (с той функциональностью, которая в данный момент реализована).

Процесс MSF ориентирован на " вехи " (milestones) – ключевые точки проекта, характеризующие достижение в его рамках какого-либо существенного (промежуточного либо конечного) результата. Этот результат может быть оценен и проанализирован, что подразумевает ответы на вопросы: "Пришла ли проектная группа к однозначному пониманию целей и рамок проекта?", "В достаточной ли степени готов план действий?", "Соответствует ли продукт утвержденной спецификации?", "Удовлетворяет ли решение нужды заказчика?" и т. д.

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

Модель процессов MSF тесно связана с базовыми принципами MSF, рассмотренными выше. Вообще говоря, тремя особенностями модели процессов MSF являются:

  • подход, основанный на фазах и вехах ;
  • итеративный подход;
  • интегрированный подход к созданию и внедрению решений.

MSF for Agile Software Development поддерживает быструю итеративную разработку. Проектирование, разработка, тестирование выполняются в перекрывающих друг друга итерациях, каждая из которых фокусируется на реализации отдельных аспектов решения (рис. 23.2).

Итерации процесса разработки

Рис. 23.2. Итерации процесса разработки

Источник: MSF for Agile Software Development Process Guidance [5]

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

На каждом уровне процесса создания решения MSF предполагает цикличность (рис. 23.3). Создание версии продукта – цикл из итераций. Итерация – цикл из ежедневно собираемых билдов. Билд – цикл изменений, вносимых в систему контроля версий.

Циклы процесса разработки. Источник: MSF for Agile Software Development Process Guidance [5]

Рис. 23.3. Циклы процесса разработки. Источник: MSF for Agile Software Development Process Guidance [5]

Модель MSF покрывает процесс создания решения с самого его начала и до момента окончательного внедрения. Весь процесс создания решения разбит на пять фаз (рис. 23.4). Каждая из них заканчивается главной вехой, результаты которой становятся видимыми за пределами проектной команды.

Фазы и вехи модели процессов MSF. Источник: Модель процессов MSF [4]

Рис. 23.4. Фазы и вехи модели процессов MSF. Источник: Модель процессов MSF [4]

Модель процессов включает такие основные фазы процесса разработки:

  • Выработка концепции (Envisioning);
  • Планирование (Planning);
  • Разработка (Developing);
  • Стабилизация (Stabilizing);
  • Внедрение (Deploying).

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

  • что (какие артефакты) является результатом этой фазы
  • над чем работает каждый из ролевых кластеров на этой фазе

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

Итеративный подход к процессу разработки требует использования гибкого способа ведения документации. "Живые" документы (living documents) должны изменяться по мере эволюции проекта вместе с изменениями требований к конечному продукту. В рамках MSF предлагается ряд шаблонов стандартных документов, которые являются артефактами каждой стадии разработки продукта и могут быть использованы для планирования и контроля процесса разработки.

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

В силу свойственной IT-проектам неопределенности и рискованности, одним из ключевых факторов их успеха являются эффективные компромиссные решения ( trade-offs ).

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

Треугольник приоритетов в MSF

Рис. 23.5. Треугольник приоритетов в MSF

После достижения равновесия в этом треугольнике изменение на любой из его сторон для поддержания баланса требует модификаций на другой (двух других) сторонах и/или на изначально измененной стороне.

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

Треугольник приоритетов является основой для матрицы компромиссов (project tradeoff matrix) – заранее утвержденных представлений о том, какие аспекты процесса разработки будут четко заданы, а какие будут согласовываться или приниматься как есть.

Возможный вариант такой матрицы представлен в табл. 23.1 [4].

Таблица 23.1. Матрица компромиссов MSF
Фиксируется Согласовывается Принимается
Ресурсы +
Время +
Возможности +

Матрица компромиссов помогает обозначить проектное ограничение, воздействие на которое практически невозможно (колонка "Фиксируется"), фактор, являющийся в проекте приоритетным (колонка "Согласовывается"), и третий параметр, значение которого должно быть принято в соответствии с установленными значениями первых двух величин (колонка "Принимается").