В начале января разработчик библиотек faker.js и colors.js намеренно «испортил» собственные программные продукты. Он добавил в код бесконечный цикл, который выводил в консоль бессмыслицу. В результате нарушилась работа тысяч приложений по всему миру, в том числе у крупных облачных провайдеров. Таким необычным (но крайне эффективным) образом инженер хотел привлечь внимание к проблеме финансирования и уважения к труду open source разработчиков.
Пользуясь случаем, мы решили обсудить разные точки зрения, касающиеся финансирования разработки открытых проектов.
Не самая надежная основа
Примерно девять из десяти компаний работает с открытыми инструментами. В то же время open source составляет базу мировой интернет-инфраструктуры. Так, веб-серверы Apache и Nginx использует более 60% сайтов, а Linux доминирует в облаке. Некоторые провайдеры не останавливаются на программном обеспечении и используют в своих дата-центрах открытые стандарты серверных стоек.
Концепция open source проста и понятна — тысячи разработчиков по всему миру совместными усилиями развивают проекты и следят за качеством кода. Но на практике такая модель работает не всегда. Достаточно частая история, когда FOSS поддерживает или небольшая команда энтузиастов, или «тот единственный инженер» в свободное время. Подобная модель — при не совсем аккуратном применении — несет риски для критически значимой инфраструктуры. Энтузиасты могут забросить разработку в любой момент или внести существенные изменения в код.
Ситуация, сложившаяся вокруг библиотек faker.js и colors.js, далеко не единственная. Еще в 2018 году разработчик npm-модуля event-stream передал управление репозиторием другому участнику сообщества, который внедрил в утилиту скрипт, ворующий данные криптовалютных кошельков у пользователей. Однако еще одна причина, почему FOSS не всегда может быть лучшей основой для интернет-инфраструктуры, связана с низким финансированием этого направления.
Денежный вопрос
Большинство open source разработчиков трудится за свой счет. В этом нет ничего удивительного, если речь идет о небольшом домашнем проекте. Но ситуация меняется, как только инструментом начинают пользоваться тысячи компаний по всему миру. Большая часть разработчиков денег все так же практически не получают, а уровень ответственности и репутационные риски серьезно возрастают.
Так, в конце прошлого года в библиотеке Log4j обнаружили уязвимость. Она позволяла выполнить любой вредоносный код на сервере. Команда мейнтейнеров работала круглые сутки в новогодние праздники, чтобы закрыть уязвимости, которые продолжали появляться. Но несмотря на колоссальные усилия, автора библиотеки и его команду постоянно критиковали за нерасторопность.
Cитуацию усугубляет тот факт, что корпорации и облачные провайдеры часто перепродают open source инструменты своим клиентам в SaaS-обертке, но ничего не привносят в исходных продукт. Неудивительно, что разработчики FOSS задаются вопросом, а нужно ли продолжать развивать проект, если они не получают ни признания, ни денег, ни какого-либо иного вклада в общее дело?
Можно ли исправить ситуацию
Есть мнение, что ситуацию вообще не нужно исправлять. Тот, кто решил запустить open source проект, должен был изначально понимать, на что идет. Жаловаться на недостатки финансирования и монетизацию продукта другими компаниями нет смысла — нужно было делать закрытую или ограниченную лицензию. И некоторые разработчики уже пошли по этому пути. Так поступили в Redis, изменив порядок лицензирования для некоторых модулей Redis Labs. Хотя практика встречает некоторое сопротивление в ИТ-сообществе. Есть мнение, что она противоречит духу открытого программного обеспечения.
Достаточно очевидным вариантом монетизации FOSS также являются донаты. Но таких сборов не всегда достаточно для полноценной работы. Другой выход из ситуации — привлечение инвестиций от коммерческих и государственных компаний. Но если одни считают это благом, другие — способом разрушить идею открытого программного обеспечения. Некоторые уверены, что крупные компании нарушат принципы управления сообществом и попытаются повлиять на его развитие. Достаточно вспомнить реакцию на новость о покупке GitHub.
Еще одной популярной и достаточно очевидной моделью монетизации FOSS является freemium. В этом случае базовый продукт доступен бесплатно, но пользователи могут приобрести дополнительные функции — например, эту модель применяет GitLab. Некоторые предлагают платные услуги консалтинга и обучение. Однако подобные способы подходят больше для компаний, и далеко не каждый инди-разработчик захочет продавать свой продукт, чтобы потом заниматься техподдержкой, консультациями и обрабатывать запросы покупателей, требующих внедрить «эту важную функцию» и «исправить ту нужную штуку».
А как вы думаете, нужно ли решать вопрос с компенсацией разработчикам открытого ПО, или все устроено так, как это должно быть и задумывалось изначально?
О чем мы пишем в корпоративном блоге:
Автор: VAS Experts