Moduri utile de a contribui la proiecte open-source

Când proiectul jQuery a început pentru prima dată, îmi amintesc cât de pasionat a fost echipa de a ajuta dezvoltatorii să folosească biblioteca jQuery JavaScript. A fost o muncă de dragoste, cu toți cei care punem nenumărate ore, zi și noapte, pentru a ajuta la dezvoltarea proiectului și a comunității dezvoltatorilor. Și le-am făcut gratuit, pentru că ne-a plăcut să o facem. Dar, pe măsură ce proiectul a crescut, așteptările comunității în ceea ce privește caracteristicile și sprijinul. Iar aici majoritatea eforturilor de tip open-source nu reușesc să scadă.

Cred că majoritatea dezvoltatorilor care au lansat software-ul OSS o fac din motive altruiste care doresc să dea comunității ceva care ar putea rezolva o problemă critică.

Pe măsură ce nevoile comunității cresc, trebuie să găsești modalități de a avea mai mult timp să te concentrezi pe caracteristici. Puteți face acest lucru prin creșterea echipei, dar asta nu este întotdeauna o soluție. În cadrul proiectului jQuery, am sporit mărimea echipei și munca delegată, dar chiar dacă a fost un efort bazat pe voluntari, proiectul se baza pe disponibilitatea altor persoane. Și cu toți cei care lucrăm cu normă întreagă și mulți cu responsabilități familiale, pot spune că am reușit să realizăm multe, cu foarte puține disponibilități.

Cealaltă opțiune care sa manifestat a fost capacitatea de a finanța timpul pentru a se concentra pe lucrul la anumite sarcini. Acest lucru a apărut, în general, sub forma unor sponsorizări din partea companiilor de nume care au făcut investiții interne substanțiale în jQuery și au dorit ca proiectul să aibă succes. Acest lucru a funcționat de fapt pentru că a permis membrilor echipei să se concentreze în mod special pe satisfacerea nevoilor comunității și să-și concentreze abilitățile în zonele dificile care necesită o atenție deosebită.

Acum, vă rog să nu credeți că tocmai aceasta a apărut peste noapte. A durat mult timp înainte ca cineva să dorească să contribuie la proiect și să dovedească valoarea efortului fiind componenta critică a acestui lucru. jQuery este o parte importantă a multor site-uri și produse, dar care a urmat după ani de muncă și consistență și nu este o normă pentru majoritatea proiectelor OSS. Și cele mai multe proiecte OSS nu se vor bucura niciodată de nivelul de succes și de notorietatea jQuery are pur și simplu din cauza timpului sau chiar fiind "prea nișă".

Și nu este absolut nimic în neregulă cu asta. Cred că majoritatea dezvoltatorilor care au lansat software-ul OSS o fac din motive altruiste care doresc să dea comunității ceva care ar putea rezolva o problemă critică. Deci, cum au făcut aceste proiecte un picior ca și proiectul jQuery?

Să explorăm asta.


Consumatori OSS vs. colaboratori

Nu am întâlnit pe cineva (offline și online) care nu a folosit anumite programe open source. Este o afacere destul de mare pentru că arată că OSS este peste tot. Dezvoltatorii se bazează pe aceasta pentru a-și începe următoarea idee minunată. Companiile le folosesc pentru a reduce costurile. Și guvernele o folosesc pentru a-și asigura satisfacerea nevoilor comunităților lor. A spune că este o pervasiune ar fi o subevaluare.

Singurul lucru pe care l-am simțit de mult timp este că există un dezechilibru clar între consumatori și contribuabili. Ușurința cu care cineva poate să apucă o bucată de software OSS și să ruleze cu acesta din cauza licenței flexibile și puțin până la nici un cost face incredibil de ușor să uiți că cineva acolo scrie și susține de fapt acel software. Dacă pur și simplu consumați fără a lua în considerare timpul, efortul și costurile implicate în acea bucată de software, există o mare probabilitate ca pe drumul pe care îl veți fi afectat atunci când proiectul nu reușește. Drumul către OSS este plin de proiecte eșuate și abandonate create de dezvoltatori cu toate intențiile potrivite, dar pur și simplu nu aveau resursele necesare pentru ao menține.


Cum să renunțați

Nu este de spus că trebuie să mergeți all-in ca Facebook a făcut cu PHP, dar există multe modalități de a ajuta un proiect din care ați luat ceva de valoare pentru dvs. și afacerea dvs. Unele fructe cu agățare scăzută sunt:

  • Contribuți codul - majoritatea proiectelor utilizează GitHub, ceea ce face ca crearea cererilor de tragere să fie foarte ușoară
  • Timpul contribuit - Proiectele caută întotdeauna oameni care să ajute la documentare, sprijin și evanghelizare
  • Scrieți o postare pe blog - Este suficient de ușor să scrieți ceva care face mai ușoară folosirea unui instrument pentru ceilalți
  • Adresați-vă angajatorului dvs. pentru o perioadă de timp - Dacă utilizați o bucată de software OSS la locul de muncă, adresați-vă angajatorului dvs. timp de companie pentru a contribui înapoi
  • Întrebați-l pe angajator să doneze codul din spate - Pe aceeași linie, dacă extindeți funcționalitatea, luați-o în considerare adăugând-o în aceeași licență a proiectului

