Свободное программное обеспечение – преимущества для государства, бизнеса и общества

Свободное программное обеспечение – преимущества для государства, бизнеса и общества

А. В. Дьяченко? ГОУ Центр Образования «Технологии обучения», ООО «Открытые технологии»

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

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

Определение Свободного Программного Обеспечения было дано Ричардом Столлмэном в 1986 году в GNU’S BULLETIN Volume 1 No.1 (http://www.gnu.org/bulletins/bull1.txt). Однако само это явление существовало и ранее.

Фактически, большая часть программного обеспечения до 1980-х годов распространялась принципами, лежащими в основе Свободного ПО).

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

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

Свобода 1 – свобода запуска программы в любых целях.

Свобода 2 – свобода изучения работы программы и адаптации ее к нуждам пользователя (необходимым условием этой свободы является доступ к исходным кодам).

Свобода 3 – свобода распространения копии.

Свобода 4 – свобода распространения модификаций и улучшенных версий.

Различные лицензии могут дополнять эти критерии дополнительными свободами или ограничениями, например, необходимостью передачи полного набора свобод вместе с каждым экземпляром продукта (т.н. «copyleft», предложен Ричардом Столлмэном) или требованием оставлять неизменными имена авторов в исходных кодах (BSD License). Такие ограничения, как правило, направлены на предотвращение присвоения программных продуктов и превращения их в закрытые. Могут быть и ограничения, требующие обязательного бесплатного распространения, что не является обязательным для всего Свободное ПО. Например, лицензия GNU GPL допускает продажу копий ПО по любой цене, при условии, что покупатель получит полный набор прав, предусмотренных лицензией (в том числе и право продавать копии по любой цене).

КЛАССИФИКАЦИЯ И ТЕРМИНОЛОГИЯ СВОБОДНОГО ПО 

