⑂ Open source

Modelli di sviluppo open source: comunità, azienda, fondazione

Progetti guidati da volontari, da un'azienda o da una fondazione: come cambiano decisioni, rilasci e rischi, e come capire quale modello hai davanti.

Dire che un software è open source descrive la sua licenza, non il modo in cui viene costruito. Due progetti con la stessa licenza possono avere vite completamente diverse: uno è mantenuto da una persona nel tempo libero, l'altro da cento ingegneri stipendiati, un terzo da un consorzio di aziende concorrenti. Capire quale modello di sviluppo c'è dietro un progetto aiuta a prevedere come evolverà, quanto è facile contribuire e quali rischi si corrono adottandolo.

Il progetto comunitario di volontari

È il modello più antico e ancora il più diffuso per numero di progetti. Uno o pochi autori creano uno strumento per un bisogno proprio, lo pubblicano e, se è utile, attirano altre persone che segnalano problemi e propongono modifiche.

Caratteristiche tipiche:

  • le decisioni le prende chi scrive il codice, spesso il fondatore;
  • i tempi di rilascio sono irregolari e dipendono dalla disponibilità delle persone;
  • la barriera d'ingresso per contribuire è bassa, perché ogni aiuto è benvenuto;
  • il rischio principale è il cosiddetto bus factor basso: se il manutentore principale smette, il progetto si ferma.

Molte librerie fondamentali vivono così per anni. Funzionano benissimo finché qualcuno ha tempo ed energia; il problema emerge quando l'uso cresce molto più delle persone che lo sostengono.

Il progetto guidato da un'azienda

In questo modello un'azienda possiede il progetto, impiega la maggior parte degli sviluppatori e decide la direzione. Il codice è pubblico, ma la roadmap nasce dentro l'azienda e riflette i suoi obiettivi commerciali.

Vantaggi concreti:

  • sviluppo continuo e prevedibile, con rilasci pianificati;
  • documentazione curata, test automatici estesi, supporto a pagamento disponibile;
  • risposta rapida alle vulnerabilità.

Rischi da considerare:

  • le funzionalità più avanzate possono finire in una versione commerciale separata;
  • l'azienda può cambiare licenza, come è successo a diversi progetti passati a licenze source-available;
  • i contributi esterni sono accettati solo se coerenti con i piani interni, e spesso richiedono la firma di un accordo di cessione o licenza dei diritti.

Un segnale utile: guarda chi ha scritto i commit degli ultimi dodici mesi. Se quasi tutti hanno l'indirizzo email della stessa azienda, il progetto è di fatto controllato da lei, qualunque cosa dica il sito.

Il progetto sotto una fondazione

Quando un progetto diventa infrastruttura per molte organizzazioni, spesso viene affidato a una fondazione neutrale. La fondazione detiene marchi e talvolta diritti, offre servizi legali e amministrativi e impone regole di governance che impediscono a un singolo partecipante di prendere il controllo.

In questo modello:

  • le decisioni passano da comitati tecnici o gruppi di manutentori eletti o nominati con regole scritte;
  • contribuiscono dipendenti di aziende diverse, anche concorrenti;
  • i processi sono più lenti e formali, ma più stabili nel tempo;
  • un cambio improvviso di licenza è molto meno probabile.

Il prezzo è la burocrazia: proporre una modifica importante può richiedere documenti di progetto, discussioni pubbliche e votazioni.

Modelli ibridi

Nella realtà i confini sfumano. Esistono:

  • progetti nati comunitari e poi adottati da un'azienda che assume il fondatore;
  • progetti aziendali donati a una fondazione per guadagnare fiducia e contributori;
  • consorzi in cui alcune aziende finanziano un piccolo gruppo di manutentori indipendenti.

Ogni passaggio cambia gli equilibri. Una donazione a una fondazione, per esempio, di solito rende il progetto più aperto ai contributi esterni ma rallenta le decisioni.

Confronto rapido

Aspetto Comunitario Aziendale Fondazione
Chi decide Manutentori principali L'azienda Organi con regole scritte
Ritmo di sviluppo Variabile Costante Costante ma più lento
Facilità di contribuire Alta Media Media, con procedure
Rischio di cambio licenza Basso se molti autori Più alto Basso
Rischio di abbandono Più alto Legato agli interessi aziendali Basso

Come riconoscere il modello di un progetto

Non serve fidarsi delle dichiarazioni: bastano alcuni controlli nel repository.

  1. File di governance: cerca GOVERNANCE.md, MAINTAINERS o una sezione equivalente nella documentazione.
  2. Distribuzione dei contributi: le statistiche dei contributori mostrano se il lavoro è concentrato su una persona o un'organizzazione.
  3. Titolare dei marchi e del dominio: indica chi controlla il nome del progetto.
  4. Accordi richiesti ai contributori: un accordo che trasferisce i diritti a un'azienda è un forte indizio di controllo centralizzato.
  5. Dove si discute la roadmap: in pubblico, su liste e issue, oppure solo negli annunci a decisioni prese.

Nel mio lavoro, quando valuto un componente da inserire in un sistema che deve durare anni, questi cinque controlli richiedono pochi minuti e spesso spiegano più della pagina «chi siamo».

Quale modello conviene a te

Dipende dal ruolo:

  • se adotti un software, un progetto sotto fondazione o con molti contributori indipendenti offre più garanzie di continuità; uno aziendale offre spesso più rifinitura e supporto;
  • se vuoi contribuire, un progetto comunitario ti darà visibilità e responsabilità più in fretta;
  • se avvii un progetto, scegli consapevolmente fin dall'inizio: decidere più tardi chi ha l'ultima parola è sempre più faticoso.

In sintesi

  • La licenza non dice nulla su come un progetto viene sviluppato e governato.
  • I tre modelli principali sono comunitario, aziendale e sotto fondazione, con molte varianti ibride.
  • Ogni modello ha punti di forza e rischi diversi su continuità, licenza e apertura ai contributi.
  • Governance, contributori, marchi e accordi richiesti rivelano il modello reale in pochi minuti.
MM
Marco Marzaduri

Marco Marzaduri si occupa di cybersecurity, informatica forense e sviluppo web. Laureato in informatica, unisce il rigore dell'analisi tecnica all'attenzione per le persone che usano la tecnologia.

Leggi anche