2007 г.
Терехов Андрей Николаевич, Интернет-Университет Информационных Технологий, INTUIT.ru
Назад Оглавление
Перечислим основные принципы и практические приемы, лежащие в основе модели:
- итеративный подход (последовательный выпуск версий);
- подготовка четкой документации;
- учет неопределенности будущего;
- учет компромиссов;
- управление рисками;
- поддержание ответственного отношения коллектива к срокам выпуска продукта;
- разбиение крупных проектов на более мелкие управляемые части;
- ежедневная сборка проекта;
- постоянный анализ хода работ.
Process model имеет три основные особенности:
- разбиение всего процесса на фазы;
- введение опорных точек;
- итеративность.
Весь процесс разбивается на четыре взаимосвязанных фазы. Прежде чем переходить к следующей фазе, на предыдущей должны быть получены определенные результаты.
В принципе, ничего нового тут нет, это известная спиральная модель, но необычно разбиение трудоемкости по фазам, связанное с тем, что и назначение каждой фазы весьма своеобразно.
Envisioning – выработка единого понимания проекта всеми членами коллектива. Эта фаза заканчивается разработкой формализованного документа:
- problem statement — описание задачи объемом не более одной страницы;
- vision statement — от чего хотим уйти, чего хотим добиться;
- solution concept — что хотим внедрить и как;
- user profiles — кто будет этим пользоваться;
- business goals — возврат инвестиций;
- design goals — конкретные цели и ограничения продукта, его конкретные свойства.
Planning — планирование очередного цикла разработки:
- функциональные спецификации;
- план-график работ;
- оценка рисков.
Developing — разработка, причем рекомендуются различные технологические приемы, например, переиспользование кусков кода, программирование по контракту, написание защищенного от ошибок ПО и т.д.
Stabilizing — создание стабильной версии, готовой к использованию.
Важную роль играют опорные точки (milestones), в которых анализируется состояние работ и производится их синхронизация. В этих точках приложение или его спецификации не замораживаются. Опорные точки позволяют проанализировать состояние проекта и внести необходимые коррективы, например, перестроиться под изменившиеся требования заказчика или отреагировать на риски, возможные в ходе дальнейшей работы. Для каждой опорной точки определяется, какие результаты должны быть получены к этому моменту.
Каждая фаза процесса разработки завершается главной опорной точкой (major milestone). Характеризующие ее результаты видны не только коллективу разработчиков, но и заказчику. Главная опорная точка – это момент, когда все члены коллектива синхронизируют полученные результаты. Назначение таких точек в том, что они позволяют оценить жизнеспособность проекта. После анализа результатов коллектив разработчиков и заказчик совместно решают, можно ли переходить на следующую фазу. Таким образом, главные опорные точки – это критерии перехода с одной фазы проекта на другую.
Внутри каждой фазы определяются промежуточные опорные точки (interium milestones). Они, как и главные, служат для анализа и синхронизации достигнутого, а не для замораживания проекта. Но, в отличие от главных опорных точек, промежуточные видны только членам коллектива разработчиков. Промежуточные опорные точки отмечают более скромные достижения и разбивают большую задачу на мелкие части, выполнение которых легче контролировать.
Итеративность процесса заключается в его многократном повторении на протяжении всего цикла создания и существования продукта. На каждой успешной итерации в продукт включаются только те новые средства и функции, которые удовлетворяют изменяющимся требованиям бизнеса.
Важную роль в MSF играет postmortem – так раньше называли распечатки памяти после аварийных завершений программы. В этом документе описывается, что было хорошо и какие возникали проблемы, т.е. такие знания, которые можно накапливать для использования в следующих проектах.
Назад Оглавление