Contribuire a un progetto open source: come iniziare

I progetti open source hanno dato vita a una serie di software utili nel corso degli anni. Molte delle grandi tecnologie che utilizziamo oggi sono nate dallo sviluppo open source! Android, Firefox, VLC media player, MongoDB, Linux, Docker e Python solo per citarne alcuni.

Anche molti dei giganti della tecnologia realizzano il vantaggio e consentono ai loro dipendenti di prendersi un giorno libero e dedicare il loro tempo a progetti open source. In effetti, molti hanno stessi progetti open source.

Tuttavia, la stragrande maggioranza dei partecipanti a progetti open source non lavora per i giganti della tecnologia; chiunque può lasciare il segno su un importante software aperto o creare la propria "prossima grande cosa". Essere parte di un progetto open source può anche aiutarti a migliorare le tue abilità, imparare qualcosa di nuovo, ottenere tutoraggio o formare amicizie per tutta la vita. Contribuire a progetti open source dovrebbe essere reciprocamente vantaggioso sia a breve che a lungo termine. Molte aziende assumono attivamente sviluppatori a tempo pieno da quelli che contribuiscono maggiormente a un progetto, e quindi farlo può essere un ottimo modo per mostrare le tue abilità, mentre ne apprendi di nuove.

Questo articolo combina alcuni suggerimenti che condividiamo con coloro che desiderano essere coinvolti con MindsDB e, sebbene ogni progetto sia diverso, si spera che queste idee ti aiuteranno a essere coinvolto in qualsiasi progetto open source.

Pagina GitHub di MindsDB

Prima di dare il tuo primo contributo

1. Valuta te stesso:

Il primo passo è valutare qualsiasi abilità tecnica o non tecnica che tu abbia o desideri migliorare. Chiediti dove posso aggiungere più valore? Questo potrebbe aiutare direttamente a scrivere codice, testare i bug o persino aiutare a migliorare la documentazione in modo che altri possano usare il software in modo più efficiente.

2. Conosci GitHub

Quasi tutti i progetti open source hanno utilizzato un sistema di controllo della versione, uno strumento che aiuta a unire il nuovo codice nel progetto (il "repository" principale). Di solito, la collaborazione è incentrata su un sito Web che ospita il repository centrale. Questi siti web includono Github, Bitbucket e Gitlab, ritenendo che Github sia di gran lunga il più popolare e quello che usiamo qui su MindsDB.

In generale, i sistemi di controllo della versione consentono di tenere traccia di tutte le modifiche in un progetto senza salvare diversi file. Crea un account su Github, accedi ed esplora tutte le diverse schede nella parte superiore del sito Web. Qui troverai informazioni su Github, guide di sviluppo, progetti open source, eventi, conferenze ecc. Puoi imparare tutto sulle basi di un GitHub seguendo questa guida qui.

3. Cerca progetti pertinenti e unisciti alla comunità

Cerca progetti pertinenti su Github in base ai tuoi skil1s. Puoi utilizzare Github Explore a questo scopo o iscriverti a Code Triage per ricevere un'e-mail su un problema diverso ogni giorno. Mentre scegli un progetto da cui iniziare, cerca un progetto che sia mantenuto attivamente (un sacco di impegni) e che abbia molti problemi. Una volta trovati i tuoi progetti pertinenti, avvia il progetto Star & Fork, iscriviti alla sua mailing list e al canale lento. Questo è il modo migliore per ottenere aiuto se sei bloccato nell'impostazione del progetto o nel dare il tuo primo contributo.

Dai il tuo primo contributo

1. Gioca con il software: Trova bug

Per prima cosa, prova il software, installalo e gioca, prova a romperlo, vedi se fa quello che dice sulla scatola. Questo è un ottimo posto dove puoi iniziare ad aggiungere valore molto facilmente, segnalando eventuali problemi che riscontri. È probabile che ogni progetto abbia un modello leggermente diverso per la segnalazione di problemi, ma essenzialmente contengono tutti informazioni simili. (Puoi trovare il modello di rilascio di MindsDB qui)

2. Esplora i problemi esistenti

Una volta che hai capito il progetto a cui vuoi contribuire, esplora il suo repository Github, leggi i documenti e vai alla scheda dei problemi. Qui troverai tutti i problemi aperti su cui puoi lavorare. Questi problemi possono andare dal livello principiante al livello avanzato. Se il repository viene gestito correttamente, i problemi verranno contrassegnati con "principiante", "principianti", "ricercatore di aiuto" ecc. In modo da poter lavorare sulle attività più semplici per acquisire sicurezza ed esperienza con il progetto.

3. Aiuta a migliorare la documentazione

