Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
74
Добавлен:
10.02.2015
Размер:
289.79 Кб
Скачать

II. Управление

Этот процесс длится почти весь жизненный цикл программного продукта, |но поставили мы его в данном месте потому, что одним из важнейших действий управления является планирование, которое начинается вслед за принятием решения о том, что "проекту — жить".

Управление проектом

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

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

  • Наличие формализованной модели для разработки программного продукта.;

  • Наилучшая расстановка приоритетов и ресурсов.

  • Принятие ясных и документированных решений.

  • Соблюдение многочисленных стандартов.

  • Обеспечение эффективного взаимодействия между командами разработчиков, быстрое создание и вхождение в процесс разработки таких команд.

  • Тесное взаимодействие с группами поддержки и продаж.

Методы управления проектами

В основе методов управления проектами лежат методики сетевого планирования, разработанные в конце 50-х годов XX века [Филлипс, Гарсиа-Диас 84]. С помощью этих методик руководитель проекта может:

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

  • планировать завершение работ в нужные сроки в соответствии с требуемой последовательностью выполнения заданий;

  • координировать и контролировать выполнение работ для соблюдения календарного графика и завершения проекта в срок.

Следующие два метода были разработаны параллельно и независимо:

  • Метод Критического Пути (МКП). Метод разработан фирмой "Дюпон де Немур". Первоначально назывался методом Уолкера-Келли, по именам создателей. Позже получил название МКП.

  • Метод анализа и оценки программ ПЕРТ. Метод был разработан корпорацией "Локхид" и консалтинговой фирмой "Буз, Аллен энд Гамильтон" и применен в военно-морских силах США для ускорения разработки баллистической ракеты "Поларис" для подводных лодок.

Для описания современных проектов, в которых связи между работами значительно сложнее, данные средства оказались недостаточными. Метод сетевого планирования описывает зависимости работ средствами теории графов [Романовский 1999].

Планирование проекта

Подчеркнем в виде неформальных требований необходимость наличия плана [Баранов 1998].

  • План помогает создать ясное и четкое понимание — как будущие работы будут выполняться.

  • План определяет роль каждого человека в исполнении проекта.

  • План увязывает части работ вместе. План позволяет видеть все взаимозависимости между разными частями работы.

  • План — это точка отсчета для любых последующих изменений.

  • С помощью плана мы видим, когда цель, поставленная перед проектов достигнута и проект заканчивается.

Заметим, что первое действие процесса планирования — это принятие решения о начале планирования.

Планирование проекта включает определение ресурсов — человеческих, вычислительных и организационных и составление "карты" задач и времен их выполнения. В стандартном наборе процессов планирование является одним из действий процесса управления. Общий подход к планированию выглядит так:

Построение списка задач.

  • Составление графиков выполнения работ.

  • Оценка затрат.

  • Выделение требуемых ресурсов.

  • Распределение ответственности.

  • Определение зависимостей между задачами.

  • Проведение персональных назначений на задачи.

  • Определение времени выполнения задачи.

  • Оценка рисков, связанных с конкретными задачами.

  • Выявление критических путей.

  • Создание инфраструктуры управления.

В рамках планирования управляющий решает также организационные задачи:

  • Анализ документации на полноту, содержание, аккуратность.

  • Назначение начальной и конечной дат работ.

  • Определение интерфейсов приложения и планирование работ по детальному проектированию интерфейсов.

Работа не может начаться раньше, чем будут выполнены все предшествующие ей работы. Продолжительность выполнения всего проекта не может быть меньше, чем сумма продолжительностей работ, входящих в любой путь начального до заключительного события. Длиной пути назовем сумму продолжительностей работ, входящих в путь. Критическим путем будем называть путь наибольшей длины [Романовский 1999]. Наибольший риск в выполнении проекта будет иметь задержка в работах на критическом пути.

Методики оценок времени и затрат

Существует несколько методик оценок времени и затрат для составления планов и расчетов [Баранов 1998].

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

  • Снизу вверх по составленному графику работ. Данные по трудозатратам и времени берем от исполнителей.

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

  • Методика исторических соотношений. Стоимость одного проекта относится к стоимости другого пропорционально отношению их объемов в некоторой степени n. Степень n — число, которое надо знать или подобрать опытным путем.

  • Методика приближенных вычислений. Существует несколько расчетных формул для времен выполнения задач проекта. Введем три оценочных времени — оптимистичное (О), реальное (Р) и пессимистичное (П). Тогда время выполнения задач проекта можно вычислить по:

  • формуле трапеций: (О+2*Р+П)/4;

  • формуле Симпсона: (О+4*Р+П)/6.

Распределение работ

Распределение работ включает определение уровня квалификации для исполнителей задач, составление списка потенциальных участников проекта и "отображение" исполнителей на задачи. Типичной проблемой может быть сопоставление требуемым рабочим местам тех потенциальных исполнителей, чей уровень квалификации не полностью соответствует требуемому. Существует несколько эвристических правил для персональных назначений: [Conger 1994].

  • Назначать опытных и квалифицированных людей на наиболее сложные задачи в критическом пути. Людей с меньшим количеством опыта — на менее сложные задачи и т. д.

  • Определить последовательность работ для каждого исполнителя.

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

Современные подходы к управлению проектом

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

  • Внедрить лучшие практические навыки создания программного обеспечения.

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

  • Дать возможность руководителям проектов применять лучшие мировые практические навыки с учетом локальной корпоративной культуры.

  • Дать возможность быстро изучить и внедрить эти навыки в свою работу с помощью соответствующих методик обучения и программных систем.

Одним из основных результатов работы данной организации стал документ, рекомендующий 16 основных практик (навыков), включающих 9 основных и 7 поддерживающих.Перечислим основные практики.

  • Формальное управление рисками. Рекомендуется постоянно вести и анализировать списки основных важнейших рисков. У сотрудников не должно быть никаких иллюзий о допустимости рисков.

  • Согласованность интерфейсов. Интерфейсы — необходимая часть архитектуры. Чем позже будут определены соглашения об интерфейсах, тем больше вероятность того, что систему придется проектировать заново.

  • Формальные проверки проекта. Экспертизы, проверки, сквозной контроль —- все те действия, которые позволяют устранить ошибки как можно раньше.

  • Планирование и управление на основе метрик. В основу планов и оценок должны быть положены числовые оценки — метрики, накопленные в предыдущих проектах.

  • Контроль качества на детальном уровне. Промежуточные итоги должны подводиться еженедельно или даже ежедневно.

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

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

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

  • Ответственность и подотчетность руководства перед сотрудниками. Такая мотивация сотрудников может значительно повысить производительность труда программистов.

Соседние файлы в папке Лекции разработка ПО