С ростом и развитием отрасли ИКТ значительное развитие получил феномен массового коммерческого программного обеспечения. Коммерческое программное обеспечение – это программное обеспечение, выполняемое, как правило, в рамках соответствующей профессиональной деятельности и специализации бизнеса:
на заказ конкретного конечного пользователя, либо
с расчетом на заранее не определенный круг конечных пользователей.
Коммерческое программное обеспечение отличается от так называемой «домашней» (in-house) разработки программ (разработки силой самой организации-конечного пользователя, издержки которой отражаются на рынке рабочей силы, но не на рынках товаров и услуг); от разработки программ, поставляемых в составе неотъемлемого целого поставщиками оборудования (программно-аппаратных комплексов) и от разработки программ вне коммерческого контекста вообще (в ходе научного экспериментирования, учебных проектов, как хобби и т.п.).
Отличие компьютерных программ от большинства (но не всех) других сущностей, вовлекаемых в хозяйственный и коммерческий оборот, заключается в том, что, обладая определенной полезной функциональностью, они являются не вещами, а произведениями .
Если быть точными, о вовлечении в оборот произведений можно говорить лишь условно и, в то же время, в двух смыслах: во-первых, о вовлечении в оборот экземпляров произведений (этот оборот регулируется правами собственности, вещным правом), а во-вторых, о вовлечении в оборот таких особых сущностей, как исключительные имущественные права на произведения (не являющиеся правами собственности и вещными правами, а регулируемыми авторским правом) 2. Жизненный цикл самого произведения и отдельных его экземпляров (вводимых в эксплуатацию) весьма различны, хотя и связаны.
3.2. Жизненный цикл программы
Специфика программ как произведений не в том, что они «функциональны» 3и даже не в том, что пользование ими системно, а системы, образуемые программами при их сочетании между собой и оборудованием – динамичны 4. Но если для прочих произведений обновляемость случайна, то для программ она представляет самое способ их нормального существования. Специфика программ скорее в том, что системность пользования ими сочетается с коллективностью (и тоже, в общем, системностью) их создания. Постоянное обновление – нормальный способ существования программ, особенно коммерческих, обновления эти часты, и само ожидание того, что программа будет вовремя обновлена (или сомнения в этом) – фактор, самым радикальным образом влияющий на ее оценку конечным пользователем.
В большинстве случаев эта оценка по своей структуре весьма отличается от оценки вещи (даже такой сложной, как прибор или единица оборудования), жизненный путь которой от изготовителя на свалку более или менее предопределен (даже если ей суждено пережить ремонты и техобслуживание). Фактор неопределенности и вытекающие из него риски выше, чем для вещи.
3.3. Жизненный цикл экземпляра программы и «общая стоимость владения» им
Жизненный цикл отдельного экземпляра программы, находящегося в эксплуатации, вообще говоря, не совпадает с жизненным циклом самой программы как произведения 5.
В простейшем, вырожденном случае жизненный цикл экземпляра программы может быть очень коротким: программа разрабатывается, приобретается или арендуется с целью выполнить одноразовую процедуру 6.
Ценность программы для пользователя заключается в ее безошибочности (соответствию спецификации) и приемлемой производительности (способности выполнить поставленную задачу на имеющемся (или арендуемом с этой целью) оборудовании в разумное время). Эти свойства можно назвать «моментальным качеством». При этом конечного пользователя совершенно не интересуют такие ее свойства, как, например, качество кодирования (пригодность для сопровождения), в малой степени интересует эргономичность и пр.
Более сложным случаем является разработка, приобретение или аренда программы для выполнения повторяющихся действий. В силу вступает системный фактор: за промежуток времени между отдельными актами эксплуатации окружение (другие программы, обрудование) может измениться, и немаловажное значение приобретает уверенность конечного пользователя в том, что программа будет способна функционировать в них или может быть легко адаптирована для восстановления работоспособности.
Читать дальше