Tuttavia, non è necessario programmare subito. Puoi contribuire alla documentazione, creare la guida per gli sviluppatori, aiutare altre persone a risolvere i loro problemi, ecc. Leggi la documentazione e se ritieni che manchi qualcosa, questo può essere un ottimo primo posto per contribuire. Puoi sollevare un problema o, se ti senti abbastanza sicuro, puoi aggiungere tu stesso le parti mancanti. Puoi dare un'occhiata ai documenti di MindsDB qui.

4. Suggerisci nuove funzionalità

Se ti piace il progetto e lo trovi utile, puoi anche iniziare a richiedere nuove funzionalità per aiutarti a migliorarlo. (Puoi trovare il nostro modello qui) O ancora meglio puoi provare ad aggiungerli tu stesso.

La cattedrale e il bazar

Un libro classico su OSS è The Cathedral and the Bazaar. Esplora lo sviluppo in stile "bazar", un approccio dal basso verso l'alto che dà potere agli sviluppatori e agli utenti. Confrontandolo con lo stile "cattedrale", un approccio dall'alto verso il basso in cui il potere sta ai manager e ai proprietari dei prodotti.

Sono queste idee che hanno dato origine a approcci lavorativi come quello descritto nel Manifesto Agile. Ma non importa quante aziende abbiano cercato di emulare un approccio "bazar" allo sviluppo, non possono farlo altrettanto bene dei progetti open source.

Nel mondo dei progetti aziendali, architetti, manager e proprietari di prodotti aprono la strada. Nel mondo dell'open source, sono gli utenti e gli sviluppatori a modellare le specifiche.

Il software open source è eccezionale perché attinge all '"intelligenza collettiva" dei suoi sviluppatori e utenti. La maggior parte degli sviluppatori in un progetto open source deriva dalla sua base di utenti di base, la maggior parte dei "leader" in un progetto open source sono semplicemente gli sviluppatori che inseriscono più idee e codice.

Questo approccio al "bazar" non è necessariamente migliore dell'approccio alla "cattedrale", ma è un sistema che vale la pena provare. Può dare a un nuovo sviluppatore un grande potere su un pezzo di software, indipendentemente da criteri esterni come l'età o l'anzianità all'interno dell'organizzazione. L'unico segno di scambio è il codice, più prezioso è il contributo, più si influenza il design.

Se non altro, dovresti lavorare su alcuni progetti open source per sperimentare questo stile dal basso verso l'alto di progettazione del software.

Prossimi obiettivi come sviluppatore open source

1. Partecipa alle conferenze

Come sviluppatore open source, puoi partecipare a conferenze ed eventi relativi alla codifica e alla tecnologia. Puoi controllare diversi eventi su Github Explore e provare a partecipare a quegli eventi vicino a te. MindsDB organizzerà incontri per tutto il 2019; se desideri rimanere aggiornato con tutto su MIndsDB puoi iscriverti alla nostra mailing list qui

2. Ricevi pagamenti per lo sviluppo open source

In generale, non sei pagato per lo sviluppo open source poiché la maggior parte del lavoro svolto è volontario. Tuttavia, se non puoi permetterti di trascorrere del tempo non pagato nello sviluppo open source, puoi parlare con il tuo datore di lavoro e presentare l'idea di un progetto che potrebbe interessare anche il tuo datore di lavoro o trovare un progetto che paga il suo sviluppatore open source. Puoi saperne di più dalla guida di Github per ricevere pagamenti per lo sviluppo open source. Molte aziende (tra cui MindsDB) assumono o pagano i migliori collaboratori per il loro lavoro.

3. Trasforma il tuo CV, diventa un mentore e richiedi competizioni open source

Dovresti menzionare tutti i progetti a cui hai contribuito nel tuo CV o aggiungere un link al tuo account GitHub nel tuo CV o in una lettera di accompagnamento. La maggior parte dei datori di lavoro sono colpiti da tali riconoscimenti e preferiscono tali candidati per l'assunzione.

Puoi anche diventare un mentore per le persone nuove allo sviluppo open source. È tempo di restituire alla comunità e fornire assistenza a coloro che hanno appena iniziato. Esistono diversi programmi in cui puoi scegliere di diventare un mentore, ad es. Google Summer of Code, Rails Girls Summer of Code, Outreachy, ecc. O semplicemente per aiutare le persone rispondendo alle loro domande sulle mailing list o StackOverflow.

Adam Carrigan è cofondatore di MindsDB uno strumento facile da usare per aggiungere l'apprendimento automatico ai tuoi progetti e risolvere le sfide relative ai dati. Seguimi su Twitter

Puoi anche seguire il nostro progetto su GitHub e Twitter