Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lecture3.doc
Скачиваний:
5
Добавлен:
26.11.2019
Размер:
133.63 Кб
Скачать
  1. Модель главного программиста

Появилась во время первой технологической революции в программировании на рубеже 60–70-х годов. Долгое время модель главного программиста (или модель хирургической бригады) являлась доминирующей. В этой модели главный программист выполняет весь проект сам, а прочие члены бригады ассистируют в предопределенных рамках своих ролевых функций. Идея родилась из отрицательного опыта разработки первого сверхбольшого проекта – OS/360 фирмы IBM, на создание которой более 1000 чел. потратили 4 года. Менеджерами проекта выступали наиболее опытные программисты, производительность которых на порядок выше среднего (различие в 1:10 или даже 1:25 характерно для профессии программиста в отличие от землекопа). Харлан Миллс (IBM) предложил вернуть их к работе программиста.

Роли:

Главный программист - проектирует и пишет весь код

Второй пилот – дублер Главного программиста: участвует в проектировании и кодировании, но не несет ответственности за код

Администратор – связь с внешим миром, менеджмент

Секретарь – помощник администратора и хирурга: внешняя переписка

Редактор – документирование

Контролер – тестер / верификатор / валидатор

Инструментальщик – технологическая поддержка

Архивариус – ведение версий

NB: набор ролей может меняться. В классической модели Миллса был еще делопроизводитель и языковед. Вопрос 5.

Достоинства модели:

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

  • Высокая предсказуемость. Если главный программист плох, то это выявляется на ранних стадиях проекта. Проект может быть прекращен или реорганизован практически без убытков. Если главный программист хорош, то вероятность успешного завершения проекта высока даже при наличии серьезных внешних факторов риска.

  • Хорошая приспособляемость к изменяющейся и неблагоприятной внешней среде

  • Функциональная гибкость: за счет изменения набора "лучей" в звезде модель легко можно ориентировать на различные типы программных проектов

  • Наследуются все достоинства принципа единоначалия (поскольку главный программист единолично принимает все принципиальные решения по проекту)

Характеристическими ролями в бригаде являются Главный программист, Второй пилот и Администратор, остальные роли меняются по мере развития технологий программирования. Модификация модели: на роль главного программиста назначается не кодировщик, а, например, аналитик или менеджер продукта; тогда кодирование ведет Второй пилот, но все принципиальные решения принимает Главный программист. В современных условиях наблюдается тенденция перемещения принятия ключевых решений со стадии кодирования на более ранние стадии, поэтому эта модификация является фактически стандартной. Другая модификация - "сдвоенный центр": имеются два Главных программиста, которые делят проект пополам, все решения принимают консенсусом и являются вторыми пилотами друг для друга. Эта модификация позволяет хотя бы в некоторых пределах масштабировать бригаду.

Недостатки модели:

  • Плохая масштабируемость. Модель отлично работает на проектах объема 6-8 человек  1-2 года. Если проект требует более коротких сроков или существенно больших объемов, то его приходится разбивать на части для нескольких таких бригад. Поскольку части не могут быть полностью автономны, проблемой (социально-психологической) является координация работы «хирургов». Вопрос 6.

  • Бригада главного программиста не является распараллеливаемой структурой. Она действует по принципу: один проект - одна команда. Практически невозможно выполнять бригадой одновременно разные фазы разных проектов.

  • Бригада главного программиста имеет уязвимое центральное звено. Велик риск мгновенной аннигиляции бригады, если что-то случается с хирургом, хотя Второй Пилот и подстраховывает ситуацию.

Соседние файлы в предмете Информатика