"Я делаю открытое ПО, как мне получить финансирование?"
Цель этого документа - составить исчерпывающий список методов, которыми люди зарабатывают на работе над открытым ПО. Надеюсь, что проекты и разработчики с его помощью смогут найти самый подходящий для себя метод.
Список приблизительно упорядочен по возрастанию. Каждая категория содержит ссылку на несколько реально существующих примеров (по возможности не на вебсайт проекта, а на статьи о нём).
Категории не являются взаимоисключающими. К примеру, у проекта может быть фонд, но он также может использовать краудфандинг чтобы собрать средства. Какой-нибудь другой проект может консультировать и пользоваться кнопкой "пожертвовать", и так далее.
- Кнопка пожертвований
- Баунти-кампании
- Краудфандинг (проектный)
- Краудфандинг (регулярный)
- Книги и мерчендайз
- Реклама и спонсорство
- Найм в компанию для работы над проектом
- Начать проект, будучи занятым в компании
- Гранты
- Консалтинг
- Платная поддержка
- SaaS (программное обеспечение как услуга)
- Копилефт + платная лицензия
- Модель с открытым ядром
- Фонды и консорциумы
- Венчурный капитал
- Ограниченная лицензия
ПРИЛОЖЕНИЕ: Сделать вклад в это руководство // Лицензия и атрибуция
ПЕРЕВОДЫ: Китайский традиционный(繁體中文) // Китайский упрощённый(簡體中文) // Итальянский(italiano) // Японский(日本語) // Испанский(español)
*пометка "личные усилия" значит, что финансирование собиралось не проектом, а отдельным человеком
Поместить кнопку "пожертвовать". Stripe и PayPal - примеры сервисов, с помощью которых можно начать принимать пожертвования (в РФ также Киви и Яндекс.Деньги).
- Практически ни к чему не обязывает
- Несложно установить: "Поставил и забыл"
- Обычно много денег так не собрать, если это не направлено на конкретную инициативу
- Нужна организация, которая будет пожертвования принимать, и она может брать за это плату. К примеру, Stripe или PayPal.
- Чтобы не платить налоговые взносы на пожертвования нужна зарегистрированная благотворительная организация (в США это 501(c)(3) некоммерческое юридическое лицо). Software Freedom Conservancy и NumFOCUS - одни из примеров. Физическим лицам и международным кампаниям с этим сложнее.
- Иногда не до конца понятно, кто в проекте "заслужил" деньги и как они распределяются. С этим могут помочь инструменты вроде OpenCollective.
- Защищённый мессенджер ChatSecure
- Система контроля версий Git
- Торрент-клиент Transmission
- Сетевой фреймворк Twisted
Иногда проекты и организации выкладывают задания по разработке открытого ПО с наградами ("исправь этот баг и получи $100). Несколько сайтов из перечня внизу позволяют выкладывать и собирать такие задания.
- Участие открыто для сообщества
- Деньги даются за выполнение определённой работы (больше похоже на оплату услуги чем на пожертвование)
- Особенно популярно для задач, связанных с информационной безопасностью
- Может искажать мотивацию в проекте (низкокачественные ревью, отвлекающие задачи)
- Может провоцировать конфликты на почве степени "заслуженности" награды
- Обычно не приносят много денег за одну задачу (~<$500)
- Не обеспечивают постоянный доход
- Bountysource
- Gitcoin
- GitHub Bug Bounty Program
- Google Patch Rewards
- Internet Bug Bounty
- IssueHunt
- Status Open Bounty
Если у вас есть конкретная идея, которую вы хотите осуществить (не постоянная проектная работа), одиночная краудфандинговая кампания поможет собрать средства. Пожертвовать могут как физические, так и юридические лица.
- Практически ни к чему не обязывает
- Физическому лицу может быть проще провести такую кампанию, например через Kickstarter
- Маркетинговая кампания потребует больших усилий
- Обычно в конце должен быть получен конкретный результат, предоставлены награды пожертвовавшим
- Обычно не приносит очень много денег (~$50.000 за одну кампанию)
- Юридическим лицам не всегда удобно жертвовать на такие кампании
- Andrew Godwin + Django (личные усилия)
- Dave Gandy + Font Awesome
- GDAL Coordinate System Barn Raising
- Michal Papis + Rvm (personal effort)
- Monero Forum Funding System (FFS)
- RESTful WP-CLI
- ribasushi + CPAN (личные усилия)
Если вам нужно финансировать постоянную проектную работу, вы можете настроить регулярный краудфандинг с фиксированным ежемесячным или ежегодным взносом, который продолжается пока донор не откажется от участия. Люди и компании которые пользуются вашим проектом регулярно вполне могут решить помочь с финансированием.
- Практически ни к чему не обязывает
- Может быть юридически удобно для физических лиц Patreon, Salt, Liberapay, OpenCollective, Flattr
- Сложнее привлечь желающих делать регулярные взносы (обычно требует существующего бренда или репутации)
- Сложнее объяснять результаты работы и придумывать награды за регулярные взносы
- Обычно не приносит много денег ($1000-$4000 в месяц)
- Юридическим лицам не всегда удобно участвовать в таких кампаниях
- Babel
- Clojurists Together
- Eran Hammer + hapi Patreon
- Evan You + Vue.js Patreon
- GnuPG
- Ruby Together
- Tom Christie + Django REST framework (личные усилия)
- webpack
Если вы - эксперт в области которую другие люди считают полезной для изучения, вы можете написать и продать книгу или серию книг. Вы также можете найти издателя (вроде O'Reily) или заняться самиздатом. В дополнение к продаже книг, некоторые проекты продают мерч (футболки, худи) в поддержку своих проектов.
- Результат не зависит от самого проекта, что оставляет пространтво для творчества
- Может служить способом продвижения самого проекта
- После некоторого развития может превратиться в постоянный источник дохода
- Часто не приносит серьёзного дохода
- Может отвлекать от основной работы над проектом
- На мерчендайз нужно тратиться заранее
- CocoaPods (финанирование благотворительности)
- Daniel and Audrey Roy Greenfeld + Two Scoops of Django (личные усилия)
- Kyle Simpson + You Don't Know JS (личные усилия)
- Lua
- Sandi Metz + Practical Object-Oriented Design in Ruby (личные усилия)
Если у вашего проекта большая аудитория, вы можете продавать рекламу или подписывать спонсорские контракты. Наверняка у вас довольно узкая аудитория (если у вас проект на Python, скорее всего его пользователи технически знакомы с Python), пользуйтесь этим.
- Бизнес-модель построена на чём-то, за что люди готовы платить
- Для привлечения спонсоров нужна достаточно большая аудитория
- Нужно управлять доверием пользователей и следить за прозрачностью (никакой слежки)
- Находить и работать с клиентами требует значительных усилий
- Могут появиться этические вопросы касательно маркетинга
- Может возникнуть конфликт интересов; ввод противоречивых изменений может повлечь потерю спонсоров/рекламодателей
Компании иногда нанимают сотрудников для работы над открытым ПО. Найдите компанию, в которой задействован проект, над которым вы работаете. Как другой вариант, если у вас есть идея для проекта, найдите компанию которая будет в этом заинтересована. В таких ситуациях полезно иметь практический опыт, на который можно сослаться.
- Пользуется ресурсами тех, у кого они есть (компании)
- Может хорошо соотноситься с нуждами компании
- Приличный доход
- Обычно должно повезти: нет чёткой, проверенной схемы получения такой работы
- Проект должен быть уже известен и иметь пользователей
- Человек на такой должности не приносит прибыли компании, а значит от него легко избавиться
- Проблемы с управлением, компания может воздействовать на проект
- Может влиять на динамику и баланс проекта
- Aaron Patterson + ManageIQ и Ruby, Rails (личные усилия)
- Donald Stufft + Hewlett-Packard и Python packaging (личные усилия)
- Rich Hickey + Cognitect и Clojure
- Ryan Dahl + Joyent и Node.js (видео на YouTube) (личные усилия)
Множество проектов по открытому ПО начинались как сторонние проекты наёмных работников. Проект может со временем перерасти компанию, но начать его ещё во время работы может быть отличным способом.
Если вы хотите попробовать этот метод, убедитесь что вы понимаете правила своей компании касательно работы над открытым ПО. Некоторые компании помогают сотрудникам работать над открытым ПО в рабочее время, некоторые могут отнестись к вашей работе как к проекту компании. Не домысливайте, спросите кого-нибудь из ответственных лиц в вашей компании перед тем как начинать.
- Свободное тестирование новых идей без беспокойства о зарплате
- Может совпадать с нуждами компании
- Подходит для новых, экспериментальных идей
- Нужно делать в свободное время или добиться разрешения делать в рабочее время
- Риск воздействия компании на проект
- Может привести к управленческим осложнениям в будущем
Гранты - денежные дары, которые не требуют возврата. Часто грантодатель получает свою выгоду от выдачи вам гранта, например доступ к вам, демонстрация результата, отчёт о вашей работе или налоговые послабления.
Гранты можно получить из разных источников, таких как компании, софтверные фонды, филантропические организации и правительство. Техническая и юридическая сторона гранта сильно зависит от источника. Например компания может выдать вам "грант", но официально записывать его как инвойс за консалтинг. Филантропический фонд может выдавать гранты только некоммерческим организациям, так что вам придётся такой стать или найти некоммерческую организацию-спонсора. Если гранты вам не знакомы, лучший способ узнать больше о них - пообщаться с кем-нибудь, кто раньше такой получал. Несколько примеров получателей грантов приведены ниже.
- Почти нет обязательств
- Гарантированные деньги помогут сфокусироваться на работе над проектом на какое-то время
- Даёт возможность работать свободно и экспериментировать
- Не так уж много грантодателей (филантропических, правительственных и корпоративных) выдают гранты разработчикам ПО
- Гранты имеют свойство заканчиваться, и после этого придётся искать другие источники дохода
- Andrey Petrov + Stripe Open-Source Retreat и urllib3
- Dash Budget Proposal Tracker
- Dat Project
- Django + Mozilla Open Source Support
- Grin General Fund
- Handshake community grant program
- Libraries.io grant applications
- Segment Open Fellowship
- Sentry Open Source Grant
Консалтинг может быть достаточно гибким способом финансировать работу над открытым ПО. У вас будет больше свободы в организации рабочего времени (например, консультировать 30 часов в неделю и работать над проектом 10 часов в неделю. Консультанты обычно берут больше за свои рабочие часы, чем работники на зарплате, так как поток задач не такой постоянный, они не получают социальных гарантий и т.д. Если вы собираетесь заниматься такой работой регулярно, может понадобиться организовать ООО).
Если ваш проект популярен, вы можете предлагать консалтинг и услуги по самому проекту. Например клиент может заплатить вам за разработку его проекта, разработку чего-нибудь специального или за обучение пользованию проектом.
- Бизнес-модель построёна на том, за что люди готовы платить
- Требует рабочей силы и плохо масштабируется (за редким исключением)
- Задачи бизнеса могут отвлекать от написания кода или выполнения проектных задач
- Может вступить в конфликт с необходимостью разработки простого для использования софта
- Проект должен быть достаточно популярен чтобы люди были готовы платить за связанные с ним услуги
В этой модели код доступен свободно, но пользователи должны заплатить чтобы получить поддержку от поддерживающих проект разработчиков. Это может включать плату за доступ к системе отслеживания ошибок, офисным часам, Slack сообщества или к SLA (соглашение об уровне предоставления услуги).
- Бизнес-модель построена на том, за что люди готовы платить
- Может вступить в конфликт с необходимостью разработки простого для использования софта
- Проект должен быть достаточно популярен чтобы люди были готовы платить
- Поддерживающие проект разработчики не обязательно захотят предоставлять профессиональную поддержку
- Fody: Нужно поддерживать проект на Patreon чтобы открыть запрос на issue или pull.
- Prism:*Поддерживать их на Patreon даёт доступ к Slack сообщества для получения поддержки
- Red Hat
- Платные подписки Tidelift
SaaS значит "программное обеспечение как услуга"(https://en.wikipedia.org/wiki/Software_as_a_service). В этой модели, сам код остаётся открытым, но вы предлагаете платные услуги, такие как исполоьзование основного сайта или хостинг выделенных инстансов. Платящим клиентам обычно предоставляют приоритетную поддержку.
- Может создать сообщество вокруг открытого проекта и зарабатывать на хостинговых услугах
- Позволяет открытым проектам сосредоточиться на пользователях и со временем на использовании проекта корпоративными клиентами.
- Может масштабироваться по числу пользователей
- Зачастую с таким методом хостинг должен быть дешевле чем найм разработчика
- "Двухуровневая" система поддержки ущемляет бесплатных пользователей
- Discourse
- Forge Laravel
- Ghost
- GitLab (also uses open core licensing)
- Moodle
- Sentry
- Travis CI
- WordPress.com
Компании продающие проприетарный софт предпочитают включать лицензии с разрешением (вроде MIT или Apache 2.0) а не копилефт (вроде GPL) в своё ПО потому что использование последнего означает необходимость оставлять какую-то часть копилефт требований в конечном продукте. Поэтому некоторые открытые проекты используют копилефт по умолчанию, но продают исключения лицензий, проприетарные лицензии или лицензии с разрешением компаниям которые хотят преодолеть ограничения копилефта.
- Бизнес-модель построена на том, за что люди готовы платить
- Хорошо масштабируется в случае успеха
- Может вступать в конфликт с необходимостью делать софт открыто доступным
- Проект должен быть достаточно большим для существования спроса
- Работает только для upstream софта который используется при разработке downstream софта
- Могут существовать юридические или финансовые ограничения на перевод кода из открытого в проприетарный
С моделью open core некоторые части софта остаются свободными, в то время как другие являются проприетарными и доступны только платящим пользователям. Обычно это работает когда есть корпоративный спрос на проект.
- Бизнес-модель построена на том, за что люди готовы платить
- Хорошо масштабируется в случае успеха
- Должно быть что-то, за что можно взимать плату (придётся отчуждать некоторые фичи)
- Может вступать в конфликт с необходимостью делать софт открыто доступным
- "Двухуровневая" система поддержки ущемляет бесплатных пользователей
- Может понадобиться CLA (Contributor License Agreement) чтобы принимать поправки в код от сторонних разработчиков, сохраняя за собой возможность релицензировать их под проприетарной лицензией
- GitLab
- Caddy; see also retrospective
- Docker
- Elastic
- Mesosphere
- Phusion Passenger; see also their talk, "Bootstrapping a Business Around Open Source" (video)
- Sidekiq
Фонд это юридическое лицо, способное принимать/распределять пожертвования. Так как они созданы не для генерации прибыли, это хороший выбор чтобы показать свою нейтральность и управлять проектом. В США, фонды зарегистрированы как некоммерческие организации или торговые консорциумы. Множество софтверных фондов выбирают второе из-за сложностей с демонстрацией благотворительной цели.
- Нейтральность. Фонд защищает код и способствует развитию сообщества
- Влияние распределено на большое количество доноров
- Может легитимизировать проект, компаниям может быть легче финансировать фонды, а не физических лиц
- Стоит того только для больших проектов
- Сложно осуществимо по налоговым причинам, есть ограничения
- Требует серьёзных коллективных усилий сообщества и разнообразия навыков (к тому же необходимость собирать средства после создания фонда никуда не денется)
Венчурный капитал - форма финансирования быстрорастущих бизнесов. В отличие от банковского займа или других форм долгового финансирования, венчурные капиталисты в обмен на финансирование рассчитывают на долю в бизнесе. В отличие от займа, если бизнес провалится возвращать деньги венчурным капиталистам не нужно. Но если он станет успешным, нужно быть готовым вернуть капитал в многократном размере.
Венчурный капитал это "высокий риск, высокая доходность": венчурные фонды менее чувствительны к риску, чем банки, но они ожидают больших возвратов в случае успеха. Если вы планируете проводить венчурный раунд, следует оформить юридическое лицо, облагаемое налогом, желательно в штате Дэлавер прим.переводчика - там низкие налоги. Если вам не знаком процесс привлечения венчурных средств, обратитесь к основателям, которые уже успешно привлекли свой капитал.
- Институциональная поддержка поможет вырастить бизнес
- Доступно большое количество капитала
- Венчурные капиталисты ожидают успешный выход из проекта (возврат денег в многократном объёме). Согласно истории, открытым проектам сложно добиться этого по структурным причинам. На самом деле венчурный капитал это не бизнес-модель, а инвестиционный капитал для тех, у кого готова другая бизнес-модель для обеспечения выручки в будушем.
- Венчурный капитал влияет на мотивацию и сбивает приоритеты
- Недоступно для некоммерческих организаций (прим. переводчика: сейчас начали появляться социальные венчурные фонды, но их количество и значимость стремятся к нулю)
Софт с ограниченной лицензией (напоминает старый shareware) не является открытым софтом потому что не удовлетворяет определению открытой лицензии. Исходный код доступен публично или пользователям, заплатившим за лицензию, но свобода распределения или коммерческого использования может быть ограничена.
- Бизнес-модель построена на том, за что люди готовы платить
- Есть потенциал к масштабированию в случае успешности
- На самом деле не является открытым ПО (лишено большинства преимуществ открытого софта)
- Может выглядеть противоречиво и понижать доверие сообщества
- BSL (Business Source License), used by MariaDB
- Fair Source, used by Sourcegraph
- License Zero
- Redis Commons Clause
- Ungit switched back from Faircode to MIT License
Я написала это руководство, чтобы собрать свои знания в одном месте. Понимаю, преимущества и недостатки немного субъективны, но они отражают мои взгляды. Если вы пришлёте правки я их рассмотрю, но у меня не стояло цели учесть все точки зрения.
Если где-то есть фактические ошибки (особенно в кейсах), будет замечательно если вы пришлёте правки. Кейсы в каждой категории расположены в алфавитном порядке. Также будет прекрасно если вы знаете категории, которые не были упомянуты в этом руководстве.
Это руководство доступно по лицензии Creative Commons CC0 1.0, вы можете свободно использовать его для любых (коммерческих и некоммерческих) целей, без необходимости атрибуции автора (общее пользование). Если вы решили спользовать его, буду рада если вы поделитесь этим со мной в Твиттере: @nayafia), но вы не обязаны это делать.