Volevo scrivere questo articolo da un po’ di tempo, e l’occasione me l’ha data la recente discussione tra Matt Mullenweg e WP Engine.
Nel mondo dello sviluppo software, poche cose hanno avuto un impatto tanto dirompente quanto l’ascesa del software open source (OSS). Dalla sua umile nascita nei primi giorni dell’informatica al suo attuale status di pietra angolare del mondo digitale, l’open source ha rivoluzionato il modo in cui creiamo, distribuiamo e consumiamo la tecnologia.
Ma al cuore di questo movimento giace un paradosso, un software OSS liberamente disponibile, modificabile e ridistribuibile, richiede risorse significative per essere sviluppato e mantenuto.
Il famoso saggio di Eric S. Raymond, “La cattedrale e il bazaar“, ha catturato magnificamente l’essenza dello sviluppo open source. Ha contrapposto il modello “cattedrale” dello sviluppo del software proprietario – centralizzato e gelosamente custodito – con il modello “bazaar” dell’open source – decentralizzato, trasparente e guidato dalla comunità. Questo modello bazaar ha portato a un’innovazione e una collaborazione senza precedenti, ma ha anche dato origine a sfide complesse in termini di sostenibilità e governance.
Mentre navighiamo nel terzo decennio del XXI secolo, il movimento open source si trova a un bivio. L’immenso successo dei progetti open source ha attirato un notevole interesse commerciale, portando a una delicata danza tra innovazione guidata dalla comunità e sfruttamento orientato al profitto. La sostenibilità dei progetti open source dipende ora dal trovare un equilibrio tra questi interessi spesso contrastanti, assicurando che lo spirito di apertura e collaborazione possa coesistere con le realtà di un’economia capitalista.
Proviamo ad esplorare il complesso panorama della sostenibilità dell’open source, esaminando le considerazioni economiche, di governance ed etiche che plasmano il futuro di questa componente vitale della nostra infrastruttura digitale. Analizzando conflitti recenti, modelli di successo e tendenze emergenti, puntiamo a far luce sul percorso futuro per la sostenibilità dell’open source in un ecosistema tecnologico sempre più complesso.
La Promessa dell’Open Source
Il modello open source di sviluppo software ha rivoluzionato l’industria tech, offrendo un approccio collaborativo che sfrutta l’intelligenza collettiva degli sviluppatori di tutto il mondo. Nel suo nucleo, l’open source incarna i principi di trasparenza, flessibilità e innovazione guidata dalla comunità.
I benefici di questo modello sono molteplici:
- Innovazione Rapida: Permettendo a chiunque di visualizzare, modificare e contribuire al codice sorgente, i progetti open source possono evolversi a un ritmo che spesso supera le alternative proprietarie. Le diverse prospettive e competenze dei contributori portano a soluzioni creative e rapide correzioni di bug.
- Trasparenza: La natura aperta del codice sorgente assicura che le vulnerabilità di sicurezza possano essere identificate e affrontate rapidamente. Inoltre, favorisce la fiducia tra gli utenti, che possono verificare autonomamente la funzionalità e la sicurezza del software.
- Efficienza dei Costi: Per gli utenti, il software open source spesso non ha costi, riducendo le barriere all’ingresso e consentendo un’adozione diffusa. Per le aziende, può ridurre significativamente i costi di sviluppo sfruttando componenti open source esistenti.
- Flessibilità e Personalizzazione: Gli utenti e le organizzazioni possono modificare il software open source per adattarlo alle loro esigenze specifiche, un livello di controllo tipicamente non disponibile con le soluzioni proprietarie.
Le storie di successo dell’open source sono numerose e impressionanti. Linux, il sistema operativo open source, alimenta tutto, dagli smartphone ai supercomputer. WordPress, un sistema di gestione dei contenuti open source in PHP, gestisce oltre il 40% di tutti i siti web su internet. OpenSSL per le comunicazioni sicure, e innumerevoli linguaggi di programmazione e framework dimostrano l’influenza pervasiva dell’open source nella nostra infrastruttura digitale.
Questi successi evidenziano il potenziale del modello open source di creare soluzioni software robuste e ampiamente adottate. Tuttavia, sollevano anche domande su come sostenere questi progetti nel lungo termine, specialmente quando diventano componenti critiche del nostro panorama tecnologico (come è successo con XYZ).
L’Economia dell’Open Source
Uno dei miei primi corsi svolti in Bologna Business School fu sui modelli di business dell’open source circa 8 anni fa (che sia ora di riproporlo?). Da allora le cose non sono sostanzialmente cambiate, forse però si è inasprita ulteriormente il dissapore tra le grandi aziende ed i contributori.
Banalizzando il tutto potremmo dire che le dinamiche economiche del software open source presentano una sfida unica. Come si sostiene un progetto che è liberamente disponibile e apertamente modificabile?
I modelli di finanziamento tradizionali per l’open source hanno incluso prevalentemente:
- Donazioni: Utenti individuali o organizzazioni contribuiscono finanziariamente per sostenere lo sviluppo del progetto.
- Sponsorizzazioni: Le aziende forniscono supporto finanziario in cambio di riconoscimento o influenza sulla direzione del progetto.
- Sovvenzioni: Organizzazioni no-profit o enti governativi forniscono finanziamenti per lo sviluppo open source.
Mentre questi modelli hanno sostenuto molti progetti, spesso si rivelano insufficienti per software su larga scala, mission-critical.
Questa realtà ha dato origine a vari modelli di business open source commerciali:
- Supporto e Servizi: Le aziende offrono supporto a pagamento, formazione e servizi di consulenza intorno al prodotto open source (ad esempio, il modello di Red Hat con Linux).
- Open Core: Il prodotto core è open source, ma funzionalità aggiuntive proprietarie vengono vendute commercialmente (ad esempio, l’approccio di GitLab).
- Servizi Hosted: Il software è open source, ma un’azienda offre una versione ospitata e gestita come servizio (ad esempio, WordPress.com per WordPress).
Questi modelli tentano di bilanciare l’etica dell’open source con la necessità di un reddito sostenibile. Tuttavia, introducono anche il potenziale di conflitto tra gli interessi della comunità e gli imperativi commerciali, soprattutto se dietro l’azienda si è inserito un fondo di investimento.
Il problema del “free rider” è una sfida significativa nell’economia open source. Le aziende possono utilizzare e beneficiare del software open source senza contribuire in cambio, né in codice né finanziariamente. Questo problema è emerso in primo piano con la recente decisione di HashiCorp di cambiare la licenza del suo popolare strumento di infrastructure-as-a-code, Terraform.
La mossa di HashiCorp è stata motivata dalla preoccupazione che i grandi provider cloud stessero offrendo i prodotti open source di HashiCorp come servizi gestiti senza contribuire significativamente al loro sviluppo. Questa situazione evidenzia la tensione tra il principio open source del libero utilizzo e la necessità per le aziende di proteggere i propri investimenti e garantire la sostenibilità del progetto.
Il caso HashiCorp solleva diverse domande:
- Come possono i progetti open source proteggersi dallo sfruttamento mantenendo lo spirito di apertura?
- Quali responsabilità hanno le aziende quando traggono profitto dal software open source?
Queste domande ci portano a considerare le dimensioni etiche del coinvolgimento commerciale nell’open source.
La Responsabilità delle Entità Commerciali
Con il software open source diventato sempre più centrale (e necessario) per l’industria tecnologica, le considerazioni etiche che circondano il suo uso e sviluppo sono diventate più complesse. Le aziende che costruiscono i loro modelli di business sul software open source affrontano un imperativo morale di contribuire ai progetti da cui dipendono.
Il concetto di “restituire” alla comunità non è solo un ideale altruistico; è una necessità pratica per la salute a lungo termine dell’ecosistema open source.
I contributi possono assumere varie forme:
- Contributi di codice: Correggere bug, aggiungere funzionalità o migliorare le prestazioni.
- Documentazione: Creare o migliorare guide utente, documentazione API e tutorial.
- Supporto finanziario: Fornire finanziamenti per lo sviluppo, l’infrastruttura o gli stipendi degli sviluppatori.
- Coinvolgimento della comunità: Partecipare a discussioni, organizzare eventi o mentorare nuovi contributori.
La recente disputa tra WordPress.org e WP Engine illustra le tensioni che possono sorgere quando si percepisce che le entità commerciali non contribuiscono adeguatamente ai progetti open source da cui traggono profitto. WordPress, un sistema di gestione dei contenuti open source, alimenta una porzione significativa del web. WP Engine, una società di hosting specializzata in siti WordPress, ha costruito un business, di svariate centinaia di milioni di dollari, intorno a quest’ultimo.
Tuttavia, WordPress.org, guidata dal co-fondatore Matt Mullenweg, ha accusato WP Engine di non contribuire sufficientemente al progetto WordPress in relazione ai benefici che ne traggono. Questo conflitto evidenzia diversi problemi chiave:
- Uso del marchio: Come dovrebbero i progetti open source controllare l’uso dei loro marchi da parte di entità commerciali?
- Metriche di contribuzione: Come misuriamo e valutiamo i diversi tipi di contributi ai progetti open source?
- Uso equo vs sfruttamento: A che punto l’uso commerciale del software open source oltrepassa il confine dello sfruttamento?
La disputa WordPress/WP Engine sottolinea la necessità di linee guida e aspettative più chiare riguardo all’uso commerciale del software open source. Solleva anche domande sul ruolo della governance del progetto nella gestione di queste relazioni.
Governance e Sostenibilità
Le strutture di governance dei progetti open source giocano un ruolo cruciale nella loro sostenibilità a lungo termine. Queste strutture devono bilanciare le esigenze di vari stakeholder, inclusi i contributori individuali, le entità commerciali e gli utenti finali.
Diversi modelli di governance sono emersi nel mondo open source:
- Dittatore Benevolo a Vita (BDFL, il mio preferito): Un singolo individuo o un piccolo gruppo mantiene il controllo ultimo sul progetto (ad esempio, Linus Torvalds con Linux).
- Meritocrazia: Il potere decisionale si guadagna attraverso contributi e riconoscimento dei pari (ad esempio, i progetti della Apache Software Foundation).
- Guidato da aziende: Una singola azienda mantiene il controllo primario ma accetta contributi esterni (ad esempio, Google con Android).
- Guidato da fondazioni (quello che sta prendendo più piede negli ultimi anni): Una fondazione no-profit supervisiona il progetto, spesso con un consiglio che rappresenta vari stakeholder (ad esempio, Linux Foundation, Mozilla Foundation, etc.).
Ogni modello ha i suoi punti di forza e di debolezza, e la scelta della struttura di governance può influenzare significativamente la sostenibilità di un progetto e la sua capacità di navigare i conflitti.
Le fondazioni sono diventate sempre più importanti nell’ecosistema open source. Organizzazioni come la Linux Foundation e la Apache Software Foundation forniscono supporto legale, finanziario e organizzativo a numerosi progetti open source. Possono agire come arbitri neutrali nelle dispute e aiutare a garantire che i progetti rimangano concentrati sulle loro missioni principali piuttosto che essere eccessivamente influenzati da una singola entità commerciale.
Tuttavia, anche i progetti guidati da fondazioni devono affrontare la sfida di bilanciare gli interessi della comunità con le realtà commerciali. Con il software open source che diventa sempre più critico per l’infrastruttura globale, c’è una crescente necessità di modelli di governance che possano gestire efficacemente gli interessi concorrenti di vari stakeholder.
Si sta iniziando anche a parlare di valutare come OSS critico alla stessa stregua di Software as a Public Good e gestito da enti come le Nazioni Unite, il concetto da poco espresso da Github apre la discussione sulla tragedia dei beni comuni.
La Tragedia dei Beni Comuni e la Motivazione dei Contributi
Le sfide di sostenibilità affrontate dai progetti open source spesso assomigliano a un classico problema economico: la tragedia dei beni comuni. In questo scenario, gli utenti individuali che agiscono nel proprio interesse possono esaurire una risorsa condivisa, danneggiando alla fine tutti, inclusi loro stessi. Nel contesto dell’open source, i “beni comuni” sono il software stesso, insieme al tempo e allo sforzo dei suoi manutentori.
Quando aziende o individui usano il software open source senza contribuire in cambio, stanno essenzialmente sfruttando gli sforzi altrui. Nel tempo, questo può portare al burnout dei manutentori, alla stagnazione del progetto o addirittura all’abbandono. La sfida, quindi, è creare sistemi e culture che incoraggino il contributo e scoraggino lo sfruttamento.
Motivare i contributi ai progetti open source coinvolge fattori sia pratici che psicologici:
- Riconoscimento: Molti contributori sono motivati dal riconoscimento che ricevono dai loro pari. Sistemi per riconoscere e celebrare i contributi possono essere potenti motivatori.
- Avanzamento di carriera: Contribuire all’open source può migliorare le competenze e la reputazione di uno sviluppatore, portando a migliori opportunità di lavoro.
- Senso di scopo: Molti contributori sono spinti dalla convinzione di avere un impatto positivo sul mondo attraverso il loro lavoro.
- Incentivi aziendali: Le aziende possono incoraggiare i loro dipendenti a contribuire a progetti open source rendendolo parte delle loro responsabilità lavorative e valutazioni delle prestazioni.
- Reciprocità: Favorire una cultura in cui l’uso dell’open source crea un’aspettativa di restituzione, sia attraverso il codice, la documentazione o il supporto finanziario.
Per affrontare questi fattori motivazionali, i progetti open source e la più ampia comunità tech possono adottare diversi approcci:
- Migliorare le metriche di contribuzione: Sviluppare modi più sofisticati per misurare e valutare diversi tipi di contributi, inclusi i contributi non di codice come la documentazione e il supporto alla comunità.
- Educazione: Aiutare le aziende a comprendere il valore a lungo termine di contribuire ai progetti open source da cui dipendono.
- Politiche aziendali: Incoraggiare le aziende a sviluppare politiche chiare sull’uso e il contributo open source, rendendolo parte integrante della loro strategia tecnologica.
- Costruzione della comunità: Favorire comunità forti e accoglienti intorno ai progetti open source per creare un senso di appartenenza e scopo condiviso.
Affrontando sia gli aspetti pratici che psicologici del contributo, i progetti open source possono creare ecosistemi più sostenibili che beneficiano tutti gli stakeholder.
Il Ruolo delle Grandi Aziende Tech
Il coinvolgimento delle grandi aziende tecnologiche nell’open source ha ridisegnato drasticamente il panorama.
Aziende come Google, Microsoft, Facebook e Amazon sono diventate importanti contributori ai progetti open source, sia in termini di codice che di supporto finanziario. Questo impegno porta con sé sia opportunità che sfide.
Dal lato positivo, le risorse che queste aziende possono dedicare ai progetti open source sono sostanziali. Possono assegnare dipendenti a tempo pieno al lavoro open source, fornire finanziamenti per infrastrutture ed eventi, e mettere a disposizione la loro considerevole esperienza per risolvere sfide tecniche complesse. Ad esempio, i contributi di Google a progetti come Kubernetes sono stati fondamentali per far progredire il computing cloud-native.
Tuttavia, il coinvolgimento di questi giganti tecnologici solleva anche preoccupazioni:
- Influenza: C’è il rischio che le grandi aziende possano esercitare un’influenza eccessiva sulla direzione dei progetti open source, potenzialmente orientandoli in modi che avvantaggiano principalmente i propri interessi.
- Dipendenza: I progetti potrebbero diventare eccessivamente dipendenti dalle risorse fornite da queste aziende, rendendosi vulnerabili se le priorità aziendali dovessero cambiare.
- Dinamiche competitive: Quando più grandi aziende sono coinvolte nello stesso progetto, possono emergere tensioni competitive, potenzialmente frammentando la comunità o portando a sfide di governance.
- Acquisizione di talenti: Alcuni sostengono che le grandi aziende utilizzino i contributi open source come un modo per identificare e reclutare i migliori talenti, potenzialmente allontanando i manutentori da progetti importanti.
Per affrontare queste preoccupazioni, molti progetti open source hanno adottato modelli di governance che limitano l’influenza di qualsiasi singola entità, indipendentemente dalla scala dei loro contributi. I progetti guidati da fondazioni spesso hanno regole sulla rappresentanza aziendale nei loro consigli per garantire un equilibrio di interessi.
Nonostante queste sfide, il coinvolgimento delle grandi aziende tecnologiche nell’open source è stato largamente positivo, accelerando l’innovazione e fornendo supporto critico a molti progetti importanti. La chiave è mantenere un equilibrio in cui queste aziende possano contribuire con le loro risorse e competenze senza compromettere la natura guidata dalla comunità dello sviluppo open source.
Sfide e Potenziali Soluzioni
Con l’evolversi continuo dell’ecosistema open source, sono emerse diverse sfide chiave, insieme a potenziali soluzioni:
- Strategie di licenza: le licenze open source tradizionali potrebbero non fornire una protezione sufficiente contro lo sfruttamento da parte di grandi provider cloud o altre entità commerciali. Diventa quindi necessario pensare a nuovi approcci di licenza, come la Server Side Public License (SSPL), o la Fair Source da poco rilasciata da Senty, cercano di affrontare questo problema. Tuttavia, queste licenze sono controverse e non universalmente accettate come “open source”.
- Metriche di contribuzione: i metodi attuali di misurazione dei contributi si concentrano spesso troppo sui commit di codice, sottovalutando altri contributi importanti. Sarebbe quindi importante adottare metriche di contribuzione più olistiche che tengano conto della documentazione, del supporto alla comunità, dei contributi finanziari e di altre attività non legate al codice, anche in un’ottica di aumentare la sicurezza e di ridurre spiacevoli incidenti come il già citato XYZ.
- Finanziamento sostenibile: molti progetti open source critici faticano a garantire finanziamenti stabili a lungo termine, obbligando di fatto i mantainer a fare due/tre lavori rischiando il burnout per il benessere altrui. Diventa quindi necessario esplorare nuovi modelli di finanziamento, come fondi per la sostenibilità open source o contributi obbligatori da parte degli utenti commerciali al di sopra di una certa scala.
- Burnout dei manutentori: Il carico sui manutentori open source può essere opprimente, portando al burnout e all’abbandono del progetto, il che poi si può ripercuotere su un intero ecosistema. Implementare migliori sistemi di supporto per i manutentori, incluse risorse per la salute mentale, periodi sabbatici e una distribuzione più equa del lavoro di manutenzione. Il tutto però ci riporta al punto 3 sui temi finanziari.
- Sicurezza e manutenzione dell’infrastruttura critica: Molti pezzi critici dell’infrastruttura digitale sono mantenuti da un piccolo numero di volontari. Quindi, di nuovo, è necessario aumentare gli investimenti nella sicurezza e nella manutenzione dei progetti open source critici, possibilmente attraverso partnership pubblico-private o fondazioni dedicate.
Il Futuro della Sostenibilità Open Source
Guardando al futuro, emergono diverse tendenze e potenziali soluzioni che potrebbero plasmare la sostenibilità dell’open source:
- Modelli Open Core e SaaS: Questi approcci ibridi, che combinano open source con elementi o servizi proprietari, probabilmente diventeranno più raffinati e ampiamente adottati.
- Governance decentralizzata: Non sono un grande fan della tecnologia blockchain, ma ragionare in termine di DOI potrebbe fornire nuovi modi per incentivare e ricompensare i contributi open source, nonché nuovi modelli per la governance decentralizzata dei progetti.
- Coinvolgimento para-governativo: Riconoscendo la natura critica dell’infrastruttura open source, i governi potrebbero assumere un ruolo più attivo nel supportare e regolare i progetti open source. Non a livello del singolo governo ma collettivo, come Nazioni Unite, o creando un ente sulla falsa riga del World Economic Forum dedicato al mondo del sosftware.
- Educazione e cambiamento culturale: Con il riconoscimento sempre più diffuso dell’importanza dell’open source, potremmo assistere a un cambiamento culturale in cui il contributo all’open source è visto come una parte standard delle responsabilità di uno sviluppatore o di un’azienda.
Conclusione
La sostenibilità del software open source non è solo una questione tecnica o economica, ma una questione culturale ed etica che va al cuore di come creiamo e condividiamo la conoscenza nell’era digitale. Le sfide sono significative, ma lo sono anche le opportunità.
Andando avanti, è cruciale che tutti gli stakeholder nell’ecosistema open source – sviluppatori individuali, aziende, fondazioni e governi – lavorino insieme per creare modelli sostenibili che preservino lo spirito di apertura e collaborazione che ha reso l’open source così trasformativo.
Il futuro dell’open source dipenderà dalla nostra capacità di bilanciare innovazione e sostenibilità, valori della comunità e interessi commerciali, apertura e necessità di modelli di business sostenibili. Affrontando queste sfide di petto, possiamo garantire che il movimento open source continui a guidare il progresso tecnologico e democratizzare l’accesso a potenti strumenti software per le generazioni a venire.
Il percorso futuro richiederà creatività, compromesso e un impegno condiviso verso i principi che hanno reso l’open source così di successo. Mentre navighiamo in questo complesso panorama, dobbiamo ricordare che l’obiettivo finale non è solo la sostenibilità dei singoli progetti, ma la promozione di un commons digitale prospero, innovativo ed equo che benefici tutta l’umanità.
[questo post è stato scritto utilizzando alcune lecture universitarie da me svolte, appunti presi durante l’anno in ambito di Sustainable IT e vario materiale. Il tutto è stato dato in pasto e mescolato con Claude e poi rieditato dal sottoscritto]