Рано или поздно многие мейнтейнеры программ с открытым исходным кодом отказываются тратить на это свое время, что приводит к стагнации проекта. Разработчик Уильям Гросс предложил свое решение этой проблемы.
Все разработчики согласятся, что open source код изменил мир. Он позволил сломать стены и превратить некоторые программы в лучшие версии себя. Проблема заключается в том, что многие ценные проекты приходят в застой из-за перегоревших лидеров:
У меня больше нет времени или энергии, чтобы вносить вклад в open source. Мне не платят за эту работу, и всё это время я мог бы потратить на писательство или другие личные дела… По этой причине я решил закончить с работой над open source. — Райан Бигг, бывший мейнтейнер некоторых проектов Ruby и Elixir.
Мне это стоило многих возможностей и несделанных вещей, потому что FubuMVC требовал очень много моего времени, и по этой причине это должно прекратиться. — Джереми Миллер, бывший лидер проекта FubuMVC.
Когда мы решим завести детей, я, вероятно, покину open source насовсем… Этот крайний вариант должен стать решением проблемы. — Нолан Лоусон, один из мейнтейнеров PouchDB
Нам нужна новая норма взаимодействия, вознаграждающая лидеров проектов за потраченное время. Нам нужно забыть об идее того, что любой разработчик, который сообщает о проблеме или отправляет запрос, должен быть автоматически награжден титулом мейнтейнера.
Сначала взглянем, как база открытого кода работает на рынке. Это строительные блоки. Это полезное ПО, стоимость которого должна покрываться бизнесом за счет другой прибыли. Сообщество вокруг кода растет, если пользователи понимают цели программы и видят ее преимущество перед альтернативами. Она может быть лучше, дешевле, либо и лучше, и дешевле.
Если организации нужно улучшить код, она может нанять любого разработчика. Обычно в их же интересах вносить эти изменения обратно в сообщество, потому что, по причине сложности слияния, это единственный способ получения дальнейших улучшений от других пользователей. Эта “гравитация” удерживает сообщества вместе.
Но это также становится бременем для мейнтейнеров проекта, потому что они должны отвечать на эти входящие предложения. И что они получают взамен? В лучшем случае, поддержка сообщества может сыграть им на руку в будущем, но не сейчас. В худшем случае, это эгоистичные потребности за маской альтруизма.
Один класс проектов с открытым исходным кодом избежал этой участи. Что, помимо известности, общего у Linux, MySQL, Android, Chromium и .NET Core? Все они стратегически важны для одной или многих компаний, потому что они дополняют их интересы. Умные компании делают свои дополнения массово доступными, а нет ничего дешевле программы с открытым исходным кодом. Red Hat нужно, чтобы компании использовали Linux для того, чтобы продавать Enterprise Linux; Oracle использует MySQL как стартовый наркотик для MySQL Enterprise; Google хочет, чтобы у всех в мире был телефон и веб-браузер; а Microsoft пытается привлечь разработчиков на платформу, чтобы потом они перешли на облако Azure. Эти проекты напрямую спонсируются крупными компаниями. Но что насчет остальных проектов, которые не являются частью большой стратегии?
Если вы лидер одного из таких проектов, введите годовую плату за членство в сообществе. Открытый код, закрытое сообщество. Пользователи получат сообщение “делайте с нашим кодом все, что хотите, но платите нам за наше время, если вы хотите повлиять на будущее проекта”. Заблокируйте неплатящих пользователей и игнорируйте их письма. Они должны чувствовать, что пропускают все интересное. Также платите участникам за время, потраченное на реализацию нетипичных запросов. Будьте дисциплинированы и помните о YAGNI.
Приведет ли это к сокращению размера сообщества и увеличению количества форков? Безусловно. Но если вы упорны в своих взглядах, и то, что вы делаете, полезно для окружающих, они заплатят, как только захотят внести свой вклад. Ваше желание принимать чей-то вклад должно стать дефицитным ресурсом. Без этого ваши пользователи будут постоянно предлагать изменения с каждой новой версией, которую вы будете выпускать.
Ограничение сообщества особенно важно, если вы хотите поддерживать высокий уровень концептуальной целостности базы кода. Лишенные руководства проекты с либеральными правилами взноса требуют меньше средств.
Чтобы реализовать крупные части проекта, которые не только окупят свою стоимость в вашем бизнесе, но и помогут другим, устройте краудфандинг. Вот несколько историй успеха:
У краудфандинга есть ограничения. Он не работает для огромных проектов. Но опять же, проекты с открытым кодом — это полезные программы, которые не должны быть рискованными и амбициозными.
Эти идеи представляют устойчивый путь развития, они также могут решить проблему разнообразия в open source, которая происходит из его бесплатной природы. Давайте помнить, что время нашей жизни ограничено, и мы будем жалеть о том, которое потратили впустую.