Групповая разработка и организация коллектива

         

Групповая разработка и организация


Терехов Андрей Николаевич, Интернет-Университет Информационных Технологий, INTUIT.ru


Терехов Андрей Николаевич, Интернет-Университет Информационных Технологий, INTUIT.ru




Терехов Андрей Николаевич, Интернет-Университет Информационных Технологий, INTUIT.ru




Терехов Андрей Николаевич, Интернет-Университет Информационных Технологий, 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 – так раньше называли распечатки памяти после аварийных завершений программы. В этом документе описывается, что было хорошо и какие возникали проблемы, т.е. такие знания, которые можно накапливать для использования в следующих проектах.




Терехов Андрей Николаевич, Интернет-Университет Информационных Технологий, INTUIT.ru



Содержание раздела