⑂ Open source

Governance dei progetti open source: chi decide e come

Dittatore benevolo, manutentori, comitato tecnico, votazioni e consenso: i modelli di governance open source e come scrivere un GOVERNANCE.md utile.

Finché un progetto ha un solo autore, la governance è semplice: decide lui. Appena arrivano altri contributori, però, nascono domande che il codice non risolve. Chi può accettare una modifica? Chi sceglie quando rilasciare? Cosa succede se due manutentori non sono d'accordo? Chi può dare o togliere i permessi di scrittura? La governance è l'insieme delle risposte a queste domande, e un progetto che non le scrive le subisce comunque, solo in modo implicito.

Perché scriverla prima dei problemi

I conflitti di governance esplodono quasi sempre nel momento peggiore: durante una discussione accesa su una funzionalità, dopo un cambio di lavoro del fondatore, quando un'azienda inizia a contribuire molto. Se le regole esistono già, si applicano. Se non esistono, ogni decisione diventa una questione di potere personale.

Una governance esplicita serve anche a chi valuta il progetto dall'esterno: un'organizzazione che deve dipendere da un software per anni vuole sapere come vengono prese le decisioni.

I modelli più diffusi

Dittatore benevolo

Una persona, di solito il fondatore, ha l'ultima parola su tutto. Il termine inglese è Benevolent Dictator For Life (BDFL). Funziona quando quella persona ha visione chiara, tempo e la fiducia della comunità.

  • Pro: decisioni rapide, coerenza tecnica.
  • Contro: tutto dipende da una persona; la successione è un problema irrisolto.

Diversi progetti noti sono passati da questo modello a uno collegiale quando il fondatore ha deciso di fare un passo indietro.

Gruppo di manutentori

Un insieme di persone con permessi di scrittura decide per consenso informale. Spesso ognuno ha responsabilità su una parte del codice, documentata in un file come CODEOWNERS o MAINTAINERS.

  • Pro: distribuisce il carico, riduce la dipendenza da una persona.
  • Contro: senza regole per i disaccordi, le decisioni controverse si bloccano.

Comitato tecnico o consiglio direttivo

I progetti più grandi separano spesso due livelli: un comitato tecnico che decide su architettura e rilasci, e un organo che si occupa di aspetti non tecnici come fondi, marchi e codice di condotta. I membri vengono eletti dai contributori attivi o nominati secondo regole scritte, con mandati a termine.

  • Pro: stabilità, legittimità, rappresentanza di interessi diversi.
  • Contro: processi più lenti, necessità di elezioni e verbali.

Meritocrazia per livelli

Alcune comunità definiscono una scala di ruoli: utente, contributore, committer, membro del comitato. Si sale di livello per contributi riconosciuti nel tempo, su proposta di chi è già al livello superiore.

Come si prendono le decisioni

Indipendentemente dal modello, servono meccanismi concreti. I più usati:

Meccanismo Come funziona Quando è adatto
Consenso pigro Una proposta passa se nessuno si oppone entro un termine Decisioni ordinarie
Voto con veto Ogni manutentore può bloccare, motivando Modifiche rischiose al codice
Maggioranza Si conta il voto dei membri aventi diritto Elezioni, regole interne
Documento di proposta Si scrive un RFC discusso pubblicamente Cambiamenti di architettura o di API

Il consenso pigro è prezioso perché evita che tutto richieda riunioni: chi propone scrive «se non ci sono obiezioni entro 72 ore procedo», e il silenzio diventa approvazione.

Cosa mettere in un GOVERNANCE.md

Un file di governance utile non è lungo. Deve rispondere a poche domande precise:

  1. Ruoli: quali esistono e cosa può fare ciascuno.
  2. Accesso ai ruoli: come si diventa manutentore, chi decide, quali criteri.
  3. Uscita dai ruoli: inattività, dimissioni, rimozione per violazioni.
  4. Decisioni: quale meccanismo si usa per quale tipo di scelta.
  5. Disaccordi: chi ha l'ultima parola quando il consenso non arriva.
  6. Modifiche alla governance: come si cambiano queste stesse regole.

Un esempio di regola chiara: «Un contributore diventa manutentore su proposta di un manutentore esistente, se nessun altro manutentore si oppone entro sette giorni. I manutentori senza attività per dodici mesi passano allo stato emerito e perdono i permessi di scrittura, che possono riottenere su richiesta.»

Errori frequenti

  • Copiare la governance di un progetto enorme in uno con tre persone: crea burocrazia senza benefici.
  • Lasciare permessi di scrittura a persone inattive: è un rischio di sicurezza oltre che di governance.
  • Non distinguere tra chi contribuisce e chi paga: un'azienda che finanzia non dovrebbe ottenere automaticamente potere decisionale, a meno che sia dichiarato.
  • Regole scritte ma non applicate: peggio di nessuna regola, perché minano la fiducia.

Nel mio lavoro, quando un progetto mi chiede un parere sulla sua organizzazione, la prima domanda che pongo è sempre la stessa: se domani il manutentore principale sparisse, chi avrebbe le chiavi del repository, del dominio e dei pacchetti pubblicati? La risposta dice quanto il progetto è davvero governato.

In sintesi

  • La governance esiste sempre: scriverla evita che diventi una questione di potere personale.
  • I modelli principali vanno dal dittatore benevolo al comitato eletto, con molte varianti.
  • Servono meccanismi decisionali chiari, come consenso pigro, veto motivato e RFC.
  • Un buon GOVERNANCE.md definisce ruoli, accesso, uscita, decisioni e risoluzione dei disaccordi.
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