Salta al contenuto principale

Il codice come bene comune

Inviato da tuxsa il

Abbiamo parlato di dati aperti, interoperabilità e partecipazione. Se però gli strumenti utilizzati per costruire e gestire questa infrastruttura rimanessero completamente chiusi, una parte importante dell'apertura verrebbe meno.

Per questo, nel progetto GiraSalerno, la scelta del Software Libero non è un elemento accessorio e non nasce semplicemente da una preferenza tecnologica del Collettivo TUXSA.

Riguarda una domanda più generale:

se un software viene sviluppato per produrre conoscenza e servizi di interesse collettivo, quanto di quel lavoro può diventare patrimonio riutilizzabile dalla collettività?

È da questa domanda che nasce l'idea del codice come bene comune.

Software Libero non significa software gratuito

Il primo equivoco da evitare riguarda la parola “libero”.

Software Libero non significa semplicemente software che non costa nulla.

Un programma può essere gratuito e contemporaneamente impedire di studiarne il codice, modificarlo o redistribuirne una versione adattata.

La libertà riguarda invece la possibilità, secondo le condizioni della relativa licenza, di utilizzare, studiare, modificare e condividere il software.

Questa caratteristica assume un valore particolare quando parliamo di infrastrutture destinate alla conoscenza pubblica.

Se una città costruisce nel tempo strumenti, modelli e funzioni utili alla collettività, quel patrimonio non dovrebbe necessariamente essere ricostruito da zero ogni volta che cambia fornitore, amministrazione o progetto.

GiraSalerno nasce su Software Libero

GiraSalerno è stato realizzato utilizzando Drupal, un sistema di gestione dei contenuti distribuito come Software Libero, insieme ad altre componenti libere necessarie al funzionamento del dimostratore.

La scelta ha permesso di partire da un'infrastruttura esistente e di adattarla progressivamente alle esigenze del progetto.

Non abbiamo dovuto costruire da zero un sistema per la gestione degli utenti, dei contenuti, delle tassonomie o delle API.

Abbiamo potuto concentrare il lavoro sulla domanda che realmente ci interessava:

come rappresentare e rendere utilizzabile la conoscenza turistica di Salerno?

È uno dei grandi vantaggi della cooperazione prodotta dal Software Libero.

Si parte dal lavoro già realizzato da altri e si può restituire alla comunità nuovo lavoro.

Non reinventare continuamente la stessa infrastruttura

Il problema riguarda anche il modo nel quale vengono spesso realizzati i servizi digitali.

Enti differenti commissionano sistemi che risolvono problemi molto simili.

Ogni progetto ricomincia quasi da zero.

Vengono costruite nuovamente funzioni per rappresentare luoghi, gestire mappe, pubblicare dataset, classificare informazioni o raccogliere segnalazioni.

Alla fine del contratto, una parte della conoscenza tecnica rimane legata al fornitore che ha sviluppato il sistema.

Il progetto successivo può essere costretto a ricominciare.

Un modello basato sul Software Libero permette di immaginare una strada diversa:

il denaro e il lavoro investiti nello sviluppo di una funzione possono produrre un risultato che altri soggetti possono studiare, adattare e migliorare.

Non significa che ogni amministrazione debba utilizzare lo stesso programma.

Significa che non dovrebbe essere necessario ricostruire continuamente ciò che può essere condiviso.

Il codice da solo non basta

Pubblicare una cartella contenente migliaia di righe di codice, però, non crea automaticamente un bene comune.

Se nessuno comprende come funziona il software, quali problemi risolve, come è organizzato e quali dipendenze utilizza, la possibilità teorica di riutilizzarlo può diventare molto difficile da esercitare.

Per questo il codice deve essere accompagnato da documentazione.

È una delle ragioni per cui la sperimentazione di GiraSalerno ha prodotto anche un Quaderno Tecnico.

Il Quaderno non è soltanto il resoconto del lavoro svolto.

Descrive il modello dei contenuti, le relazioni, le tassonomie, le interfacce, i criteri di qualità e le principali scelte metodologiche.

La documentazione permette a chi osserva il progetto di comprendere non soltanto:

“quale codice è stato scritto?”

ma soprattutto:

“perché il sistema è stato costruito in questo modo?”

Il repository come memoria del progetto

Un progetto libero destinato a evolvere dovrebbe poter disporre anche di un repository pubblico del codice.

Il repository non è semplicemente un luogo dal quale scaricare dei file.

È uno strumento attraverso il quale è possibile conservare la storia delle modifiche, distinguere versioni differenti, documentare problemi, proporre miglioramenti e rendere più trasparente lo sviluppo.

