Enkle måter å bidra til Open Source-prosjekter

Når jQuery-prosjektet startet, husker jeg hvor lidenskapelig teamet handlet om å hjelpe utviklere å bruke jQuery JavaScript-biblioteket. Det var et arbeid av kjærlighet med oss ​​alle satt i utallige timer, dag og natt, for å hjelpe til med å vokse prosjektet og utviklerfellesskapet. Og vi gjorde de gratis fordi vi bare elsket å gjøre det. Men da prosjektet vokste, gjorde det også forventninger fra samfunnet når det gjaldt funksjoner og støtte. Og dette er hvor de fleste åpen kildekodeinnsats mislykkes.

Jeg tror de fleste utviklere som legger ut OSS-programvare, gjør det for altruistiske grunner som ønsker å gi tilbake til samfunnet noe som kan løse et kritisk problem.

Som samfunnet trenger å vokse, må du finne måter å ha mer tid til å fokusere på funksjoner. Du kan gjøre dette ved å vokse laget ditt, men det er ikke alltid en løsning. På jQuery-prosjektet økte vi lagstørrelsen og delegert arbeid, men likevel var det en frivilligbasert innsats som innebar at prosjektet var avhengig av andres tilgjengelighet. Og med oss ​​alle med heltidsjobber og mange med familieansvar, kan jeg si at vi klarte å oppnå mye med svært lite tilgjengelighet.

Det andre alternativet som manifesterte var muligheten til å finansiere tid for å fokusere på å jobbe med bestemte oppgaver. Dette kom vanligvis i form av sponsing fra navnemerker som hadde gjort betydelige interne investeringer i jQuery og ønsket at prosjektet skulle lykkes. Dette fungerte faktisk bra fordi det tillot lagmedlemmer å kunne fokusere spesielt på å møte samfunnets behov og fokusere sine evner på de vanskelige områdene som krevde mye oppmerksomhet.

Nå vær så snill, ikke tro at dette bare kom over natten. Det tok lang tid før noen ønsket å bidra til prosjektet og å bevise verdien av innsatsen var den kritiske komponenten til det. jQuery er en viktig del av mange nettsteder og produkter, men det følgende utviklet seg over mange år med hardt arbeid og konsistens og er ikke normen for de fleste OSS-prosjekter. Og de fleste OSS-prosjekter vil aldri nyte nivået av suksess og notoriety jQuery har rett og slett på grunn av timing eller til og med å være "for nisje".

Og det er absolutt ingenting galt med det. Jeg tror de fleste utviklere som legger ut OSS-programvare, gjør det for altruistiske grunner som vil gi tilbake til samfunnet noe som kan løse et kritisk problem. Så hvordan får disse prosjektene en bein som jQuery-prosjektet gjorde?

La oss utforske dette.


OSS-forbrukere vs bidragsytere

Jeg har ikke møtt noen (både offline og online) som ikke har brukt noen åpen programvare. Det er en ganske stor avtale fordi det viser at OSS er overalt. Utviklere stoler på det for å starte opp sin neste gode ide. Bedrifter utnytte det til å redusere kostnadene. Og regjeringer bruker det for å sikre at de møter behovene til deres lokalsamfunn. Å si at det er gjennomgripende ville være en underdrivelse.

Den eneste tingen jeg har følt lenge, er at det er en klar ubalanse mellom forbrukere og bidragsytere. Den enkle som noen kan ta en del av OSS-programvare og kjøre med på grunn av fleksibel lisensiering og lite uten kostnad gjør det utrolig enkelt å glemme at noen der ute faktisk skriver og støtter denne programvaren. Hvis du bare forbruker uten å vurdere tid, krefter og kostnader involvert i det aktuelle programvaren, er det en stor sannsynlighet for at du kommer til å bli påvirket når prosjektet mislykkes. Veien til OSS er strøket med mislykkede og forlatte prosjekter opprettet av utviklere med alle de riktige intensjonene, men hadde ikke ressurser for å holde det i gang.


Hvordan gi tilbake

Det er ikke å si at du må gå all-in som Facebook gjorde med PHP, men det er mange måter å hjelpe et prosjekt fra som du har tatt noe som er verdifullt for deg og din virksomhet. Noen lavt hengende frukt er:

  • Bidragskode - De fleste prosjekter bruker GitHub som gjør at det er enkelt å lage trekkforespørsler
  • Bidragtid - Prosjekter ser alltid etter folk som hjelper med dokumentasjon, støtte og evangelisering
  • Skriv et blogginnlegg - Enkelt nok til å skrive noe som gjør det enklere for andre å bruke et verktøy
  • Spør din arbeidsgiver for tid - Hvis du bruker et OSS-program på jobben, spør arbeidsgiveren om bedriftstid for å bidra tilbake
  • Be din arbeidsgiver om å donere tilbake kode - På samme måte, hvis du utvider funksjonalitet, vurder å bidra med den tilbake under samme lisens av prosjektet

