?

Log in

No account? Create an account
Previous Entry Share
Инициатива по открытию кодов ПО, разрабатываемого за счёт бюджета
улитка
bizdelnick wrote in freesoft_ru

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

По сути инициатива близка к нормам, действующим с 2016 года в США и Болгарии, но является более всеобъемлющей. В Болгарии открываются только разработки, связанные с системой «электронного правительства», а в США пока запущена только пилотная программа по открытию кодов, в рамках которой публикуется в обязательном порядке не менее 20% новых разработок.

Что конкретно предлагается

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

Публичная инфраструктура должна включать в себя систему контроля версий, систему отслеживания ошибок, а также систему автоматического тестирования и рецензирования предложенных изменений. На первый взгляд может показаться, что поддержание такой инфраструктуры существенно увеличит нагрузку на разработчиков, однако следует учитывать два нюанса. Во-первых, в достаточно крупных проектах все элементы такой инфраструктуры как правило уже присутствуют, хотя и не являются публичными. Затраты на поддержание публичной инфраструктуры немногим выше, чем на поддержание закрытой, если вообще отличаются (вряд ли стоит ждать очень высоких нагрузок, но и про возможность DDoS-атак забывать не следует). Во-вторых, ничто не мешает воспользоваться одной из многочисленных площадок, предоставляющих такую инфраструктуру как SaaS, в том числе бесплатно для открытых пректов (GitHub, GitLab и т. п.).

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

В инициативе также идёт речь о необходимости подготовки новой редакции стандарта ГОСТ Р 54593-2011 «Информационные технологии. Свободное программное обеспечение. Общие положения». Очевидно, что при реализации инициативы без отсылок к нему не обойтись, а он содержит ряд существенных недоработок. Изначально этот стандарт разработан небольшой группой специалистов за закрытыми дверями в рамках работы по «национальной программной платформе» и описывает ровно то, что они пытались продать — дистрибутив GNU/Linux с сопутствующей инфраструктурой. Отмечаются два основных момента, требующих обязательного исправления. Первый касается определения самого базового понятия — исходного кода. В стандарте под ним понимается «компьютерная программа в текстовом виде на каком-либо языке программирования», а под такое определение подходит код, подвергшийся различным преобразованиям: обфусцированный, минифицированный, сгенерированный из представления на более высокоуровневом языке или транслированный на другой язык. В качестве более удачного варианта предлагается определение, позаимствованное из текста GNU GPL, согласно которому исходный код — это форма произведения, являющаяся предпочтительной для внесения изменений. Второй момент связан с разделом, описывающим инфраструктуру разработки ПО, а точнее с тем, что именно об инфраструктуре разработки в нём нет ни слова, поскольку авторы стандарта занимались не разработкой, а интеграцией, упаковкой и распространением готового ПО. В данный раздел предлагается включить описание инфраструктуры, упоминавшейся выше.

Зачем всё это

В качестве главного аргумента в пользу инициативы приводится возможность снижения стоимости разработки за счёт эффективного повторного использования кода. На данный момент разработчики вынуждены повторять одну и ту же работу, реализуя стандартизированные в России алгоритмы и протоколы. В качестве примера можно упомянуть пресловутые ГОСТовские криптоалгоритмы. Стимула делиться своими наработками ни у кого нет, в результате каждый продолжает использовать свою реализацию, зачастую не отличающуюся высоким качеством, содержащую многочисленные ошибки и уязвимости. В долгосрочной перспективе более выгодным было бы иметь небольшое число свободных реализаций, доступных для независимого аудита и открытых к приёму исправлений. Это бы не только снизило стоимость разработки приложений, но и повысило качество кода (разумеется, при вовлечении достаточно большого числа разработчиков — помните закон Линуса?).

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

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

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

Есть ли шансы на успех

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


P. S. Для голосования на сайте РОИ необходимо пройти аутентификацию через ЕСИА — единую систему идентификации и аутентификации сайта Госуслуг. Для новых учётных записей требуется подтверждение личности в одном из центров обслуживания пользователей.

P. P. S. Репост приветствуется.