Nel caso di GiraSalerno questo rappresenta il naturale completamento del percorso sperimentale.

Durante la costruzione del dimostratore sono stati mantenuti backup e punti di controllo delle configurazioni più significative. Questo metodo è stato essenziale per lavorare con prudenza e poter ricostruire le modifiche.

Un repository pubblico porta però il principio a un livello superiore: dalla sicurezza del lavoro interno alla condivisione strutturata dello sviluppo.

Non basta quindi dichiarare che il codice è libero. Occorre renderne concretamente possibile l'accesso e il riuso.

Riuso non significa copia identica

Se un'altra città volesse utilizzare l'esperienza di GiraSalerno, non avrebbe necessariamente bisogno di una copia identica del sito.

Le categorie potrebbero essere differenti.

Le fonti sarebbero diverse.

I servizi potrebbero cambiare.

Le esigenze editoriali potrebbero richiedere altre informazioni.

Il valore del Software Libero sta proprio nella possibilità di adattare.

Ciò che può essere riutilizzato non è soltanto l'interfaccia grafica.

Può essere il modello con il quale vengono gestiti i Punti di interesse.

Può essere il meccanismo delle Segnalazioni.

Può essere una funzione geografica.

Può essere il sistema con il quale vengono generate le distribuzioni Open Data.

Può essere una parte del codice oppure soltanto una scelta architetturale documentata.

Il riuso non è quindi la clonazione di GiraSalerno.

È la possibilità di non dover ricominciare necessariamente da zero.

Anche gli errori possono diventare patrimonio

C'è un altro aspetto meno evidente.

Un progetto aperto permette di condividere non soltanto le soluzioni, ma anche ciò che abbiamo imparato dagli errori e dai limiti incontrati.

Durante la sperimentazione abbiamo compreso, per esempio, che la provenienza dei dati dovrebbe in futuro poter diventare più granulare.

Abbiamo verificato la necessità di distinguere servizi e accessibilità.

Abbiamo incontrato la complessità degli orari e scelto di non introdurre prematuramente uno stato dinamico “aperto/chiuso”.

Abbiamo distinto la sequenza di un itinerario dal routing.

Abbiamo separato i diritti delle immagini dalla licenza dei dati.

Queste non sono soltanto caratteristiche di un programma.

Sono conoscenza progettuale.

Documentarle permette a chi riprenderà il lavoro di non dover scoprire nuovamente gli stessi problemi.

Software, dati e contenuti: tre libertà differenti

Il concetto di bene comune richiede però precisione.

Non possiamo mettere tutto sotto l'etichetta “aperto” e considerare risolta la questione.

Il software è soggetto alla propria licenza.

I dati sono soggetti alle condizioni definite per il loro riuso.

I contenuti, comprese le immagini, possono avere licenze e diritti differenti.

Un'immagine presente in una pagina non diventa automaticamente liberamente riutilizzabile perché il sito utilizza Software Libero.

Un dataset non diventa Open Data semplicemente perché è gestito attraverso Drupal.

E il codice non diventa Software Libero soltanto perché i dati prodotti sono aperti.

Sono livelli distinti.

La forza del progetto sta nel cercare di renderli coerenti senza confonderli.

Autonomia tecnologica

La scelta del Software Libero ha anche una conseguenza che abbiamo già incontrato nella Parte III del Piano: aumenta la possibilità di autonomia tecnologica.

Autonomia non significa fare tutto da soli.

Un ente pubblico può avere bisogno di imprese, professionisti, servizi esterni e competenze specialistiche anche utilizzando esclusivamente Software Libero.

Significa qualcosa di diverso: ridurre la situazione nella quale la continuità di un servizio dipende necessariamente da un unico soggetto perché soltanto quel soggetto può intervenire sul sistema.

Il codice disponibile, gli standard aperti e una documentazione adeguata rendono più semplice trasferire competenze, cambiare soggetti tecnici e sviluppare nuove funzioni.

L'autonomia non elimina le dipendenze.

Le rende più conoscibili, sostituibili e governabili.

Il valore pubblico del lavoro pubblico

Questo principio assume particolare importanza quando lo sviluppo viene finanziato con risorse pubbliche.

Se una comunità sostiene economicamente la costruzione di uno strumento digitale, è ragionevole chiedersi se il risultato possa produrre valore soltanto per l'amministrazione che lo ha commissionato o se possa diventare, almeno quando non esistano ragioni contrarie, patrimonio riutilizzabile.

Il Software Libero permette di immaginare una forma di moltiplicazione dell'investimento.

Una funzione sviluppata a Salerno potrebbe essere adattata altrove.

Una funzione sviluppata altrove potrebbe essere riutilizzata a Salerno.

