- •Введение
- •1. Измерения и оценки метрик в программотехнике
- •2. Оценка трудоемкости и стоимости разработки программного продукта на основе его размера
- •Определение параметров программного продукта на основе оценки числа строк кода для каждого функционального блока.
- •3. Определение параметров проекта на основе оценки трудоемкости выполнения отдельных работ (Метод оценки усилий)
- •Распределение усилий на выполнение отдельных работ при разработке каждого блока (в человеко-месяцах)
- •4. Использование эмпирических моделей для оценок программных продуктов.Ресурсная модель комост
- •Коэффициенты уравнений комост
- •5. Метод функциональных точек
- •6. Производительность труда в группе разработчиков
- •6.1А. Учет числа взаимосвязей между разработчиками в группе.
- •Задание 5. Определение производительности труда группы взаимодействующих исполнителей Методические указания к выполнению задания 5
- •6.1.B Связи каждого участника группы с остальными
- •Методические указания к выполнению задания 6
- •6.2. Применение модели Филиппа
- •6.3. Применение модели Путнема
- •Рекомендуемая литература
- •Список использованных сокращений
- •Содержание
6. Производительность труда в группе разработчиков
Возможные подходы к оценке производительности труда группы разработчиков
В небольших проектах разработки программных средств один человек анализирует требования, проектирует программное изделие, кодирует, проводит тестирование и отладку программ, осуществляет интеграцию модулей и выполняет комплексные испытания изделия.. Когда размер проекта возрастает, в его выполнение включается все большее число людей. Трудно представить себе разработку проекта трудоемкостью 10 человеко-лет, которую выполнял бы один исполнитель.
К сожалению, среди менеджеров все еще существует представление о том, что при нарушении сроков выполнения работ, всегда можно добавить некоторое количество программистов и наверстать потерянное время. На практике человеко-месяц как единица измерения объема работы для менеджера проекта крайне опасная и неверная. Дело в том, что человек и месяц взаимозаменяемы только тогда, когда работу можно распределить между несколькими независимо работающими исполнителями. На практике работа коллектива людей даже при достаточно четком разделении решаемых ими функциональных задач, относящихся к общей проблеме создания программного продукта, требует постоянного их взаимодействия: согласования возникающих вопросов, уточнения технических требований и т. д. Подключение дополнительных исполнителей в процессе работы над проектом приводит к дополнительным непроизводительным затратам времени. Новые люди должны быть обучены, ознакомлены с системой, принятыми методами и средствами проектирования, а те, кто их будет обучать, должны будут оторваться от работы, которую они выполняют в соответствии с планом. Пока проходит обучение, работа не выполняется и отставание проекта растет.
Кроме этого, чем больше людей участвует в проекте, тем больше деловых связей между ними, и тем больше сложность коммуникаций в рамках проекта. Хотя информационное взаимодействие исполнителей необходимо для успешной разработки программного средства, каждая новая взаимосвязь требует дополнительного времени и снижает среднюю производительность труда отдельного разработчика.
В практике разработки программных средств используется несколько моделей, позволяющих учитывать степень снижения средней производительности труда отдельного исполнителя при увеличении числа п работников в группе.
Наиболее простой подход построен на предположении, что персонал фуппы исполнителей вынужден общаться в процессе работы друг с другом, чтобы решать возникающие в процессе работы проблемы. Это общение уменьшает производительное время работников и может оцениваться коэффициентом к относительного сокращения производительного времени. Число информационных связей, возникающих при этом, можно оценивать либо как число возможных взаимных связей, равное числу сочетаний из л по 2, либо полагать, что каждый решает свои личные проблемы с остальными л -1 участниками разработки. Поэтому при оценке производительности труда группы исполнителей целесообразно рассматривать оба варианта взаимодействия.
Второй подход основан на использовании для расчетов установленной эмпирической закономерности - производительность труда отдельного работника падает пропорционально корню кубическому из n. Это так называемый закон Филиппа.
Третий подход использует модель Путнема, в которой (также на основании опытных данных) представлена взаимосвязь основных параметров про-' граммного проекта. В результате использования этой модели также появляет
ся возможность выявить зависимость производительности труда от числа исполнителей n.
Ниже представлено описание использования этих трех методик для оценки производительности труда группы разработчиков:
учет взаимосвязей людей в группе (две модификации);
учет закона Филиппа при оценке производительности труда;
использование модели Путнема для оценки параметров проектов при отклоненениях от оптимальных сроков разработки.
Рассмотрим эти подходы к оценке производительности труда коллектива разработчиков более подробно.