Mange prosjekter har sider som ligner på dette som forklarer spesielt hvordan man skal bidra.

Hvis du av en eller annen grunn ikke kan tilby noen av disse, bør du vurdere å bidra til å finansiere noen av disse anstrengelsene. "Hvordan?" du spør.


Donere på nettet

Det har vært plattformer som springer opp som er designet for å løse dette problemet, og vi skal se på to av de mest populære.

Bountysource - OSS Projects Funding Platform


Nylig kom jeg over en fundraiser for RVM (Ruby Version Manager). Hvis du noen gang har kodet Ruby on Rails, så er jeg ganske sikker på at du vet hvor viktig RVM er. Dessverre er hovedsponsorens slutt støttet, og prosjektet behøvde å finne en annen sponsor, slik at de tok med til et nytt nettsted, kalt Bountysource, som har som mål å gi en finansieringsplattform for open source-programvare.


Jeg fant dette helt fantastisk fordi det egentlig ikke var en ressurs som dette for jQuery-prosjektet (eller MooTools, Prototype, et al.) Som kunne tillate et prosjekt å spinne opp en innsamlingsside med alle verktøyene for å samle inn donasjoner. Og selvfølgelig tillater det enkeltpersoner å nettlesere prosjekter de vil gjerne hjelpe med å finansiere og donere via PayPal eller Google Wallet.

Det som virkelig imponerte meg, er at et prosjekt kan liste ut de tingene de vil oppnå og gjennom crowdsourcing, kan samfunnet bidra til å finansiere ferdigstillelsen av de spesifikke funksjonene gjennom utviklerutbetalinger (kalt "bounty"). Så si at du virkelig ville $ .Deferred funksjonalitet i Zepto.js. Du kan bidra til funksjonsforespørselen for å lokke samfunnet til å gjennomføre, og når det er gjort, vil belønningen bli utbetalt til personen (e) som gjorde det.


Tjenesten adresserer behovet for prosjektet, til og med for å bryte ned bounties til spesifikke oppgaver og verdier, men tillater også samfunnet å bestemme hva som er viktig og finansiere utviklingen av den funksjonen. Det er litt av en KickStarter for åpen kildekode. Veldig kult.

Gittip - Crowdfunding Folk som inspirerer deg


Gittip er en tjeneste jeg fant ut om på grunn av John Resig. Han har vært en ekte advokat for tjenesten, og det sier mye.


Å sitere John:

Jeg så en flott mulighet for utviklingslaget på Khan Academy for å gi tilbake til Open Source-samfunnet på måter som ikke bare var kodenelaterte.

Det er veldig forskjellig fra Bountysource, fordi det er ment å tilby små ukentlige kontantgaver til enkeltpersoner som du føler gir deg en verdi. Du kan gi noe beløp du vil ha opptil $ 100 per uke. Dette er faktisk en stor ressurs for de enkeltmannsprosjektene hvor den ensomme koderen legger til funksjoner, svarer på e-postadresser og arbeider i fellesskapet. Det kan virke irrelevant, men til og med donere fem dollar per uke til at utvikleren kan være det han / hun trenger for å sikre at de vet at deres arbeid er verdsatt.

Det er over 650 lokalsamfunn som er oppført på Gittip, og å velge en vil vise alle de beste giverne og mottakerne:


Dette gjør det også mulig å bore ned i individuelle profilsider slik at du kan bidra til noen som inspirerer deg:


Og i tråd med sin OSS-etos, gir Gittip til og med deg mulighet til å sjekke sin kildekode via Github repo.


Mer "Gjør" enn "Hvordan"

Poenget med denne artikkelen er å drive hjem betydningen av å bidra tilbake til åpen kildekode. Hvis du er forbruker, bør du seriøst vurdere hvor verdifull det biblioteket eller verktøyet er for deg og finne ut hvordan du støtter det. Hvis prosjektet ikke er på Bountysource eller Gittip, hvorfor ikke nå ut til prosjektets eier og be dem om å bli med, så du kan donere.

Og bare fordi du ikke kan være interessert i å bidra med kode betyr ikke at du ikke kan utnytte andre ferdigheter for å hjelpe et prosjekt å vokse. Etter min mening er det eneste største behovet for et åpen kildekode-prosjekt folk som vet hvordan man skal jobbe med et fellesskap. Myke ferdigheter er så viktige og fra mine erfaringer, mangler det sterkt.

Det viktigste er at det egentlig ikke er unnskyldning for ikke å bidra tilbake når du finner noe verdifullt. Bare fordi det er "gratis" betyr ikke at mye investering ikke ble lagt inn i det, og hvis du ikke støtter det, kan det bare gå bort en dag.