Расчет трудоемкости является основополагающим для определения общих затрат на реализацию проекта, так как через него, в конечном итоге, оценивается один из основных затратных показателей – совокупные затраты на оплату труда исполнителей. Именно поэтому ему должно быть уделено особое внимание.
Общие затраты труда на разработку и внедрение изделия (проекта) определяют следующим образом:
(1)
где ti - затраты труда на выполнение i -го этапа проекта.
Этап ti | № работы | Содержание работы | Трудоемкость | ||
(чел/дни) | (чел/час) | ||||
Разработка общих алгоритмов | |||||
Разработка вспомогательных модулей | |||||
Построение структуры данных | |||||
Полный перечень работ с разделением их по этапам выполнения проекта следует оформить в виде таблицы, фрагмент которой показан на рис. 1.
Рис. 1. Фрагмент таблицы перечня работ проекта
Для заполнения последних двух столбцов таблицы следует воспользоваться одним из известных методов оценки трудоемкости.
|
|
Простейший из них – метод прямого хронометрирования, когда продолжительность выполнения отдельных работ фиксируется в процессе их выполнения, т.е. постфактум. Очевидно, что он может использоваться для обоснования произведенных расходов, а не для их прогнозирования.
Прогнозный характер оценки трудоемкости, как этого требует бизнес-проект, обеспечивают метод экспертной оценки, а также метод, базирующийся на сравнении с существующим аналогом (возможно сочетание этих подходов).
При экспертной оценке ожидаемая продолжительность работ вычисляется по следующей формуле:
(2)
где Tmin и Tmax - минимальная и максимальная продолжительность работы. Они назначаются в соответствии с экспертными оценками, а ожидаемая продолжительность работы рассчитывается как математическое ожидание для b - распределения.
Во втором случае трудоемкость оценивают на основе известной трудоемкости разработки аналогичного ПО с учетом отличительных особенностей данного проекта, отражаемых введением поправочных коэффициентов. Этот подход предполагает наличие специального Фонда алгоритмов и программ–аналогов, имеющихся в данной отрасли промышленности или у конкретного производителя этой продукции.
Расчет затрат с помощью этого подхода состоит в следующем. Сначала выбирают программу-аналог и относительно нее вводят коэффициент сложности разрабатываемого продукта (nсл). Сложность программы-аналогапринимается за единицу. Затем определяют коэффициент квалификации разработчика (nкв), который отражает степень его подготовленности к выполнению порученной ему работы.
|
|
Коэффициент квалификации исполнителя определяют в зависимости от стажа работы: для работающих до 2-х лет - 0,8; от 2 до 3 лет -1,0; от 3 до 5 лет - 1,1 - 1,2; от 5 до 7 лет - 1,3 - 1,4 и свыше 7 лет - 1,5 - 1,7.
Трудоемкость проекта можно рассчитать по следующей формуле:
(3)
Так, например, если известна сложность разработки программы-аналога (Qа) в 750 человеко-часов и коэффициент сложности новой программы определить как 1,2 а коэффициент квалификации программистов установить на уровне 1, то трудозатраты на проектирование составят 900 чел/час.
Расчеты по формуле (3) можно проводить как для всего проекта в целом (в случае наличия полного общего функционального аналога проекта), так и для отдельных сопоставимых частей аналога и разрабатываемого продукта.
В случае полной общей аналогии трудоемкость отдельных работ из перечня (см. табл. Рис. 1) определяется из общей пропорциональным пересчетом, либо экспертной оценкой.
Если же у прототипа только часть работ функционально идентична разрабатываемому продукту, то оценивается трудоемкость именно этой части, а трудозатраты остальных работ (частей) определяются экспертной оценкой, либо через соответствующие коэффициенты пропорциональности.
Так, например, пусть затраты труда на выполнение работ по проекту можно разделить на следующие временные интервалы: время на разработку алгоритма; на непосредственное написание программы; на проведение тестирования, внесение исправлений и на написание сопроводительной документации.
(4)
Для вычисления объема трудозатрат следует соотнести их с объемом трудозатрат, необходимых для написания текста программы. Сначала следует определить трудозатраты на алгоритмизацию задачи. Его можно определить используя коэффициент затрат на алгоритмизацию (nА), равный отношению трудоемкости разработки алгоритма по отношению к трудоемкости его реализации при программировании, откуда:
(5)
Его значение лежит в интервале значений 0,1 до 0,5. Обычно его выбирают равным nА =0,3 [1].
Для определения t3 следует также найти коэффициенты связи трудозатрат на этом этапе с этапом программирования.
Затраты труда на проведение тестирования, внесение исправлений и подготовки сопроводительной документации определяются суммой затрат труда на выполнение каждой работы этапа тестирования:
(6)
где tT - затраты труда на проведение тестирования, tИ - затраты труда на внесение исправлений, tД - затраты труда на написание документации.
Значение t3 можно определить, если ввести соответствующие коэффициенты к значениям затрат труда на непосредственно программирование (t2):
(7)
Коэффициент затрат на проведение тестирования отражает отношение затрат труда на тестирование программы по отношению к затратам труда на ее разработку и может достигать значения 50% [1]. Обычно его выбирают на уровне nТ = 0,3.
Коэффициент коррекции программы при ее разработке отражает увеличение объема работ при внесении изменений в алгоритм или в текст программы по результатам уточнения постановки и описания задачи, изменения состава и структуры входной и выводимой информации, а также в процессе улучшения качества программы без изменения ее алгоритмов. На практике, при разработке программы в среднем вносится 3 - 5 коррекции, каждая из которых ведет к переработке 5 - 10 % программы. Коэффициент коррекции программы выбирают на уровне nИ = 0,3.
Коэффициент затрат на написание документации отражает отношение затрат труда на создание сопроводительной документации по отношению к затратам труда на разработку программы может составить до 75 %. Для небольших программ коэффициент затрат на написание сопроводительной документации может составить: nД = 0,35.
Объединив полученные значения коэффициентов затрат в соотношении 6, определяют затраты труда на выполнение этапа тестирования (соотношение 8):
|
|
(8)
С учетом соотношений 4 и 8 можно записать:
(9)
где nА - коэффициент затрат на алгоритмизацию.
Тогда, затраты труда на написание программы (программирование) составят:
(10)
Для проверки следует внести показанные значения коэффициентов в соотношение 10, тогда значение затрат труда на программирование для объявленного примера составит 400 чел/час.
Поставляя полученное значение для t3 в соотношения 5 и 7, следует получить значения затрат труда на разработку алгоритмов, проведение тестирования, внесение исправлений и написание сопроводительной документации.
Затраты труда на внедрение ПО зависят от времени на осуществление опытной эксплуатации, которое согласовывается с заказчиком и, нередко составляет один месяц или 22 чел/дня. В этом случае при 8-ми часовом рабочем дне этап внедрения может потребовать 176 чел/часов.
Подставляя полученные данные в соотношение 1, определяют общее значение трудозатрат для выполнения проекта:
(11)
В том случае, когда отдельные работы могут выполняться одновременно несколькими исполнителями, такая продолжительность (ti)определяется из соотношения 12:
(12)
где tpp - расчетная продолжительность работы, Wисп - количество исполнителей, КН - коэффициент выполнения нормы.
«Чистую» продолжительность работ следует рассчитывать исходя из того, что одной работой занят один исполнитель, а коэффициент выполнения нормы равен единице (обычно он составляет 1,0 - 1,2).
Затраты труда по отдельным работам, полученные с помощью соотношения 12, следует занести в таблицу 1 (рис. 1).