Периоды развития производства ПО

Можно выделить четыре периода развития производства ПО:

  1. производство ПО для удовлетворения собственных потребностей разработчиков (до начала 60-х годов);
  2. становление товарного производства и развитие кризиса ПО (до середины 70-х годов);
  3. экстенсивное товарное производство ПО;
  4. становление интенсивного товарного производства.

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

Второй период начался с процессов отчуждения программных инструментальных средств от их разработчиков, причем эти процессы долго не носили характера товарных отношений — ПО поставлялось пользователям в качестве бесплатного приложения к ЭВМ. Эта объяснялось не только сложностью правовой защиты, но и недостаточным качеством ПО. Что можно сказать о товарных свойствах транслятора или управляющей программы, которые реагируют на ошибки переводом ЭВМ в останов или буквально транжирят дефицитное машинное время? Однако без развитых инструментальных средств потребность в товарном ПО невелика — слишком узка и неразвита область возможного применения. Для становления товарного производства ПО потребовался длительный циклический процесс совершенствования ПО и расширения областей его применения.

Среди признаков достаточности инструментальных средств и сформированности товарного производства в начале 70-х годов выделяются переход от использования ассемблеров к проблемно-ориентированным языкам программирования, стабилизация архитектур ЭВМ, операционных систем и систем программирования, создание систем ПО объемом в миллионы строк исходного текста и появление фирм, специализирующихся на разработке ПО и оказании связанных с ним услуг.

Сформировалась (но осталась несовершенной) необходимая для товарности защита прав собственности на ПО. Современные низкие цены на поставку ПО широкого применения (обычно десятки или сотни долларов) вызваны не только экономическими соображениями, но и недостаточной высотой барьеров, защищающих от нелегального копирования. Заметную роль играют моральные ограничения, наиболее реальным наказанием является сокращение контактов и прекращение сопровождения ПО. Судебные преследования возбуждаются при массовых «пиратских» поставках ПО, причем часто заканчиваются досрочно заключением двусторонних соглашений о компенсациях.

Третий период характеризуется скорее количественными, чем качественными, изменениями в ПО и способностях его производства. Об этом свидетельстствует динамика изменения расходов и количества программистов, скорее стабилизация, чем рост производительности труда, использование давно разработанных инструментальных средств. Признаком экстенсивного развития является также низкая стоимость рабочего места программиста. В большинстве фирм она составляла 2—3 тыс. долл., что немногим больше стоимости рабочего места обычного конторского служащего и в 10—20 раз меньше стоимости рабочего места в промышленности или сельском хозяйстве.

Начало четвертому периоду — переходу от экстенсивного к интенсивному производству ПО — положила развернутая в 1983 г. Министерством обороны США программа STARS (Software Technology for Adaptable Reliable Systems — Программная Технология для Адаптируемых Надежных Систем). Вопреки своему названию эта программа предусматривает не разработку какой-то новой технологии, а организационную перестройку разработки ПО в национальных масштабах с целью интенсификации использования уже найденных технологических решений. В частности, предполагается совершенствование обучения программированию, создание института программной инженерии, всесторонняя поддержка работ по развитию и внедрению технологий в частных фирмах. Основной эффект ожидается получить от повышения квалификации программистов, более активного использования средств автоматизации работ, повышения уровня абстрактности и повторной используемости ПО, более активного использования методов быстрого создания прототипов систем ПО. Программа опирается на начатые ранее проекты (в первую очередь проект АДА) и поэтому относительно недорога — не миллиарды, а сотни миллионов долларов. Предполагается увеличить производительность труда к 1993 г. в 4 раза.

Судя по доступным публикациям, эта программа пока выполняется успешно. Например, согласно сообщениям фирм «XEROX», «IBM» и «BELL», увеличение стоимости рабочего места программиста до 10—30 тыс. долл., действительно, более чем окупается ростом производительности труда. Большой эффект дают также активное использование методов измерения параметров программных проектов и средства поддержки ранних стадий разработки ПО.