четверг, 28 октября 2010 г.

Коллективное финансирование разработки свободного ПО

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

Наверное, каждый сталкивался со ставшей уже привычной ситуацией, когда, несмотря на просьбы, и казалось бы очевидную полезность, необходимые возможности годами отсутствуют в популярных программах, а ошибки кочуют из версии в версию. Для примера можно посетить: bugs.debian.org, launchpad.net или bugs.kde.org. Отчеты об ошибках двух-трех летней давности, здесь далеко не редкость, а порой можно встретить старожилов возрастом лет 7, если не больше.

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

Почему рынок не платит за свободное ПО?

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

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

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

Видимо, есть надежда, что решение все же можно найти.

Размер имеет значение

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

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

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

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

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

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

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

Пример

Для примера рассмотрим небольшую социальную сеть:

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

Гоша программист и готов исправить ошибку, если ему заплатят хотябы 20$. Он сообщает своим знакомым Игорю и Наташе, что если они заплатят ему по 15$ он решит проблему. Сумма завышена, так как он знает, что его знакомые порой ненадежны и не выполняют обязательства. Так даже, если один из друзей не даст денег, Гоша добавив свои 5$ все равно решит проблему.

Очевидно, ни Игорь, ни Наташа не могут раскошелиться на 15$, поэтому они в свою очередь обращаются к знакомым. Игорь просит по 5$ у Дениса, Васи и Кати. Вася и Катя согласны, а вот Денис не знаком с Игорем достаточно и отказывается, что в общем то не мешает Игорю добавить свои 5$ передать Гоше всю сумму 15$.

Наташа обращается к Денису и Ире и просит у них по 10$.

Ира может дать 5$ и еще 5$ получает у Андрея.

Денис также дает 5$ и просит еще 5$ у Андрея. Поскольку тот уже отдал свои деньги Ире, он перенаправляет запрос Пете. Петя согласен, так что Андрей перенаправляет деньги Денису.

Таким образом Наташа получает 20$ и перенаправляет 15$ Гоше, оставля себе лишние 5$. Пусть это будет на её совести.

Гоша получив 30$ вместо необходимых 20$ с удовольствием исправляет ошибку и отсылает исправленную программу Игорю и Наташе, которые пересылают её дальше. На оставшиеся 10$ он отмечает успешное завершение работы.

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

Заключение

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

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

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

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

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

3 комментария:

  1. В качестве продолжения к статье, с рекомендациями о конкретных действиях можно ознакомиться в следующей статье: http://www.abone.pp.ru/2010/10/donate.html

    ОтветитьУдалить
  2. попахивает пирамидой. есть шанс что какой либо узел накопит достаточно большую сумму и свалит в неизвестном направлении.
    // рублег

    ОтветитьУдалить
  3. Пусть валит. Система так и задумана, чтобы если кто-то свалит, потери распределились бы по всей сети. Из примера видно, что каждый узел вложил не более 5$. Эта сумма, которую можно безболезненно потерять. Тот же кто свалит, сделает это со своими соседями один раз, на следующий раз ему придется искать новых знакомых и нарабатывать репутацию. Прежде, чем через него пойдут средства с которыми можно "свалить" ему придется немало попотеть, чтобы соседи начали ему доверять. Так что валить просто экономически невыгодно. Проще честно вести дела и иметь свой небольшой процент с проходящих потоков.

    ОтветитьУдалить