Il Red Hat Summit Connect torna anche quest’anno, consolidandosi come il principale evento in Italia dedicato all'innovazione tecnologica e al mondo open source. Le due tappe italiane, che si terranno il 7 novembre a Roma e il 19 novembre a Milano, rappresentano...
Negli ultimi anni, l’open source si è diffuso come metodo principale per lo sviluppo software, influenzando non solo il settore tecnologico, ma anche molti altri campi. Le aziende sfruttano il codice open source per sviluppare i loro prodotti e servizi commerciali, riconoscendone il valore strategico.
Partecipare all’open source non significa soltanto contribuire ai progetti tecnici, ma anche aderire ai valori e supportare attivamente le iniziative. Far parte delle community e sostenerle è possibile quindi anche se non si è sviluppatori, contribuendo ad esempio alla realizzazione di eventi, utilizzando i propri canali per promuovere valori e iniziative, diventare ambassador di community/fondazioni/eventi tecnici e/o di divulgazione attraendo nuovi sostenitori e appassionati.
Tuttavia, avvicinarsi alle community senza una chiara comprensione delle loro regole e del funzionamento dei singoli progetti può risultare frustrante sia per le aziende che per i singoli contributori. Quindi, cosa significa contribuire all’open source e come farlo? Abbiamo creato una guida breve per provare a rispondere alla domanda.
Contribuire come individuo
Uno degli aspetti più sorprendenti del contribuire ai progetti open source è l’apprendimento rapido. Lavorare a stretto contatto con sviluppatori esperti e osservare il loro codice migliorerà le competenze di programmazione, rendendoti più versatile e competente.
E’ possibile entrare a far parte di una rete globale di professionisti brillanti. Collaborare con sviluppatori di diverse culture e background offre l’opportunità di apprendere da loro, ricevere mentoring e aprire porte a nuove collaborazioni e opportunità di lavoro. Potrai inoltre fare network, partecipare e contribuire alla realizzazione di iniziative e metterti alla prova in prima persona con speech, panel e tavole rotonde. Potrai ispirare altri a fare lo stesso e trasmettere a tua volta passione e conoscenze ad altri sviluppatori e appassionati.
Potresti creare e rafforzare il tuo personal brand. Partecipare a iniziative e fiere di settore come organizzatore/supporter/speaker ti consentirà di farti conoscere, costruire e consolidare relazioni oltre che la tua reputazione, aprendoti ulteriori porte nel mondo professionale.
Il coinvolgimento attivo nei progetti aumenta la capacità di risoluzione dei problemi e rafforza lo spirito collaborativo. Contribuendo ai progetti open source, ti immergerai in una cultura che valorizza flussi di lavoro efficienti e una collaborazione efficace. Questo consente di acquisire conoscenze su come vengono organizzati, mantenuti e sviluppati i progetti software su larga scala. Si apre un meccanismo di feedback e revisioni del codice da parte di collaboratori esperti, permettendo di migliorare il personale stile di codifica.
Possibilità di crescita a livello personale e professionale. Superare sfide, ricevere feedback costruttivi e partecipare attivamente a una community ampia aumenterà la fiducia nelle tue capacità e la resilienza. Queste esperienze rafforzeranno le tue skills e ti consentiranno anche di costruire relazioni di business e partnership, un proprio network professionale di riferimento, diventare ambassador e quindi metterti alla prova con speech per divulgarne i valori, diventare punto di riferimento per altri che ancora non hanno aderito.
Come è emerso anche durante il KCD Italy 2024 è possibile contribuire a iniziative open source in un infinità di modi. Non saper programmare non significa non poter far parte di una community, che ha bisogno di diverse figure per sostenerla e divulgarla: dal marketing al sales, dalle risorse umane alla comunicazione; ogni persona può dare il proprio contributo, indipendentemente dal ruolo o dipartimento.
Contribuire come azienda
Oggi è quasi impossibile trovare un’organizzazione che non tragga in qualche modo beneficio dal software open source. Alcune aziende, come Intel, IBM e Samsung, hanno interi programmi open source nati con lo scopo di contribuire alle community.
Come riportato dall’Harvard Business School, il 96% dei programmi commerciali include codice creato, modificato o distribuito gratuitamente da forum tecnologici aperti al pubblico.
Questo dato ci fa capire quanto sia impattante oggi l’open source e quanto sia importante supportare attivamente sia i progetti che le community.
Esistono poi una serie di vantaggi per le aziende che contribuiscono:
- attrarre talenti: lavorando nella community, puoi attrarre persone che desiderano lavorare in un progetto open source. Inoltre, i dipendenti possono identificare potenziali candidati e talenti all’interno della community.
- Ridurre i costi di manutenzione: contribuire attivamente ai progetti open source utilizzati dall’azienda permette di integrare direttamente nel progetto principale eventuali correzioni di bug o nuove funzionalità sviluppate internamente. Questo riduce i costi associati alla manutenzione e all’aggiornamento del software, evitando la necessità di gestire versioni personalizzate separate.
- Guidare la direzione del progetto: partecipare attivamente allo sviluppo di un progetto open source consente all’azienda di influenzare la direzione e le funzionalità future del progetto. Avere collaboratori che contribuiscono regolarmente permette di orientare lo sviluppo del software verso le esigenze specifiche dell’azienda, garantendo che le funzionalità siano implementate in linea con gli obiettivi aziendali.
- Accelerare lo sviluppo delle competenze: contribuire ai progetti open source offre ai dipendenti l’opportunità di lavorare su sfide reali e di collaborare con una comunità globale di sviluppatori. Questo ambiente di apprendimento accelerato permette ai dipendenti di migliorare rapidamente le loro competenze tecniche e di acquisire esperienza pratica su tecnologie avanzate.
- Networking e collaborazione globale: partecipare a progetti open source significa inserire l’azienda in una rete globale di sviluppatori e professionisti del settore. Questa rete può portare a collaborazioni fruttuose, nuove idee e opportunità di business. Il networking con professionisti di diverse culture e background arricchisce le conoscenze e le prospettive aziendali.
- Consolidare la reputazione aziendale: contribuire ai progetti open source può consolidare la reputazione dell’azienda sia all’interno della comunità open source sia presso i clienti e i partner. Un impegno attivo nei confronti dell’open source dimostra l’adesione a valori di trasparenza, collaborazione e innovazione, elementi che possono rafforzare la credibilità dell’azienda.
- Accesso a soluzioni innovative e sicure: collaborare con la comunità open source permette di accedere rapidamente a soluzioni innovative e a miglioramenti continui del software. La natura collaborativa dell’open source consente una rapida identificazione e risoluzione delle vulnerabilità di sicurezza, garantendo che il software utilizzato dall’azienda sia sempre aggiornato e sicuro.
Come contribuire in un progetto
Il processo di contributo varia a seconda del progetto open source, questo perchè:
- I progetti hanno linee guida diverse su stile di codifica, linguaggio, formattazione, numeri di bug/ticket, tempi di rilascio e altro.
- Alcuni progetti richiedono accordi firmati dai collaboratori, mentre altri hanno procedure di approvazione o altri processi.
- Il progetto potrebbe richiedere che le patch vengano pubblicate sulla mailing list, mentre altri richiederanno richieste di pull.
È importante iniziare leggendo la documentazione su come contribuire, spesso inclusa come file CONTRIBUTING o README nella directory principale del repository del codice.
Dopo aver inviato un contributo utilizzando il processo descritto nella documentazione, dovrai essere disponibile a rispondere al feedback, che può includere domande sul funzionamento del codice o richieste di miglioramenti. Tieni presente che se il tuo contributo è accettato, potresti essere tenuto a mantenerlo a lungo termine, specialmente per contributi di grandi dimensioni o nuove funzionalità.
Ricorda che ci sono anche alcune buone pratiche da rispettare per partecipare a un progetto open source:
- unisciti alla community: leggi la documentazione per scoprire come partecipare. Ad esempio, invia messaggi alle mailing list e partecipa agli incontri.
- contribuisci al progetto: partecipa con contributi di valore che siano allineati con gli obiettivi del progetto.
- comprendi e rispetta le norme: assicurati che i tuoi contributi siano di alta qualità e rispondano alle esigenze del progetto.
- comunica in modo aperto e onesto: rendi chiare le tue intenzioni e ascolta il feedback della community.
- sii pronto ad adattarti: ogni community è unica. Sii flessibile e adattati alle norme e alle dinamiche della community.
Contribuire ai progetti open source può portare a vantaggi significativi per le aziende. Con la giusta strategia e approccio, le organizzazioni possono creare relazioni positive e produttive con le community open source, beneficiando di una collaborazione che porta valore sia all’azienda che alla comunità.
Governance e organizzazione dei progetti
Ogni progetto open source ha struttura e governance chiaramente descritte nel sito web del progetto o nella documentazione. Anche se il modello di governance varia notevolmente da un progetto all’altro, ci sono alcuni punti comuni:
- Solitamente, c’è un leader responsabile delle decisioni finali su funzionalità, release e altre attività. In alcuni casi, si tratta di una singola persona, in altri potrebbero esserci comitati responsabili.
- Il leader può decidere di delegare alcune decisioni su specifici prodotti a persone responsabili chiamate manutentori. Nei progetti più grandi, i manutentori possono a loro volta delegare a persone la responsabilità di alcuni sottocomponenti.
- Alcuni progetti hanno gruppi di persone chiamate committers, considerate affidabili e responsabili, autorizzate a impegnarsi direttamente in alcune parti del progetto. I contributi dei committers sono comunque soggetti a revisione da parte dei manutentori o dei leader del progetto.
- Molte persone (definite contributors) contribuiscono a progetti open source con codice, documentazione e altro, solitamente soggetti a revisione prima dell’inclusione.
- Infine gli utenti che utilizzano effettivamente il prodotto e restituiscono quindi feedback necessari al miglioramento dello stesso.
Difficoltà comuni: come superarle
Negli anni, il rapporto tra alcuni progetti open source e le aziende che li utilizzano o vi contribuiscono è stato altalenante. Le organizzazioni spesso faticano a capire come contribuire in modo produttivo poiché sono abituate a relazioni commerciali che non sempre funzionano per i progetti open source. Un’altra sfida è che un’organizzazione può sembrare egoista quando persegue la sua strategia di business seppur non totalmente allineata alla strategia del progetto open source, rendendo la community meno incline alla collaborazione.
L’azienda deve investire sui dipendenti, e sul tempo passato a lavorare ai progetti open, dandogli modo di dedicarsi attivamente. I dipendenti devono comprendere i processi e le norme di contributo del progetto per aumentare le possibilità che i loro contributi vengano accettati. Se l’organizzazione è nuova a un progetto open source, potrebbe essere utile assumere qualcuno che ha già contribuito ed è conosciuto nella community.
Esistono anche ulteriori metodi per sostenere un progetto. Molti di questi e le fondazioni che li supportano necessitano di risorse che le organizzazioni possono fornire, come infrastrutture, finanziamenti, marketing e servizi legali. Molti progetti consentono alle aziende di sponsorizzare o unirsi formalmente, contribuendo con finanziamenti o personale in cambio di un ruolo consultivo nel progetto o maggiore visibilità.
Conclusione
Contribuire alle community open source rappresenta un’opportunità straordinaria sia per individui che per aziende. Negli ultimi anni, l’open source non ha rivoluzionato soltanto il panorama tecnologico ma anche molti altri settori. Le aziende, riconoscendo il valore strategico di queste comunità, utilizzano e supportano il software open source per innovare e migliorare i propri prodotti e servizi. I singoli individui, possono far parte di un ambiente di apprendimento accelerato, fare networking, e costruire un proprio brand personale. Collaborare con la community, composta da esperti, sostenitori, appassionati, permette di acquisire nuove competenze, migliorare quelle esistenti e crescere sia a livello personale che professionale.