I progetti open source sono un ottimo modo per fare crescere le tue skill, condividere idee e diventare parte della community IT. Open source significa che il codice sorgente che sta dietro a un software è condiviso in modo libero a chiunque voglia leggerlo. Ciò implica che puoi vedere esattamente come funziona un sistema e, una volta che sei pronto a farlo, contribuire a esso. Le codebase open source, oltre che a essere aperti a chiunque voglia contribuire, stanno alla base di app e servizi che sono gratuiti da installare e utilizzare. Pertanto, forniscono un’importante alternativa alle soluzioni commerciali.
Il movimento open source si impegna a espandere la portata di molte tecnologie, permettendo a un’intera community di contribuire al software che milioni di utenti usano ogni giorno. E non sono solo i progetti fatti in casa che si basano su questo principio. Al contrario, grandi aziende internazionali come Google, Microsoft e IBM si affidano sempre più alle tecnologie open source per i loro stessi software.
Quindi, come si trovano i progetti open source e come si può contribuire a essi? Possono sembrare un po’ intimidatori all’inizio, soprattutto se hai conoscenze tecniche limitate, ma è totalmente possibile iniziare con interventi minori. Infatti, la maggior parte dei progetti accoglie le contribuzioni di una vasta gamma di utenti, ognuno con competenze diverse. Ci sono molte risorse ed eventi della community per aiutarti a entrare in questo mondo. Per esempio, febbraio è il mese dell’open source. Quindi quale momento migliore per dare un’occhiata a questo fenomeno più da vicino e iniziare a contribuire al mondo del software libero?
Il mese dell’open source
Ogni febbraio, programmatori e contributori si riuniscono per celebrare il mese dell’open source e del software libero (FOSS). In tutto il mondo, si organizzano hackathon, discussioni, eventi sui social media e molto altro per promuovere e incoraggiare le tecnologie open source. Il fenomeno è stato lanciato da Onyx Point, una piccola impresa IT con forti interessi nello sviluppo cooperativo del software. Ed è ufficialmente riconosciuto dal 2017.
Vengono celebrate tutti gli aspetti alle base del movimento FOSS; dai piccoli bug fix agli incontri per sviluppare app da zero in poco tempo seguendo i principi dell’ingegneria del software. Questi “hackathon” sono tipicamente strutturati attorno alle pratiche di sviluppo software agile, come gli sprint. Coinvolgono ingegneri, designer e project manager che lavorano insieme per produrre software di qualità in tempi limitati. Oltre che ad essere divertenti, questi eventi aiutano a dimostrare l’importanza del lavoro collaborativo fin dal primo giorno. Andando in contrasto con la lunga durata di molti progetti aziendali. Nota però che non è necessario partecipare a un hackathon per contribuire al software libero.
Come contribuire?
Se hai anche solo un minimo di interesse per i software open source, troverai certamente un modo per contribuire. Il movimento FOSS è guidato principalmente dalla sua community, quindi puoi beneficiare della sua diversità e della sua portata globale. Non devi essere tra i migliori hacker del mondo: chiunque con delle abilità tecniche ha qualcosa da offrire. Le skill tecniche richieste possono riguardare lo sviluppo front-end e back-end, i database, le reti, il DevOps e altro ancora. In realtà, non devi nemmeno essere un programmatore. Poiché molti progetti open source hanno bisogno anche di contributori per la progettazione dell’interfaccia utente, la documentazione e le traduzioni. Inoltre, i grandi progetti hanno molte delle esigenze tipiche dei software proprietari, come il marketing e il project management. Quindi, come iniziare?
Il software open source utilizza strumenti come Github per gestire il codice e le risorse, nonché per ospitare discussioni sulle direzioni future e i bug riscontrari. Per farti un’idea di cosa stiamo parlando, puoi dare un’occhiata alle repository dei principali progetti FOSS come Mozilla Firefox o LibreOffice. Puoi unirti liberamente a questa community e suggerire idee per nuove funzionalità o segnalare bug. In più, puoi cercare posizioni da beta-tester per essere il primo ad avere accesso a nuove feature.
Dove trovare progetti open source
Sapere come trovare progetti open source è fondamentale, soprattutto se sei un principiante. Se sei pronto a contribuire a codebase online, troverai molte risorse che ti aiuteranno aiutarti a trovare un modo per partecipare. Nelle repository su Github, cerca problemi etichettati come “Good First Issue”, una convenzione pensata per aiutare i principianti a orientarsi nella community FOSS. Dovresti essere in grado di trovare posizioni aperte per la risoluzione di piccoli bug, scrittura della documentazione, test e altro ancora. Tutto ciò con cui contribuirai verrà esaminato dai responsabili del mantenimento o dai proprietari del progetto e la community potrà aiutarti con qualsiasi domanda tu abbia.
Ci sono molti siti che hanno come scopo quello di rendere più facile trovare prosizioni per chi è alle prime armi. A seguire, qualche progetto da tenere d’occhio:
- First Contributions è un progetto GitHub che fornisce risorse per iniziare a contribuire in soli 5 minuti.
- Codetribute è specificamente progettato per chi vuole partire dai progetti di Mozilla. Presenta molti esempi e problemi adatti ai principianti, i quali possono essere ricercati in base a diversi criteri.
- Ovio Projects offre una community con molti progetti adatti ai principianti.
- Up For Grabs presenta un elenco curato di attività perfette per i principianti.
- Hacktoberfest fornisce una lista di opportunità sulla base del linguaggio di programmazione. L’evento si celebra ogni ottobre, ma si può contribuire in qualsiasi momento.
Ognuna di queste piattaforme offre una selezione di progetti open source adatti alle tue competenze e una guida su come contribuire. Consulta anche le Open Source Guides per farti un quadro completo su come iniziare, come unirsi alle community, le best practice riguardo alle contribuzioni, le questioni legali e molto altro ancora.
L’open source è adatto ai principianti?
Nonostante si sia ben consolidato nella community degli sviluppatori software, c’è ancora un po’ di incertezza su chi possa contribuire ai progetti open source e su come e perché farlo. È necessario essere degli hacker ribelli? È un’attività solo per gli appassionati? O anche gli sviluppatori professionisti partecipano?
In realtà, la community FOSS è molto vasta e comprende contributi da sviluppatori di tutti i livelli e in momenti diversi della carriera, oltre che da documentatori, tester, amministratori si sistema e altre figure. Il fatto che grandi attori dei sistemi software internazionali, come IBM e Google, utilizzino l’open source dovrebbe essere sufficiente per dimostrare che non si tratta solo di un’attività amatoriale.
Diamo uno sguardo a alcuni dei progetti open source più di successo nel mondo FOSS: Mozilla Firefox è stato riconosciuto come uno dei migliori browser web per circa due decenni. Linux, tra i sistemi operativi più utilizzati lato server, è anch’esso open source, così come i web server Apache e Nginx. Quindi non dovresti avere più dubbi riguardo alla professionalità dell’open source.
Se stai facendo i tuoi primi passi nel mondo IT, l’open source è anche un ottimo luogo per acquisire esperienza in progetti reali e dare un boost alla tua carriera. Grazie alla sua vibrante community, troverai quasi sempre esperti che ti offriranno guida e supporto. L’idea di mantenere tutto pubblico rimuove inoltre il muore della riservatezza che potresti trovare lavorando a progetti proprietari. Con l’open source, tutti beneficiano della condivisione di conoscenza e skill.
Il ruolo delle repository
Se sei relativamente nuovo alla programmazione, può essere difficile capire la struttura del codice delle complesse architetture dei grandi progetti. Infatti, i progetti più complessi hanno spesso codebase giganti, che non possono essere comprese in un’unica volta e cui i punti di ingresso potrebbero non essere ovvi. Da dove si inizia?
Se non l’hai ancora, avrai bisogno di acquisire una certa dimestichezza con git e GitHub. Git è un sistema di vesionamento collaborativo per codebase che consente di gestire il codice, committando le modifiche man mano che si procede e facendo delle reversion nel caso in cui qualcosa vada storto. GitHub è invece una piattaforma gratuita basata su git e accessibile tramite web che ospita molti progetti open source. Nonché un sistema per tenere traccia dei problemi e della documentazione relative a un sistema software. Consente ai developer di condividere il codice e di fare fork per copiare una repository allo scopo di provare nuove funzionalità o correzioni. Come puoi immaginare, una conoscenza pratica di queste tecnologie è preziosa per fare la differenza nell’ecosistema FOSS.
Tuttavia, le grandi repository possono essere un po’ intimidatorie all’inizio. Navigare in un progetto con milioni di righe di codice non è un compito facile per chi muove i suoi primi passi. Esplorare le decine di fork presenti può sembrare un esercizio di multitasking estremo e il tenere d’occhio il tracker dei problemi può portarti via troppo tempo. Ma non c’è bisogno di farsi prendere dal panico! La chiave è iniziare in modo graduale. Parti clonando, buildando ed eseguendo l’applicazione, questo ti darà un’idea di massima del sofware. Poi, puoi cominciare a esplorare i problemi aperti a cui potresti contribuire. Cerca problemi che richiedono correzioni semplici, come cambiare il nome di un metodo per allinearsi ad un aggiornamento di un’API. Questo ti darà modo di strutturare un flusso di lavoro. Impara a fare il fork di una repo, apportare la modifica desiderata e proporla perchè venga approvata. Se ti blocchi o non sai come procedere, puoi sempre chiedere aiuto alla community.
Una volta rotto il ghiaccio, saprai come proseguire con il tuo lavoro. Prova anche a estendere la copertura dei test. Nello specifico, i test sono anche un ottimo modo per conoscere le funzionalità del codice. Man mano che diventerai più esperto, potrai iniziare a pensare a modifiche e ad aggiornamenti più importanti. Tieni presente che per fare ciò non è necessario comprendere tutta la codebase.
Speriamo che questo articolo ti abbia fatto capire che ci sono molte risorse per aiutarti a trovare progetti open source adatti alla tua esperienza e alle tue esigenze. Non è necessario diventare esperti in una sola volta. Ma una volta partiti, entrerai a far parte di una delle community di sviluppatori più entusiasmanti e dinamiche del mondo.