Фонд Свободного Программного Обеспечения (Free Software Foundation, основанный в 1985 г. Ричардом Столлмэном) разделяет ПО на свободное (Free Software), полусвободное (Semi-free Software) и собственническое (Proprietary Software). Свободное ПО должно обладать всеми четырьмя свободами, приведенными выше. Полусвободное допускает те же свободы, только в отношении некоммерческого использования. Все остальное программное обеспечение относится к собственническому (http://www.gnu.org/philosophy/categories. html).

Термин «Открытое Программное Обеспечение» (Open Source, далее «ОПО») был предложен в 1998 году Эроком Реймондом и Брюсом Перенсом (http://www.catb.org/~esr/opensource. html) как альтернатива термину Свободное ПО, поскольку слово «free» в английском «Free Software» часто ошибочно читалось как «бесплатное» (а не «свободное»), что отпугивало коммерческих предпринимателей. Понятие Свободное ПО и Открытое ПО близки, многие лицензии удовлетворяют им обоим, в то же время определение Свободное ПО более строгое и требует обязательного предоставления свобод распространения, модификации, изучения и распространения улучшенных версий, тогда как Открытое ПО концентрируется на открытости исходных кодов как эффективного метода разработки.

По отношению к платности программное обеспечение можно условно разделить на:

Бесплатное (Freeware). Лицензия такого ПО допускает бесплатное распространение бинарных экземпляров ПО. Этот термин не является синонимом Free Software, поскольку Freeware может распространяться без исходных кодов и других свобод, а Free Software не обязательно распространяется бесплатно.

Условно-бесплатное (Shareware). Как правило, распространяемые бесплатно экземпляры имеют ограниченную функциональность, работают в течение ограниченного промежутка времени или имеют рекламную функцию, отключающуюся после оплаты.

Платное программное обеспечение.

Общественное достояние (Public Domain Software) – это программное обеспечение, авторы которого решили сделать его общественным достоянием, так же, как это происходит с произведениями, авторские права на которые уже истекли. Такое ПО может свободно распространяться и использоваться без ограничений и выплат авторских вознаграждений. При этом должны соблюдаться права авторства, имени и защиты репутации автора. Перевод ПО в общественное достояние не требует распространения исходных кодов, поэтому такое ПО не всегда отвечает определению Свободноuj ПО.

Копилефт («Сopyleft» в противоположность «Сopyrigt» – игра слов на английском языке) является рядом дополнительных ограничений в дополнение к четырем свободам Свободного ПО, которые запрещают перелицензирование ПО под несвободной лицензией. Все-таки перелицензирование возможно при согласии всех владельцев авторских прав, однако при этом все выпущенные ранее версии остаются свободными (GNU GPL).

ВЫГОДЫ СПО ДЛЯ ГОСУДАРСТВА И ОБЩЕСТВА В ЦЕЛОМ 

Государству широкое применение Свободного ПО приносит широкий спектр экономических, политических и социальных выгод, к которым можно причислить:

Свободное ПО можно рассматривать как общественное благо, доступное и приносящее пользу всему обществу, а не только владельцу.

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

Участие отечественных специалистов в разработке и внедрении Свободного ПО повышает их профессиональную квалификацию, а это, в итоге, увеличивает национальный кадровый потенциал.

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

Снижение доли используемого иностранного собственнического ПО снижает зависимость страны от зарубежных поставщиков и увеличивает сальдо внешнеторгового баланса.

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

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

Наконец, интересы национальной безопасности требуют скорейшего замещения закрытых разработок зарубежных компаний свободным программным обеспечением, проанализированным и доработанным отечественными специалистами.

Свободное программное обеспечение – преимущества для государства, бизнеса и общества

ВЫГОДЫ СВОБОДНОГО ПО ДЛЯ РАЗРАБОТЧИКОВ И ПОЛЬЗОВАТЕЛЕЙ 

На первый взгляд, выгоды от Свободного ПО получают только пользователи, которым предоставляется больший объем свобод и в большинстве случаев бесплатный программный продукт. Однако существуют и другие выгоды, затрагивающие все стороны:

Поскольку основным способом заработка компаний, бизнес которых основан на Свободное ПО, являются услуги поддержки и доработки, здесь клиенты обычно получают гораздо больший объем сервисов лучшего качества за ту же или меньшую плату, чем в мире собственнического ПО, в котором техническая поддержка относится к расходам на послепродажное обслуживание. Например, сеть официальных партнеров среды дистанционного обучения Moodle.

Используя Свободное ПО, клиент свободен от конкретных разработчиков и поставщиков услуг. Если качество или цена перестают устраивать клиента, он может выбрать любого другого поставщика и передать заказ ему. Что невозможно в собственническом ПО.

Многие собственнические программные продукты через некоторое время превращаются в «брошенное программное обеспечение»

(«Abandonware»), когда владелец имущественных прав утрачивает интерес к данному программному продукту. Юридически, такой продукт по-прежнему охраняется авторским правом и лицензионным соглашением, а фактически продукт не развивается, не поддерживается и легально приобрести его уже невозможно. Со Свободным ПО такого произойти не может – даже если первоначальный автор продукта утратит к нему интерес, возможность использовать и развивать этот продукт силами других разработчиков сохраняется. Например, широко известный Интернет-браузер Mozilla Forefox развился из продукта Netscape Communicator 5, после того как в 1998 году компания Netscape Communications Corporation пришла к выводу, что проиграла компании Microsoft в «войне браузеров» и решила превратить свой продукт в проект Свободного ПО (http://mozillalinks. org/wp/2008/01/ten-years-of-mozilla/).

Качество открытого исходного кода Свободного ПО, как правило, выше, поскольку закрытый исходный код скрывает недостатки и ошибки разработчика от коллег и клиентов. При открытом коде выше доля ответственности разработчика, в том числе и его репутационная ответственность.

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

Благодаря доступности исходных кодов и свободы их использования Свободное ПО позволяет реализовать все преимущества повторного использования кода.

Свободное ПО в гораздо меньшей степени нуждается в рекламе. Поэтому небольшие компании, разрабатывающие Свободное ПО, имеют гораздо больше шансов на быстрое развитие. Так, например, произошло с компанией-разработчиком свободной системы управления контентом Alfresco (http://www.alfresco.com/).

Эффект от поддержки основанного на Свободном ПО проекта IT-сообществом может оказаться настолько велик, что даже небольшой студенческий проект может превратиться в передовой программный продукт, наравне конкурирующим с лидерами IT-отрасли, и будет поддерживаться крупнейшими коммерческими и государственными организациями. Яркий пример, ядро операционной системы Linux.

Выгоды для государственных организаций и крупных компаний от участия в проектах разработки Свободного ПО Как было показано выше, одним из основных преимуществ и движущей силой проектов Свободного ПО является участие пользователей в процессе его разработки. Однако это преимущество так бы и осталось нереализованным, если бы не выгоды, получаемые пользователями и заказчиками разработки Свободного ПО от участия в его развитии.

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

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

Никто не обязывает пользователей делиться модификациями, сделанными для собственных нужд, в то же время пользователь не несет дополнительных затрат на такую форму сотрудничества. В обмен же он получает наличие нужной ему функции в следующей версии сразу, без доработок, и возможность передать поддержку собственного кода и обеспечение его совместимости с будущими версиями продукта другим разработчикам.

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

Публикация под открытой лицензией проектов, разработанных на государственные средства, является социально справедливым действием, поскольку создает дополнительные общественные блага, которыми налогоплательщики могут воспользоваться.

СПОСОБЫ СОТРУДНИЧЕСТВА ОРГАНИЗАЦИЙ С ПРОЕКТАМИ РАЗРАБОТКИ СПО 

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

Вот некоторые из них.

Сообщения об ошибках и предложения по улучшению программного продукта. Наиболее простое, что можно сделать, но далеко не самое последнее по полезному эффекту, это сообщить разработчикам об обнаруженных ошибках, неудобствах интерфейса и наиболее полезных улучшениях. Эту работу лучше поручить техническому специалисту, чтобы он собирал рекламации пользователей, оформлял их в эссе об ошибках в специальной базе данных разработчиков, называемой «Bug Tracker». Если эссе оформлено в соответствии с рекомендациями разработчиков, указана вся необходимая информация для воспроизведения ошибок, то через некоторое время ошибка будет устранена. В крупных проектах может быть довольно большой объем поступающих эссе, поэтому рекомендуется перед добавлением своего поискать аналогичное по базе данных и проголосовать за существующее эссе, тем самым увеличив его приоритет.

Документирование. В большинстве случаев при внедрении Свободного ПО составляются инструкции для сотрудников. Почему бы не поделиться ими с остальными пользователями, убрав из них пункты, специфичные только для конкретной организации? Документирование обычно является одной из основных потребностей всех проектов Свободного ПО, так что любые тексты могут быть полезны.

Участие в разработке силами собственных сотрудников. Чем ждать, пока дойдет очередь до ваших эссе и предложений по улучшению продукта, обычно быстрее и эффективнее поручить эту работу собственным техническим специалистам. Если в первое время это будет занимать довольно много времени, то когда специалист ознакомиться с архитектурой программного продукта, исправление небольших ошибок будет занимать считанные часы. Помимо более оперативной реализации ваших пожеланий, это позволит получать более оперативную информацию о ходе и перспективах разработки, иметь лучшее представление о потенциальных возможностях продукта, которые можно реализовать самыми малыми усилиями, и даже до некоторой степени влиять на ход дальнейшей разработки.

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

Прямое спонсирование разработчиков. Может быть осуществлено либо в форме пожертвований, либо как целевое финансирование разработки дополнительных возможностей свободного программного продукта.

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

Инициация проектов разработки Свободного ПО, как альтернатива заказной разработки. Это позволит уменьшить затраты на разработку последующих версий, тестирование и исправление ошибок, разделить расходы с другими заинтересованными заказчиками и получить более качественный продукт. В техническом задании необходимо предусмотреть лицензирование продукта под одной из свободных лицензий, что позволит разработчикам повторно использовать код другого Свободного ПО и ограничит использование в проекте несвободных библиотек. Полезно также оговорить соблюдение открытых стандартов, стандартов оформления кода, создание и публикацию документации для разработчиков, создание публичного репозитория или размещение проекта на одном из хостингов для проектов Свободного ПО (например, www.sourceforge.net).

Истории успеха. Даже если в настоящий момент вы не можете поучаствовать в проекте разработки Свободного ПО, которое у вас используется, остается еще одна возможность помочь развитию продукта и выразить свою благодарность разработчиком – просто расскажите всем о свободных программных продуктах, которые вы используете, и почему они вам нравятся.