Multe proiecte au pagini similare cu cele care explică în mod specific cum să contribuie.

Dacă din orice motiv nu puteți oferi niciunul dintre acestea, trebuie să vă gândiți să ajutați la finanțarea unor astfel de eforturi. "Cum?" tu intrebi.


Donarea online

Au apărut platforme care sunt concepute pentru a rezolva această problemă și vom examina două dintre cele mai populare.

Bountysource - Platforma de finanțare a proiectelor OSS


Recent, am dat peste un colector de fonduri pentru RVM (Ruby Version Manager). Dacă ați codificat vreodată în Ruby on Rails, atunci sunt destul de sigur că știți cât de important este RVM. Din păcate, principalul sponsor a încheiat sprijinul său, iar proiectul a trebuit să găsească un alt sponsor, astfel încât au ajuns la un site nou numit Bountysource, care urmărește să ofere o platformă de finanțare pentru software open source.


Am gasit acest lucru minunat pentru ca intr-adevar nu a fost o resursa ca aceasta pentru proiectul jQuery (sau MooTools, Prototype, et al), care ar putea permite unui proiect sa faca o pagina de strangere de fonduri cu toate instrumentele necesare pentru colectarea donatiilor. Și, desigur, permite persoanelor fizice să acceseze proiecte de browser pe care doresc să le finanțeze și să le doneze prin intermediul serviciului PayPal sau Google Wallet.

Ceea ce ma impresionat cu adevarat este faptul ca un proiect poate lista lucrurile pe care doresc sa le indeplineasca si prin intermediul aglomeratiei, comunitatea poate ajuta la finantarea finalizarii caracteristicilor specifice prin intermediul platilor pentru dezvoltatori (numita "bounty"). Deci spuneți că ați vrut cu adevărat $ .Deferred în Zepto.js. S-ar putea să contribuiți la solicitarea caracteristică de a atrage comunitatea să implementeze și odată ce aceasta va fi terminată, recompensa va fi plătită persoanei (persoanelor) care au făcut-o.


Serviciul abordează necesitatea proiectului, chiar și până la distrugerea bonificațiilor pentru anumite sarcini și valori, dar permite și comunității să decidă ce este important și să finanțeze dezvoltarea acestei caracteristici. Este un pic de KickStarter pentru open-source. Foarte tare.

Gittip - Crowdfunding Oamenii care te inspira


Gittip este un serviciu despre care am aflat despre John Resig. A fost un adept al serviciului și asta spune foarte mult.


Pentru a cita pe Ioan:

Am văzut o mare oportunitate pentru echipa de dezvoltare de la Academia Khan să revină comunității Open Source în moduri care nu erau legate doar de cod.

Este foarte diferit de Bountysource în sensul că este menit să ofere mici cadouri săptămânale de numerar persoanelor fizice pe care simțiți că le oferă o valoare. Puteți da orice sumă doriți până la 100 $ pe săptămână. Aceasta este de fapt o resursă excelentă pentru acele proiecte single-man în care coderul singuratic adaugă caracteristici, răspunde la mesajele de suport și lucrează în comunitate. S-ar putea să pară lipsită de importanță, dar chiar și donații de cinci dolari pe săptămână pentru dezvoltator poate fi ceea ce el / ea are nevoie pentru a se asigura că ei știu munca lor este apreciat.

Există peste 650 de comunități listate pe Gittip și selectând unul vor afișa toți cei mai importanți givers și receptoare:


Acest lucru vă permite, de asemenea, să efectuați o analiză detaliată în paginile individuale de profil pentru a vă permite să contribuiți la cineva care vă inspiră:


Și în conformitate cu ethosul său OSS, Gittip vă permite să finalizați codul sursă prin Gothub repo.


Mai mult "Do" decât "Cum"

Scopul acestui articol este de a conduce acasă importanța contribuției înapoi la open-source. Dacă sunteți un consumator, atunci ar trebui să evaluați în mod serios cât de valoroasă este această bibliotecă sau instrument și vă dați seama cum să o sprijiniți. Dacă proiectul nu este pe Bountysource sau Gittip, de ce să nu ajungeți la proprietarul proiectului și să îi cereți să se alăture astfel încât să puteți dona.

Și tocmai pentru că s-ar putea să nu fiți interesat să contribuiți cu codul, nu înseamnă că nu puteți folosi alte abilități pentru a ajuta un proiect să crească. În opinia mea, cea mai mare nevoie unică a unui proiect cu sursă deschisă sunt persoanele care știu să lucreze cu o comunitate. Competențele soft sunt atât de importante și din experiențele mele, lipsite de putere.

Principalul lucru este că într-adevăr nu există nici o scuză de a nu contribui înapoi atunci când găsiți ceva valoros. Doar pentru că este "liber" nu înseamnă că o mulțime de investiții nu a fost pusă în ea și dacă nu o susțineți, ea poate doar să dispară într-o zi.

Cod