Un miglioramento prodotto da un altro soggetto potrebbe ritornare utile al progetto originario.

Il valore non nasce quindi soltanto dal risparmio economico.

Nasce dalla possibilità di cooperazione.

Il codice come forma di trasparenza

La disponibilità del codice può inoltre contribuire alla trasparenza.

Non significa che ogni cittadino debba saper leggere un programma.

Così come la pubblicazione di un bilancio non presuppone che ogni cittadino sia un commercialista, la disponibilità del codice permette a chi possiede le competenze di studiare il funzionamento del sistema.

Questo è particolarmente importante quando il software prende decisioni o applica regole che hanno conseguenze sulla rappresentazione delle informazioni.

Quali dati vengono mostrati?

Come viene determinata una relazione?

Quali informazioni vengono esportate?

Quali rimangono escluse?

La documentazione e il codice accessibile possono contribuire a rendere queste scelte verificabili.

Il Software Libero non garantisce automaticamente la trasparenza, ma rende possibile un livello di controllo che il codice completamente chiuso impedisce per definizione.

Una comunità, non soltanto un fornitore

Portare alle conseguenze questo modello significa cambiare anche il modo nel quale immaginiamo lo sviluppo.

Non più soltanto:

committente → fornitore → prodotto

ma potenzialmente:

istituzioni → sviluppatori → università → associazioni → imprese → comunità → altri territori.

Non tutti devono fare tutto.

Non tutti devono avere gli stessi ruoli.

Ma il lavoro può circolare.

Una comunità può segnalare un problema.

Uno sviluppatore può proporre una soluzione.

Un'altra città può adattarla.

Un'università può studiarne il modello.

Un'impresa può offrire servizi professionali basati sullo stesso software libero.

L'apertura non elimina l'economia.

Può creare un'economia meno dipendente dal possesso esclusivo del codice.

Dal codice al metodo

GiraSalerno suggerisce però che il bene comune più importante non sia necessariamente una singola riga di programma.

È il metodo che il codice rende concreto.

Separare dati e presentazione.

Conservare le fonti.

Dichiarare ciò che non conosciamo.

Distinguere servizi e accessibilità.

Separare segnalazioni e dati verificati.

Produrre Open Data dalla stessa base di conoscenza.

Documentare le interfacce.

Conservare i diritti delle immagini.

Verificare prima di pubblicare.

Sono principi che possono essere applicati anche attraverso strumenti differenti.

Per questo rendere disponibile il codice senza spiegare il modello sarebbe insufficiente, così come documentare il modello impedendo di studiare la sua implementazione concreta perderebbe una parte del valore della sperimentazione.

Codice e documentazione devono poter dialogare.

Un bene comune deve essere mantenuto

Infine, chiamare il codice “bene comune” non significa immaginarlo come qualcosa che viene pubblicato una volta e rimane utile per sempre.

Il software invecchia.

Le dipendenze cambiano.

Emergono vulnerabilità.

Le piattaforme evolvono.

Le API possono richiedere nuove versioni.

I modelli dei dati possono essere migliorati.

Un progetto libero abbandonato rimane libero, ma può progressivamente diventare inutilizzabile.

La sostenibilità richiede quindi manutenzione, comunità e responsabilità.

È lo stesso problema incontrato con i dati.

Aprire non basta. Bisogna mantenere.

Dalla proprietà alla possibilità di riuso

Arriviamo così al significato che attribuiamo all'espressione codice come bene comune.

Non significa che ogni software debba essere sviluppato gratuitamente.

Non significa che non possano esistere imprese e servizi professionali.

Non significa che chiunque debba essere obbligato a contribuire.

Significa costruire, quando possibile, le condizioni affinché il lavoro tecnologico prodotto per un interesse collettivo possa essere studiato, verificato, adattato e riutilizzato.

È la stessa logica che abbiamo applicato alla conoscenza.

Il dato acquista valore quando può uscire dal contenitore nel quale è nato.

Il codice acquista valore collettivo quando può uscire dal progetto specifico nel quale è stato sviluppato.

Condividere il codice non significa perdere il lavoro svolto. Significa permettere a quel lavoro di produrre altro lavoro.

GiraSalerno nasce anche come prova di questa possibilità.

Ma un dimostratore coerente con questa idea non può essere considerato un prodotto terminato soltanto perché la prima versione funziona.

Deve rimanere uno spazio nel quale verificare nuove fonti, nuovi dati, nuove relazioni, nuove forme di partecipazione e nuovi servizi.

È per questo che l'ultimo capitolo della Parte VI non chiude GiraSalerno.

Al contrario, ne definisce la natura più importante: Un laboratorio aperto.