Очерки истории отечественной программной инженерии в 1940-е – 80-е годы - Владимир Липаев
Шрифт:
Интервал:
Закладка:
• создание и весь жизненный цикл комплексов программ ориентируется на массовое тиражирование и распространение их на рынке, среди заранее не известных пользователей, в различных сферах и внешней среде применения; при этом отсутствует конкретный внешний потребитель – заказчик, который определяет и диктует основные требования к программному продукту, выделяет ресурсы и финансирует проект;
• производство программного продукта предполагается с определенным, относительно небольшим тиражом, с известной областью и внешней средой применения для конкретного потребителя – заказчика, который определяет требования к функциям, характеристикам качества, финансирует и выделяет ресурсы.
Эти сценарии принципиально различаются методами экономического анализа и обоснования их экономических характеристик. Первый сценарий базируется на маркетинговых исследованиях рынка программных продуктов и на стремлении поставщика занять на рынке достаточно выгодное место. Для этого ему необходимо определить наличие на рынке всей гаммы близких по назначению и функциям продуктов, оценить их эффективность, стоимость и применяемость, а также возможную конкурентоспособность предполагаемого к разработке программного продукта для потенциальных пользователей и их возможное число. Следует оценивать рентабельность затрат на создание нового продукта, выявлять факторы, функциональные, экономические и конструктивные характеристики качества, которые способны привлечь достаточное число покупателей и оправдать затраты на предстоящую разработку. При выборе продукции покупатель обычно стремится максимизировать это соотношение как за счет поиска продуктов с наибольшими эффективностью и качеством, так и за счет минимальной стоимости покупаемого продукта. В этом сценарии при организации производства вся ответственность за цели, функции и показатели качества продукта ложатся на его руководителей.
Второй сценарий предполагает наличие определенного заказчика – потребителя конкретного программного продукта, который должен соответствовать его формализованным и утвержденным техническим и экономическим требованиям. Он выбирает конкурентоспособного поставщика – производителя продукта, которого оценивает на возможность реализовать проект с необходимым качеством с учетом ограничения требуемых бюджета, сроков и других ресурсов. При этом результаты разработки не обязательно подлежат широкому тиражированию, могут не поступать на рынок, маркетинговые исследования для таких проектов являются второстепенными и предварительно могут не проводиться.
Однако для заказчика и разработчиков при заключении контракта необходимо достаточно достоверное прогнозирование требований к программному продукту и экономическое обоснование необходимых ресурсов по трудоемкости, стоимости, срокам реализации и другим показателям. Заказчик заинтересован в получении программного продукта высокого качества при минимальных затратах, а разработчик желает получить максимальную оплату за созданный продукт и достаточные ресурсы на его производство. Противоположность интересов поставщика и потребителя при оценке экономических характеристик, стоимости и других ресурсов проекта, требует поиска компромисса, при котором производитель программного продукта не продешевит, а заказчик не переплатит за конкретные выполненные работы и весь проект.
Поэтому оба партнера заинтересованы в достоверном экономическом прогнозировании и обосновании проектирования и производства программного продукта. Для этого должен быть подготовлен согласованный между заказчиком и разработчиком договор, в котором определены цели и задачи проекта, требуемые характеристики продукта, доступные экономические и другие ресурсы для его реализации [11, 15]. Эти данные должны быть предварительно сбалансированы, и обеспечивать реализацию целей проекта при выделенных ресурсах с минимальным допустимым риском.
Методы и достоверность экономического анализа производства сложных программных продуктов можно разделить на две части, существенно различающиеся особенностями производственных процессов, экономическими характеристиками и влияющими на них факторами. В первой части жизненного цикла. производятся: системный анализ, проектирование, разработка, тестирование и испытания первой (базовой) версии программного продукта. Номенклатура работ, их трудоемкость, длительность и другие характеристики на этих этапах производства существенно зависят от свойств и характеристик создаваемого продукта, требуемых показателей качества, внешней и технологической среды разработки. При этом первостепенное значение имеют размеры, архитектура, сложность функций, количество, состав и взаимосвязи компонентов комплекса программ, которые являются базой для оценивания экономических характеристик производства конкретного продукта. Изучение подобных зависимостей для различных прототипов программных продуктов позволяет достаточно достоверно прогнозировать состав и основные экономические характеристики производства, планы и графики работ для вновь создаваемых продуктов.
Вторая часть жизненного цикла, отражающая применение, сопровождение и модификацию версий программного продукта, связана не только с экономическими характеристиками продукта и среды производства, они зависят от величин и интенсивности изменений версий, сложности и стоимости каждой модификации программного продукта. После того как программный продукт создан и испытан, в ряде случаев он становится недоступным для разработчиков и применяется неизменным до внедрения очередной версии после модернизации системы. В процессе сопровождения программы могут подвергаться эпизодическим корректировкам, которые должны регистрироваться, накапливаться и передаваться пользователям экземпляров программного продукта. Необходимо обеспечивать пользователям адекватность технологической документации каждой версии эксплуатируемого продукта в любой момент времени.
В 80-е годы выделились и сформировались три группы наиболее актуальных экономических зада ч для их эффективного внедрения в практику программной инженерии, анализ экономики программных продуктов; создание и организация экономически эффективного их проектирования и производства; подготовка и обучение специалистов для экономически эффективного проектирования и производства программных продуктов.
Анализ экономики проектирования и производства программных продуктов включал:
исследование методов оценивания и характеристики экономической деятельности предприятий при проектировании и производстве сложных программных продуктов (прибыль, доход, рентабельность, производительность труда) в различных отраслях промышленности;
• определение, анализ и классификация экономических характеристик – трудоемкости, стоимости, длительности производства, и реальных факторов, влияющих на экономику проектирования и производства программных продуктов;
• измерение, сбор и обобщение реальных экономических характеристик процессов проектирования и производства сложных программных продуктов на предприятиях и в отраслях промышленности;
• анализ экономики, планирования и достоверности прогнозирования экономических характеристик реальных проектов программных продуктов;
• разработка методов оценивания и выбора, квалифицированных коллективов специалистов-подрядчиков, способных создавать сложные программные продукты и базы данных требуемого качества в разумные сроки с учетом ограничений на используемые ресурсы.
Создание и организация экономически эффективного проектирования и производства программных продуктов включало:
создание эффективной технологии и экономики деятельности предприятия, обеспечивающей рациональное сочетания целей, стратегий и использования доступных ресурсов, необходимых для достижения целей производства программного продукта высокого качества;
• создание эффективных методов экономического и технического формирования требований к функциям, характеристикам и качеству программного продукта, с учетом экономических и ресурсных ограничений проектирования и производства на предприятии;