Маркетплейс для разработчиков: как развивать российский GitHub
Российский GitHub
Когда мы говорим о переходе на свободное программное обеспечение (СПО), то от юрисдикции мейнтейнера (владельца репозитория исходного кода проекта) и авторов библиотек кода может зависеть многое. К примеру, на базе популярной во всем мире операционной системы (ОС) Linux работает огромное количество дистрибутивов, в том числе и отечественные ОС Astra Linux, «Ред ОС» и «Альт» с российскими процессорами. В марте 2023 года стало известно о том, что мейнтейнер сетевой подсистемы ядра Linux Якуб Кичиньский отказался принимать патч от разработчика российских процессоров «Байкал Электроникс» Сергея Семина, объяснив отказ нахождением компании под санкциями. Другой случай связан с тем, что автор одной из библиотек кода отправил вредоносное изменение, которое удаляет информацию при запуске на системах с IP-адресами из России или Белоруссии.
С рисками при работе с иностранными библиотеками open source связана инициатива правительства сделать открытый код национальным. Первые шаги уже сделаны: 31 мая Минцифры утвердило перечень из 82 участников эксперимента по созданию российского репозитория программного обеспечения с открытым кодом — аналога крупнейшего веб-сервиса для хостинга IT-проектов и их совместной разработки GitHub. В список вошли федеральные и региональные органы власти, крупные компании, например Тинькофф Банк, Мосбиржа, структура «Сбера» «Сбертех», компании-разработчики и физлица.
Angie также присоединилась к эксперименту. Мы хотим проверить способность вносить изменения через создаваемую платформу, взаимодействовать с отечественными разработчиками, а также иметь еще один канал предоставления технической поддержки. Более того, мы можем поделиться собственной экспертизой, ведь в нашей команде работают разработчики крупнейшего в мире веб-сервера Nginx, которые прекрасно понимают идеологию open source изнутри. Эксперимент начался в марте 2023 года и закончится в II квартале 2024-го.
Понятие «открытый код», прежде всего, подразумевает сообщество системных инженеров, а уже потом код, продукт или сервис. Более того, российские разработчики давно являются частью мирового сообщества open source, но интерес государства заключается в том, чтобы разработка критичных отраслевых решений была локализована. Именно для того, чтобы сориентировать программистов на полезные для государства проекты, возникла идея создать для них комфортные условия в рамках экосистемы.
С кого брать пример
Сейчас в России дополняют патчами библиотеки с открытыми кодами только энтузиасты или отдельные разработчики в крупных IT-компаниях. Массового распространения в нашей стране это явление не получило, потому что, прежде чем выложить проект в открытый доступ, нужно проделать подготовительную работу — сделать код читабельным, сопроводить комментариями, сформулировать документацию и написать тесты. Мало просто опубликовать сделанную работу, нужно поддерживать ее в актуальном состоянии. Никто не будет этим заниматься бесплатно. Фактически у IT-специалистов не сформировалось привычки писать код вне рабочего времени безвозмездно.
За рубежом ситуация совсем иная. Помимо техногигантов, которые вкладывают собственные средства в развитие проектов open source внутри корпораций, есть фонды, такие как Linux Foundation, Apache Software Foundation и другие, которые получают «донаты» от коммерческих компаний на поддержку разработки открытых проектов. В России с такими организациями беда. Компромиссным вариантом мог бы стать китайский сценарий развития open source, когда государство поощряет в первую очередь проекты, удовлетворяющие внутренние потребности страны.
Кроме недофинансирования, в России существует проблема отсутствия стимулирования. Допустим, разработчик выложил код в открытый доступ, родившийся из строк продукт приобрел невероятную популярность. Позаимствовавшие код инженеры других компаний установили решение себе, но при масштабировании у них возникли вопросы с функционированием сервиса. Глобально на выполнении задачи консультирования и технической поддержки можно построить устойчивый бизнес — но не у нас. Платить за техподдержку готовы далеко не все, писать документацию к проекту могут только отдельные специалисты и т. д. Эти трудности разрушают всю привлекательность вложений собственных времени и сил в развитие открытого кода.
Доска почета
Нематериально подстегнуть разработчиков сфокусироваться вокруг локализованных проектов для страны в области СПО может «орден на грудь», который сейчас выражается в «звездочках» на GitHub, количестве подписчиков блога или числе скачиваний продукта. Соответственно, в российском репозитории важно предусмотреть «доску почета» для активных авторов библиотек.
Еще одним инструментом популяризации отечественного GitHub мог бы стать грамотный пиар, который объяснял бы значимость работы над социальными проектами, например новым сервисом для портала «Госуслуги». Если программист будет понимать, что ведет работу над проектом, который на слуху у широкой аудитории, ценность его работы возрастет пропорционально усилиям.
Еще один путь — это привлечение к проектам open source стажеров, которых компании не всегда готовы интегрировать в работу над критичными для бизнеса проектами. Получив грант от государства, компания могла бы погружать студентов в мир корпоративной разработки «тренировками» на задачах с открытым кодом.
Конкуренция и экспорт
Чтобы проекты open source постоянно совершенствовались, нужно предусмотреть простые и действенные механизмы в рыночных отношениях между разработчиками и государством. Например, оформление справки на портале «Госуслуги»: принял заказ на разработку, сделал его, сдал и получил вознаграждение.
Для этого можно создать маркетплейс открытого кода, который бы собирал запросы на разработку open source проекта и позволял государству оплачивать заказы. Однако стоит сперва решить задачу передачи прав, подтверждения качества разработки, учета критериев приема функциональности и применения механизмов защиты от недобросовестных участников сообщества.
В таком случае мы можем привлечь широкий круг разработчиков, которые ежедневно по два-три часа смогут вкладываться в развитие open source движения в стране в рыночных условиях. Причем в качестве заказчиков нужно привлекать не только государственные структуры, но и коммерческий сектор — как в Китае, где огромное количество разработчиков трудятся над корпоративными проектами, выкладывают наработки, которые используют и государство, и частные компании. Это автоматически поднимет уровень привлекательности для разработчиков и степень требований к качеству создаваемого программного обеспечения.
Развивать сообщество open source в России важно и нужно, однако стоит не делать его зацикленным на местный рынок, а использовать внутренние ресурсы как стартовую площадку. Еще лучше, если постепенно будут появляться команды, способные подхватить лучшие зарубежные практики и суметь их адаптировать под локальные требования. Тогда рынок СПО в России будет конкурентным и экспортоориентированным. Если ориентироваться не только на государственный рынок, но и на корпоративный и мировой, это автоматически поднимет планку требований к программному обеспечению, в том числе СПО.
Мнение редакции может не совпадать с точкой зрения автора