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

Чем бы заняться, чем бы заняться… Освоить что-то новое? Возможно. Написать статью в блог? Ну… как видите, этот вариант победил. Но при этом в глубине души я знаю, что стоило бы уделить внимание некоторым проектам с открытым кодом. Так вышло, что один из них активно используется. Я приближаюсь к отметке в три четверти миллиона скачиваний, и люди явно находят в нем определенную пользу для себя. Это если говорить о хороших сторонах. Если же говорить о плохих, скопилось уже с десяток отчетов об ошибках, которые я еще даже не открывал, не говоря о том, чтобы отсортировать, изучить и исправить. От сообщества поступило несколько pull request-ов – их тоже нужно просмотреть. Некоторые зависимости требуют обновлений. Список можно продолжать. Этот проект достиг той вехи, которой достигают и многие другие: человек, который его поддерживает, выгорел.

Что движет любым разработчиком?


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

время = увлеченность + деньги

Каждый час, который мы тратим на написание кода, происходит из некоторого сочетания увлеченности и оплаты. Любая из этих переменных может быть равна нулю, но тогда другая должна иметь достаточно большое значение, чтобы покрыть отсутствие одного из компонентов. Давайте разберем мою деятельность в качестве примера:



Синим обозначена увлеченность, желтым – оплата (в совокупности они составляют мотивацию), красным – спрос.

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

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

Ну и наконец, проект с открытым кодом, который лично для меня не представляет интереса (вторая колонка слева). Когда-то он занимал для меня то же место, что и личный проект сейчас, но теперь с точки зрения мотивации изменился до неузнаваемости. Однако спрос на него высокий. Многие пользователи, зачастую корпоративные, применяют его на благо своим организациям. Плохие новости: мне от этого ничего не перепадает. Так что мотивация остается практически на нулевом уровне. Увлеченность больше не вывозит, но деньги могли бы мотивировать меня регулярно работать над этим проектом.

Так что же происходит?


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

Такую схему можно назвать VaaS (Volunteering as a Service, волонтерство как услуга). По сути, это дармовщина для компаний за счет трудолюбивых одиночек. Звучит довольно мрачно, так что позвольте немного сгладить сказанное. Далеко не все компании относятся к программам с открытым кодом подобным образом. А из тех, которые относятся, готов поручиться, 99% не удерживают плату намеренно. Просто в самой системе проектов с открытым кодом не предусмотрено легких способов для компаний оплатить труд людей, которые делают вклад.

Каково решение?


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

Люди, которые делают вклад в проекты с открытым кодом, должны получать вознаграждение, рассчитанное по следующей формуле:

деньги = размер вклада * число пользователей

Если вы активно работаете над проектом, которым пользуются многие люди, выплаты должны это отражать. И, с другой стороны, если вы пару раз отправляли коммиты для продукта, который никому особо не нужен, то это тоже должно сказываться на выплатах (или их отсутствии). Но не всё так просто – на свете есть разные типы разработчиков, участвующих в проектах с открытым кодом. Некоторые из них делают свой вклад в рамках трудоустройства, а это значит, что их работа, скорее всего, уже оплачивается: вознаграждение встроено в зарплату, которую они получают дважды в месяц. Но есть и другой тип участников – они работают над проектами в свое личное время и вне связи с какими-либо организациями.

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

Что могут дать компании?


Самый очевидный ответ – деньги. Менее очевидный ответ – время своих разработчиков. Это весьма распространенная практика. Компании могут выделять часть рабочего времени сотрудников или даже полную ставку на участие в проектах с открытым кодом. Отличный пример реализации этой идеи – Kubernetes и все разработчики, которые делают вклад в проект в рамках рабочего времени. Компании, участвующие в инициативе (Google, Red Hat, VMware и Microsoft), прикладывают руку к успеху соответствующих проектов – они жертвуют временной ресурс своих сотрудников.

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

компенсация = разработчики + деньги

Всю модель можно представить следующим образом:



Все три компании, представленные на схеме, добросовестно вносят свой вклад в проекты с открытым кодом, но делают это по-разному. Первая компания предоставляет и деньги, и время разработчиков, вторая компания просто пересылает деньги, а третья – направляет на проект должное количество сотрудников. Третья компания принимает на себя ту же роль, что и Google или Microsoft для Kubernetes.

