Статьи

Простые способы внести свой вклад в проекты с открытым исходным кодом

Когда проект jQuery только начинался, я помню, как увлеченно команда помогала разработчикам использовать JavaScript-библиотеку jQuery. Это был труд любви, когда все мы тратили бесчисленное количество часов, днем ​​и ночью, чтобы помочь развитию проекта и сообщества разработчиков. И мы сделали это бесплатно, потому что нам просто нравилось это делать. Но по мере роста проекта росли и ожидания сообщества в отношении возможностей и поддержки. И именно здесь большинство усилий с открытым исходным кодом не масштабируются.

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

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

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

Теперь, пожалуйста, не думайте, что это произошло за одну ночь. Прошло много времени, прежде чем кто-то захотел внести свой вклад в проект, и доказательство ценности усилий было критическим компонентом для этого. JQuery является важной частью многих сайтов и продуктов, но следующие разработаны в течение многих лет напряженной работы и последовательности и не является нормой для большинства проектов OSS. И большинство проектов OSS никогда не будут пользоваться таким уровнем успеха и славы, как у jQuery просто из-за времени или даже из-за того, что они «слишком нишевые».

И в этом нет абсолютно ничего плохого. Я думаю, что большинство разработчиков, выпускающих программное обеспечение OSS, делают это по альтруистическим причинам, желая вернуть сообществу что-то, что может решить критическую проблему. Так как же эти проекты получают поддержку, как проект jQuery?

Давайте рассмотрим это.


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

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


Нельзя сказать, что вам нужно идти ва- банк, как Facebook сделал с PHP, но есть много способов помочь проекту, из которого вы взяли что-то ценное для вас и вашего бизнеса. Некоторые низко висящие фрукты:

  • Внесите свой вклад — большинство проектов используют GitHub, что делает создание запросов на получение безумно простым
  • Посвятите время — Проекты всегда ищут людей, которые помогут с документацией, поддержкой и евангелизацией
  • Написать в блоге — достаточно легко, чтобы написать что-то, что делает использование инструмента проще для других
  • Попросите у своего работодателя время — если вы используете часть программного обеспечения OSS на работе, попросите у своего работодателя время, чтобы компания внесла свой вклад
  • Попросите своего работодателя пожертвовать обратный код. Если вы расширяете функциональность, рассмотрите возможность возврата его под той же лицензией проекта.

У многих проектов есть страницы, подобные этому, которые объясняют, как внести свой вклад.

Если по какой-либо причине вы не можете предложить ни одного из них, вам следует подумать о помощи в финансировании некоторых из этих усилий. «Как?» ты спрашиваешь.


Появились платформы, призванные решить эту проблему, и мы рассмотрим две наиболее популярные из них.

bountysource-логотип

Недавно я наткнулся на сбор средств для RVM (Ruby Version Manager). Если вы когда-либо программировали на Ruby on Rails, то я уверен, что вы знаете, насколько важен RVM. К сожалению, его главный спонсор прекратил свою поддержку, и проекту нужно было найти другого спонсора, поэтому они перешли на новый сайт под названием Bountysource, целью которого является предоставление платформы финансирования программного обеспечения с открытым исходным кодом.

Баунти-РВМ

Я нашел это совершенно потрясающим, потому что на самом деле не было такого ресурса для проекта jQuery (или MooTools, Prototype и др.), Который мог бы позволить проекту раскрутить страницу по сбору средств со всеми инструментами для сбора пожертвований. И, конечно, он позволяет отдельным пользователям просматривать проекты, которые они хотели бы помочь финансировать и делать пожертвования через PayPal или Google Wallet.

Что меня по-настоящему поразило, так это то, что проект может перечислить то, чего он хочет достичь, и посредством краудсорсинга сообщество может помочь финансировать завершение конкретных функций через выплаты разработчикам (так называемая «награда»). Скажем так, вы действительно хотели использовать функциональность $ .Deferred в Zepto.js. Вы можете внести свой вклад в запрос функции, чтобы побудить сообщество к реализации, и после того, как это будет сделано, вознаграждение будет выплачено лицам, которые это сделали.

Баунти-зепто

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

gittip-логотип

Gittip — сервис, о котором я узнал из-за Джона Резига. Он был настоящим сторонником службы, и это говорит о многом.

gittip-дом

Процитирую Джона:

Я увидел прекрасную возможность для команды разработчиков в Академии Хана дать отзыв сообществу Open Source способами, которые не были связаны только с кодом.

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

В Gittip перечислены более 650 сообществ, и при выборе одного из них будут отображены все лучшие дающие и получатели:

gittip-JS

Это также позволяет вам переходить на отдельные страницы профиля, чтобы вы могли помочь тем, кто вас вдохновляет:

gittip-Resig

И в соответствии со своим духом OSS, Gittip даже позволяет вам извлекать его исходный код через репозиторий Github .


Смысл этой статьи заключается в том, чтобы подчеркнуть важность участия в разработке с открытым исходным кодом. Если вы потребитель, то вам следует серьезно оценить, насколько ценна эта библиотека или инструмент для вас, и выяснить, как ее поддерживать. Если проект не в Bountysource или Gittip, почему бы не обратиться к владельцу проекта и попросить его присоединиться, чтобы вы могли пожертвовать.

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

Главное, что действительно нет никакого оправдания, чтобы не внести свой вклад, когда вы найдете что-то ценное. То, что оно «бесплатно», не означает, что в него не было вложено много инвестиций, и если вы его не поддержите, оно может когда-нибудь исчезнуть.