Gemakkelijke manieren om een ​​bijdrage te leveren aan open-sourceprojecten

Toen het jQuery-project voor het eerst begon, herinner ik me hoe gepassioneerd het team was over het helpen van ontwikkelaars om de jQuery JavaScript-bibliotheek te gebruiken. Het was een liefdesarbeid waarbij we allemaal urenlang dag en nacht talloze uren in beslag namen om het project en de gemeenschap van ontwikkelaars te helpen groeien. En we hebben die gratis gedaan omdat we het gewoon geweldig vonden. Maar naarmate het project groeide, deden ook de verwachtingen van de gemeenschap wat betreft functies en ondersteuning. En dit is waar de meeste opensource-inspanningen niet op schaal zijn.

Ik denk dat de meeste ontwikkelaars die OSS-software gebruiken het doen om altruïstische redenen die iets willen teruggeven aan de gemeenschap dat een kritiek probleem kan oplossen.

Naarmate de communitybehoeften toenemen, moet je manieren vinden om meer tijd te hebben om je op functies te concentreren. Je kunt dit doen door je team te laten groeien, maar dat is niet altijd een oplossing. Met betrekking tot het jQuery-project verhoogden we de teamgrootte en het gedelegeerde werk, maar ondanks dat, was vrijwilligerswerk het project afhankelijk van de beschikbaarheid van andere mensen. En met ons allemaal fulltime banen en veel met gezinsverantwoordelijkheden, kan ik zeggen dat we veel hebben bereikt met zeer weinig beschikbaarheid.

De andere optie die zich manifesteerde, was het vermogen om tijd te besteden aan het werken aan specifieke taken. Dit gebeurde meestal in de vorm van sponsoring van bedrijven met een naammerk die aanzienlijke interne investeringen in jQuery hadden gedaan en wilden dat het project slaagde. Dit werkte eigenlijk goed omdat het teamleden in staat stelde om zich specifiek te richten op het voldoen aan de behoeften van de gemeenschap en hun vaardigheden te concentreren op de lastige gebieden die veel toegewijde aandacht vereisten.

Nu, denk alsjeblieft niet dat dit zojuist 's nachts is gebeurd. Het duurde lang voordat iemand een bijdrage aan het project wilde leveren en bewijzen dat de waarde van de inspanning daarvoor de belangrijkste component was. jQuery is een belangrijk onderdeel van veel sites en producten, maar dat heeft zich na jaren van hard werken en consistentie ontwikkeld en is niet de norm voor de meeste OSS-projecten. En de meeste OSS-projecten zullen nooit genieten van het niveau van succes en bekendheid jQuery heeft eenvoudigweg te maken met timing of zelfs "te nis" te zijn.

En daar is absoluut niets mis mee. Ik denk dat de meeste ontwikkelaars die OSS-software gebruiken het doen om altruïstische redenen die iets willen teruggeven aan de gemeenschap dat een kritiek probleem kan oplossen. Dus hoe krijgen deze projecten een voordeel zoals het jQuery-project deed??

Laten we dit verkennen.


OSS-consumenten versus bijdragers

Ik heb nog nooit iemand ontmoet (zowel offline als online) die geen open-source software heeft gebruikt. Dat is een vrij grote deal omdat het laat zien dat OSS overal is. Ontwikkelaars vertrouwen erop om hun volgende geweldige idee op te starten. Bedrijven gebruiken het om kosten te verlagen. En overheden gebruiken het om te zorgen dat ze voldoen aan de behoeften van hun gemeenschap. Zeggen dat het doordringend is, zou een understatement zijn.

Het enige dat ik echter al heel lang gevoeld heb, is dat er een duidelijke onevenwichtigheid bestaat tussen consumenten en donateurs. Het gemak waarmee iemand een stukje OSS-software kan pakken en ermee kan lopen vanwege flexibele licenties en weinig tot geen kosten, maakt het ongelooflijk gemakkelijk om te vergeten dat iemand daar eigenlijk die software schrijft en ondersteunt. Als u gewoon consumeert zonder rekening te houden met de tijd, moeite en kosten van dat stuk software, is de kans groot dat u onderweg minder impact zult ondervinden wanneer het project mislukt. De weg naar OSS is bezaaid met mislukte en in de steek gelaten projecten die door ontwikkelaars met de juiste bedoelingen zijn gemaakt, maar die niet over de middelen beschikten om deze te houden.


Hoe te geven terug

Dat wil niet zeggen dat je all-in moet gaan zoals Facebook deed met PHP, maar er zijn veel manieren om een ​​project te helpen van waaruit je iets hebt meegenomen dat waardevol is voor jou en je bedrijf. Sommige laaghangende vruchten zijn:

  • Contribute-code - De meeste projecten gebruiken GitHub, waardoor het maken van pull-opdrachten waanzinnig eenvoudig is
  • Draag tijd bij - Projecten zijn altijd op zoek naar mensen om te helpen met documentatie, ondersteuning en evangelisatie
  • Schrijf een blogpost - Eenvoudig genoeg om iets te schrijven dat het gebruik van een tool gemakkelijker maakt voor anderen
  • Vraag uw werkgever om tijd - als u een stukje OSS-software op het werk gebruikt, vraag uw werkgever dan om tijd voor het bedrijf om terug te betalen
  • Vraag je werkgever om back-code te doneren - In dezelfde zin, als je functionaliteit uitbreidt, overweeg dan om het terug te dragen onder dezelfde licentie van het project