Как будут оплачиваться зависимости?


Быстро, назовите все зависимости Kubernetes. Не можете. Я тоже – их слишком много. Не должно получиться так, что справедливую компенсацию получают только продукты, обращенные к пользователю. Такие продукты должны перенаправлять часть полученных ресурсов (денег и рабочих часов) своим зависимостям, чтобы складывалось что-то вроде большого счастливого дерева с вкладами.

Какие могут возникнуть сложности?


Тут много подводных камней, даже если брать в расчет только те, которые пришли мне в голову. Уверен, в реальности все еще сложнее. Именно по этой причине в текущем моменте я отказываюсь возлагать моральную ответственность на компании. Необходимо внедрить систему, которая взимала бы компенсацию с пользователей и распределяла ее по проектам и зависимостям этих проектов. Иначе это просто неподъемно. Вторая компания со схемы выше может в один прекрасный день заявить: «Мы хотим поступать порядочно и оплачивать труд людей, работающих над программами с открытым кодом». Но ээээ… куда именно им посылать деньги? Понятия не имею. Нет никакого способа отправить кому-то оплату без кучи накладных расходов – а это уже несправедливо по отношению ко всем задействованным лицам. И нет, я не считаю GitHub Sponsors достойным решением.

Обобщая сказанное


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

Комментарии (22)


  1. Kruggerr
    12.12.2023 12:19

    Мысль интересная, но вопрос, как это реализровать остается открытым.


  1. Dolios
    12.12.2023 12:19

    Пожалуйста, не делайте изображений с прозрачным фоном.

    Вот так ваши картинки видят те, у кого, так или иначе, включена темная тема:


    1. kulhaker478
      12.12.2023 12:19

      От темы зависит
      Но обводки некоторым векторам не хватает
      Но обводки некоторым векторам не хватает

      Авторам и переводчикам лучше всё-таки не отказываться от прозрачного фона, а адаптировать с учётом двух разных бэкграундов


  1. funca
    12.12.2023 12:19

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

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

    На мой взгляд проблема здесь не в плоскости денег, а - взросления. В сутках по прежнему только 24 часа. Поэтому вы либо опенсорсите на работе (работаете вы на дядю или на себя и свой проект - не важно). Либо прощаетесь с семьёй. Либо - со своими детскими увлечениями. Я выбрал последний вариант.


    1. mvv-rus
      12.12.2023 12:19

      Опенсорс вырос из академической среды.

      Не совсем так. На первом этапе развития IT, когда компьютеры были большими, а программы - маленькими, ПО было бесплатным приложением, помогавшим продавать компьютеры, и его разработка финасировалась за счет продажи оборудования (как правило - эксклюзивного). Но наука и образование, таки да, были тогда важными заказчиками компьютеров.

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

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


  1. ebt
    12.12.2023 12:19

    И нет, я не считаю GitHub Sponsors достойным решением.

    Любопытный посыл, но, к сожалению, в оригинальном посте закрыты комментарии. Полагаю, автор не хочет связываться с мелкомягким монстром.


  1. konsoletyper
    12.12.2023 12:19

    Вторая компания со схемы выше может в один прекрасный день заявить: «Мы
    хотим поступать порядочно и оплачивать труд людей, работающих над
    программами с открытым кодом». Но ээээ… куда именно им посылать деньги?
    Понятия не имею

    Не согласен с автором. По личному опыту народ не сильно торопится донатить. Вот я знаю, что моим проектом пользуется одна большая компания, которой какие-нибудь $50 в месяц вообще не проблема оформить. Я даже обращался к знакомым сотрудникам, говорили, что спросят у начальства. С закономерным итогом. А так, люди не стесняются приходить, спрашивать, что делать, если что-то у них не получается, оставлять issue, просить отревьюить их PR, объяснить, почему сложно реализовать ту или иную фичу - и такое ощущение, что и значок на github, и на сайте проекта, выпадает из их поля зрения. Чтобы набрать спонсоров, надо либо делать или что-то мегаполезное с огромной аудиторией, либо обладать не-инженерными навыками продвижения.


  1. RichardBlanck
    12.12.2023 12:19

    Довольно странная постановка вопроса... Разумеется, никто платить не будет. Юзеры не будут, потому что у них нет денег. Бизнес не будет, потому что он бизнес.
    Я, лично, считаю, что в основе пиара свободного кода лежит обман, обычный для Запада. Из понимания, что софт очень сложен, и заплатить за его разработку в соответствии с обычаем не сможет практически ни один бизнес - родилась идея как не платить.


  1. mikeGolovanov
    12.12.2023 12:19

    Добрый день

    opensource проект может быть хобби, как в описанном случае. Устал, надоело итд - занялись другими активностями (семья, друзья, игры, путешествия итд итп). Какие то обязательства по общению с community, устранению ошибок итд - только в вашей голове. Расслабьтесь, найдите комфортный вам work-life balance. При таких условиях безвозмездная работа вполне себе жизнеспособна и называется for fun (мне по приколу).

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

    Первая волна opensource - "время идеалистов бессребреников" давно прошла. Хорошо, что компании нашли подходы к монетизации, без этого бы вряд ли мы увидели что то толковое с открытым кодом в товарных количествах.


  1. NickDoom
    12.12.2023 12:19

    Есть две мотивации. «Эта фишка нужна лично мне» — но тут проблема порога вхождения, т. к. надо суметь разобраться в работе проекта, плюс исповедовать ту же сторону в инструментальных холиварах, что и автор. Мне, как олдскульному сишнику, старающемуся писать килобайтные проекты, а не гигабайтные, в 99% современного опенсорса делать нечего — я йихних грызусликовых и удавовых языков не разумею. Тут какая-нибудь Викикодия бы решила проблему, наверное. Одна статья — один исходник, онлайн-компиляция…

    Вторая мотивация — донаты. Тут Баунтисорс что-то пытается, не сильно много, но больше, чем ничего.

    И то, и другое может любой проект превратить в нетленное «взглянули гости на пейзаж и прошептали: „Ералаш…“», но коммерческий софт тоже зачастую ералаш, так что тут всё как всегда.


  1. zergon321
    12.12.2023 12:19

    Тут самое время вспомнить эти истории: раз, два. Общего в них то, что обоим людям за их бескорыстный труд, когда они оказались в тяжёлой ситуации, платить никто не захотел. Автору core-js кое-кто на GitHub написал, что надо было с самого начала продумывать стратегию монетизации. Так, например, Игорь Сысоев осуществляет платную поддержку nginx. Но именно донаты - это гиблое дело

    Кто-то мне сейчас скажет: "Да почему какая-то косплэй-шлюха на Patreon зарабатывает бешеные бабки, пока программисты бескорыстно ведут топовые проекты, помогающие другим разработчикам делать мир лучше, и шиш без соли доедают?!".

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

    Во-вторых, потому что истинный смысл опенсурса сейчас - совместная работа больших компаний над программными платформами, от которых зависят они все. Вот есть, например, Linux. Intel выпускает новые процессоры и хочет, чтобы Linux на них эффективно работал, а Google хочет выпускать обновления для ОС Android, которая основана на Linux, а поскольку процессоры от Intel могут быть предназначены для мобильных устройств, то Google и Intel кооперируются в работе над Linux. Кроме того, на этой арене может возникнуть ещё несколько игроков со своими интересами в отношении Linux, и вот они все сотрудничают, чтобы никто не ушёл обиженным и Linux был эффективен для всего. Задача комнатного задрота-мэйнтэйнера в данном случае - поставить себя так, чтобы все эти игроки платили ему деньги. У Торвальдса это сделать получилось. Нет, не спрашивайте меня, я не знаю, как это сделать. Знал бы - уже давно бы сделал

    В-третьих, а вы уверены, что ваш опенсурсный код делает мир лучше? Его ведь вполне могут использовать где-то в криптоскаме, в даркнетном сайте, торгующем ЦП, или в ракетах, которые террористы запускают по мирному населению где-то в отдалённой точке земного шара. ЗОДУМОЙТЕСЬ

    Короче, хотите зарабатывать на своих опенсурсных либах - вшивайте в них майнеры. Т.е. основной код открытый, но необходимая часть (наименее изменяемая при чём) находится в DLL-бинаре, который тоже лежит в репозитории. И в нём же должен лежать майнер, который будет запускаться при динамической линковке


    1. Alesh
      12.12.2023 12:19

      Вшейте майнер... Но это уже не про открытый код, верно? А разговор про опенсоурс.

      Да и на каком этапе вы его "вошьете"? С самого начала? Лучше сразу повесить ценник и закрыть все, меньше подозрений будет вызывать))

      Если когда раскоутили проект, что им пользуется корпорации и сотни других. Форкнут не позже чем на следующий день.

      Мимо кассы вариант))


      1. zergon321
        12.12.2023 12:19

        Вот тебе опенсурсный проект, где просто так ничтоже сумняшеся на глазах у всех лежат какие-то бинари под разные платформы. Что там внутри у них - бог его знает. МБ можно и провести какой-то их аудит с помощью IDA Pro, но занимался ли этим кто-нибудь? Поднимал ли хоть кто-то этот вопрос? И вот такое ты найдёшь вообще в любом проекте на Go, которые вызывает либы на C++ (бинари как раз из них скомпилены)


        1. Alesh
          12.12.2023 12:19

          Никто никому не мешает выложить бинарь на гитхаб, и даже назвать это опенсоурсным проектом. Возможно даже кто-то скачает это, а может даже и запустит) Но это же не сделает этот бинарь оперсоурсом, верно?)


          1. zergon321
            12.12.2023 12:19

            "Вам шашечки или ехать?"

            Тогда вот вам ещё вариант монетизации - на GitHub выкладывать код без документации, примеров и туториалов. Собственно, их и продавать


            1. Alesh
              12.12.2023 12:19

              Мне ехать) А вы за шашечки?)

              А насчёт мануалов, примеров, поддержки - это да, это один из основных и широко используемых способов монетизации.


  1. ItsNickname
    12.12.2023 12:19

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

    Дальше идёт проблема "мы вам не обязаны" и "вы этим пользуетесь на свой риск". Нафиг мне такое счастье уровня мы ни за че не отвечаем у нас лапки и вообще если наше приложение сломает тебе ОС это не мы оно само.


    1. VADemon
      12.12.2023 12:19

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

      Насчет обязанностей, а сколько компаний выходит на мейнтейнеров/видных разработчиков и предлагает им заняться, как это называется, консультационными услугами и поддержкой? Судя по статье и ссылкам выше - ноль, даже в минус. Баги кидают, вопросы задают, PR на ревью просят (ну тут хотя бы 50-50), а от бухгалтерии - тишина. С таким раскладом "мы вам не обязаны" - это даже очень щедро.


    1. Alesh
      12.12.2023 12:19

      Колхоз дело добровольное, не нравится не ешь. А поддержка клиентов, документация, обучение, конфигурация - это основные варианты монетизации опенсоурса, поэтомубесплатноэт не будет.


  1. aax
    12.12.2023 12:19

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

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

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

    Когда прогресс свел в ноль стоимость создания и распостранения копий результатов интелетуального труда, копии можно продавать только под угрозой репрессий. Это следствие экономического закона.

    Замечу, что унести из магазина(или из квартиры соседа), например копьютер или телевизор(тоесть совершить именно хищение, а не его притянутый за уши копирайтерсим лобби как бы "полный аналог" - в виде создания и распострания копии за свой счет), человеку мешает не только и не столько страх репрессий, но и естетсвенная модель поведения, описанная классиками эмпирически еще за долго до появления копирайта в его нынешнем понимании.


    1. mvv-rus
      12.12.2023 12:19

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

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

      И да, частная собственность (не путать с личной: частная собственность подразумевает неограниченное право пользования и распоряжения) - она не является естественной, присущей "самой природе человека": она возникла исторически недавно, а среди некоторых народов (например, Африки) она и до сих пор массами не воспримается как справедливая.

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


      1. aax
        12.12.2023 12:19

        1. Экономически мотивированый обмен трудовыми стоимостями на рынке возник ещё до формирования института частной собственности на средства производства в обозначеном Вами смысле, и рыночный товарообмен продолжился(в части не запрещённой государством) и после отмены частной собственности в СССР. Более того и частная собственность продолжала существовать в Советской России в переходный период НЭПа

        2. Реставрация частной собственности на всем постсоветском пространстве произошла без репрессивного принуждения государства.

        3. Институт копирайта в на том же пространстве в ту же эпоху реально заработал лишь под страхом государственных репрессий.

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