Для учета затрат времени коллектива специалистов на конкретный комплекс программ (см. табл.1) особенно трудно зафиксировать начало разработки. Дело в том, что системный анализ зачастую входит в научно-исследовательские работы, финансируемые, планируемые и учитываемые независимо от конкретного программного проекта. В ряде случаев первичная разработка концепций ПС является обобщением опыта создания и эксплуатации ранее разработанных, унаследованных программ. Системный анализ, исследования и моделирование алгоритмов иногда в последующем реализуются в нескольких ПС, и весьма трудно оценить долю затрат исследовательских работ, которую следует отнести к каждому конкретному проекту. Перечисленные обстоятельства привели к тому, что затраты на системный анализ и предварительные исследования могут различаться на один-два порядка и обычно не включаются в совокупные затраты на создание ПС, что соответствует практике выделения и отдельного учета затрат на научно-исследовательские работы в промышленности. При последующем изложении началом разработки считается создание технического задания или спецификации требований, согласуемых с заказчиком или будущими пользователями ПС.
Окончанием разработки для прекращения учета затрат при оценке ТЭП конкретного проекта далее принимается момент завершения межведомственных или государственных испытаний ПС и оформления акта соответствующей комиссии заказчика. Однако при анализе реальных проектов эта граница оказывается тоже размытой, как и начальная, хотя и в меньшей степени. Это обусловлено разнообразием видов испытаний, возможностью проведения испытаний ПС по отдельным функциональным задачам, различием способов формализации передачи программ на эксплуатацию.
Суммарные затраты на создание комплекса программ, являются основным интегральным экономическим показателем каждой разработки. Эти затраты подлежат оценке и минимизации при условии обеспечения заданных функциональных характеристик ПС и его качества. Полный анализ и оптимизацию суммарных затрат на проект целесообразно проводить на всем жизненном цикле программ. При этом, в ряде случаев, желательно учитывать затраты на сопровождение и на эксплуатацию ПС. Эти виды затрат характеризуются значительной неопределенностью из-за сложности прогнозирования длительности жизненного цикла, тиража ПС, степени развития программ и затрат на сопровождение.
На начальных этапах разработки для прогнозирования ее трудоемкости и суммарных затрат необходимо применять рациональные гипотезы об особенностях жизненного цикла конкретного ПС. Даже приблизительный учет распределения вероятных затрат на этапах жизненного цикла позволяет более эффективно использовать экономические ресурсы при создании ПС. При этом условия, обеспечивающие минимум суммарных затрат на всем жизненном цикле ПС, могут приводить к необходимости принципиального изменения предполагаемого процесса разработки программ, при котором достигается минимум только на интервале создания ПС. В связи с этим последующий анализ суммарных затрат на разработку ПС проводится в двух постановках задачи: автономно на интервале разработки программ без учета последующего использования комплекса программ и комплексно с учетом влияния затрат на эксплуатацию и сопровождение программ, что оговаривается в каждом случае.
Длительность разработки комплекса программ зависит от многих факторов и, прежде всего, от сложности ПС. Следует отметить консервативность этой характеристики при создании крупных ПС. Технологический процесс создания любых программ включает ряд этапов, которые обязательно приходится реализовать независимо от затрат. Каждый этап требует некоторого времени, что приводит для конкретных ПС к относительно небольшим (по сравнению с затратами труда) вариациям суммарной длительности разработки. Если разработка ведется на достаточно высоком технологическом уровне, то цикл разработки сложного ПС принципиально трудно сокращать без ущерба для качества программ. Поэтому даже при увеличении затрат труда в несколько раз длительность разработки имеет тенденцию уменьшаться только на проценты.
В то же время множество факторов и неопределенность достигаемого качества программ приводят к тому, что влияние затрат на длительность разработки имеет размытую характеристику. При изменении размеров сложных ПС и трудоемкости в широком диапазоне длительность разработки изменяется мало по сравнению с затратами. Для каждого размера ПС при заданном качестве существует «область невозможного сокращения длительности разработки», которую не удается преодолеть при любом увеличении затрат труда. Для планирования разработки ПС и регулярного управления этим процессом необходимы частные экономические показатели в зависимости от различных факторов. Такие показатели могут формироваться: по этапам разработки, на единицу продукции, как относительные затраты на достижение заданной характеристики качества программ или как составляющие суммарных затрат в жизненном цикле программ.
Технико-экономические показатели на единицу размера программной продукции можно оценивать с использованием унифицированной единицы измерения - оператора (команды) на ассемблере или на строку текста программы (LОС) (см.табл.1). Усредненные затраты труда всех категорий специалистов, участвующих в создании ПС определенного размера, позволяют оценить среднюю производительность труда при разработке программ. В качестве единицы измерения этого показателя ниже используются число операторов ассемблера в месяц на человека или число строк текста программы в месяц на человека для ПС на языках высокого уровня. При этом следует подчеркнуть интегральный характер всех величин, используемых при расчете этой характеристики. Этот показатель особенно важен при сопоставлении экономических характеристик ПС различных классов и размеров, а также для оценки эффективности технологий и средств автоматизации разработки программ. Средние трудозатраты на создание каждой команды (оператора) в ПС соответствуют обратной величине производительности труда при разработке, измеренной в операторах на один человеко-месяц.
Часто при оценке производительности труда разработчиков программ учитываются трудозатраты только непосредственных участников процесса проектирования без трудозатрат на эксплуатацию ЭВМ и отчислений на амортизацию вычислительной техники. Эти затраты могут быть весьма значительными, однако их не всегда удобно выражать трудоемкостью на команду. Поэтому в качестве экономического показателя на единицу продукции с учетом всех видов затрат иногда применяется стоимость одного оператора или строки текста в завершенном разработкой и испытанном программном продукте, представленная в денежном выражении (руб. или долл. на команду или строку текста).
Технико-экономический анализ разработки ПС в денежном выражении имеет ряд существенных трудностей, которые ограничили его применение при оценке проектов по следующим причинам:
- предприятия и фирмы, создающие ПС, имеют значительные различия в уровне заработной платы специалистов, что не всегда прямо отражается на их производительности труда;
- каждое предприятие имеет накладные расходы и налоги, которые могут значительно различаться и никак не влияют на трудоемкость и длительность непосредственной разработки ПС;
- весьма различны оснащенность предприятий технологиями и средствами вычислительной техники, а также затраты на их приобретение и эксплуатацию;
- из общих затрат на аппаратуру и эксплуатацию технологических ЭВМ и отладочных стендов сложно выделить долю, которую необходимо включить в стоимость разработки конкретного ПС.
Тем не менее, для заключения контрактов на разработку ПС и для оценки интегральных затрат на проекты комплексов программ приходится применять величины затрат в денежном выражении. Для этого вырабатываются соглашения между заказчиком и разработчиком по преодолению перечисленных выше трудностей. Ниже приведены некоторые характеристики разработки программ и влияние ряда факторов на стоимость создания ПС.
Технико-экономические показатели на этап разработки программного средства целесообразно оценивать аддитивными экономическими показателями (см. табл.1). Такими ТЭП, могут служить суммарные трудозатраты на выполнение этапа работ при планировании и создании ПС определенного размера и класса или поэтапные трудозатраты на одну команду - строку текста. Эти характеристики позволяют выявить наиболее трудоемкие этапы и помогают рационально распределять затраты по этапам работ. В поэтапных затратах целесообразно выделять совокупные затраты на средства автоматизации разработки, что позволяет выявлять эффективные технологии и средства с учетом стоимости их приобретения и эксплуатации.