Veel projecten hebben soortgelijke pagina's die specifiek uitleggen hoe ze een bijdrage kunnen leveren.

Als u om welke reden dan ook geen van deze kunt aanbieden, zou u moeten overwegen om een ​​deel van deze inspanningen te financieren. "Hoe?" je vraagt.


Online doneren

Er zijn platforms ontstaan ​​die zijn ontworpen om dit probleem op te lossen en we gaan een kijkje nemen naar twee van de meest populaire exemplaren.

Bountysource - Het OSS Projects Funding Platform


Onlangs kwam ik een fondsenwerver tegen voor RVM (Ruby Version Manager). Als je ooit hebt gecodeerd in Ruby on Rails, weet ik bijna zeker dat je weet hoe belangrijk RVM is. Helaas beëindigde de hoofdsponsor zijn ondersteuning en moest het project een andere sponsor vinden, zodat ze naar een nieuwe site gingen genaamd Bountysource die een financieringsplatform voor open-source software wil bieden..


Ik vond dit helemaal geweldig, want er was echt geen resource zoals deze voor het jQuery-project (of MooTools, Prototype, et al.) Waarmee een project een inzamelingspagina met alle tools voor het verzamelen van donaties zou kunnen laten draaien. En natuurlijk kunnen individuen via projecten of via PayPal of Google Wallet projecten financieren die ze willen helpen financieren en doneren.

Wat echt indruk op me heeft gemaakt, is het feit dat een project kan aangeven wat ze willen bereiken en dat crowdsourcing de gemeenschap kan helpen om de voltooiing van de specifieke functies te financieren via uitbetalingen van ontwikkelaars (een zogenaamde 'bounty'). Dus zeg dat je het echt wilde $ .Deferred functionaliteit in Zepto.js. U kunt een bijdrage leveren aan het functieverzoek om de community te verleiden om te implementeren. Zodra dit is gebeurd, wordt de premie uitgekeerd aan de persoon of personen die het heeft gedaan.


De dienst beantwoordt aan de behoefte van het project, zelfs tot het punt dat de beloningen worden onderverdeeld in specifieke taken en waarden, maar stelt de gemeenschap ook in staat om te beslissen wat belangrijk is en de ontwikkeling van die functie te financieren. Het is een beetje een KickStarter voor open-source. Heel cool.

Gittip - Crowdfunding mensen die je inspireren


Gittip is een dienst die ik heb ontdekt vanwege John Resig. Hij is een echte voorstander van de dienst geweest en dat zegt veel.


Om John te citeren:

Ik zag een geweldige kans voor het ontwikkelingsteam van Khan Academy om terug te geven aan de Open Source-community op manieren die niet alleen codegerelateerd waren.

Het is heel anders dan Bountysource, omdat het is bedoeld om kleine wekelijkse contante geschenken aan te bieden aan personen waarvan jij denkt dat ze je een waarde bieden. Je kunt elke gewenste hoeveelheid tot $ 100 per week geven. Dit is eigenlijk een geweldige hulpbron voor die eenmansprojecten waarbij de eenzame codeur functies toevoegt, ondersteunings-e-mails beantwoordt en de community aan het werk zet. Het lijkt misschien onbelangrijk, maar zelfs het geven van vijf dollar per week aan die ontwikkelaar is misschien wat hij / zij nodig heeft om ervoor te zorgen dat ze weten dat hun werk wordt gewaardeerd.

Er zijn meer dan 650 communities op Gittip vermeld en door er één te kiezen, worden alle top gevers en ontvangers getoond:


Hiermee kunt u ook inzoomen op afzonderlijke profielpagina's, zodat u bijdraagt ​​aan sommigen die u inspireren:


En in overeenstemming met zijn OSS-ethos, laat Gittip je zelfs zijn broncode afrekenen via zijn Github repo.


Meer "Doen" dan "Hoe"

Het doel van dit artikel is om het belang van het bijdragen aan open source naar huis te brengen. Als u een consument bent, moet u serieus evalueren hoe waardevol die bibliotheek of tool voor u is en uitzoeken hoe deze te ondersteunen. Als het project niet op Bountysource of Gittip staat, neem dan contact op met de projecteigenaar en vraag hen om mee te doen, zodat u kunt doneren.

En omdat u misschien niet geïnteresseerd bent in het bijdragen van code, betekent dit niet dat u andere vaardigheden niet kunt gebruiken om een ​​project te laten groeien. Naar mijn mening zijn de grootste behoefte aan een open-sourceproject mensen die weten hoe te werken met een gemeenschap. Zachte vaardigheden zijn zo belangrijk en uit mijn ervaringen is het moeilijk te begrijpen.

Het belangrijkste is dat er echt geen excuus is om niet terug te dragen als je iets waardevols vindt. Alleen omdat het 'gratis' is, betekent nog niet dat er niet veel in is geïnvesteerd en als je het niet steunt, kan het op een dag gewoon verdwijnen.