Vai al contenuto principaleVai al footer
ruby
|
09 luglio 19

Il nostro contributo al lavoro del Team Digitale italiano

Lo scorso anno, Cantiere Creativo si è aggiudicato un appalto del Team per la trasformazione Digitale per la realizzazione software open source in linguaggio Ruby. Il Team Digitale è una struttura commissariale istituita dalla Presidenza del Consiglio dei Ministri, al tempo capitanata da Diego Piacentini (ex Vice President International di Amazon).

Il suo obiettivo è quello di creare una serie di componenti fondamentali sui quali costruire servizi più semplici ed efficaci per i cittadini, la Pubblica Amministrazione e le imprese, attraverso prodotti digitali innovativi.

Oltre ad essere entusiasti di lavorare su progetti ambiziosi come SPID e PagoPA, ci siamo impegnati a dimostrare che il connubio "settore pubblico" e "open source" è sinonimo di qualità.

Silvio RelliDeveloper

Progetti software virtuosi per la Pubblica Amministrazione

Il Piano Triennale del TD prevede un approccio moderno allo sviluppo di software e servizi pubblici, che si basa sulla realizzazione ed il riuso di componenti open source, nonchè di un modello collaborativo aperto ed incentrato sulle community tecnologiche.

I progetti più ambiziosi rientrano in quelle che vengono chiamate "Piattaforme Abilitanti", ovvero una serie di strumenti che saranno alla base di numerosi servizi digitali per il cittadino, e che funzioneranno come fondamenta di siti ed applicazioni sviluppati dagli Enti Pubblici.

Va bene, ma in pratica di cosa parliamo?

Stiamo parlando di cose come SPID e PagoPA, strumenti che forse avete visto pubblicizzare in TV da qualche provider o che avete utilizzato per fare la dichiarazione dei redditi online, per registrarvi sul portale INPS, richiedere il Reddito di Cittadinanza o magari... pagare una multa!

Le linee guida sull’acquisizione e il riuso del software nella Pubblica Amministrazione, approvate in via definitiva solo recentemente, prevendono che la PA debba acquisire preferibilmente software open source e rilasciare con licenza open tutto il software che sviluppa.

Le librerie rilasciate da Cantiere

Una parte del lavoro svolto da Cantiere Creativo è consistito nello sviluppare delle librerie a corredo di questi servizi, che servono a facilitarne l'integrazione con programmi realizzati nel linguaggio di programmazione Ruby.

Questo significa che una qualsiasi software house o web agency, che sviluppi dei prodotti basati ad esempio sul framework Ruby on Rails, potrà avvalersi delle Gemme (il nome delle librerie Ruby) da noi realizzate per interfacciarsi con SPID o PagoPA.

Il codice sorgente di quanto realizzato è visibile sull'account Github di Developers Italia e le gemme sono disponibili su Rubygems, come ad esempio spid-ruby.

Per ribadire il nostro impegno a pubblicare software di qualità e rilasciare prodotti secondo le migliori best practices, abbiamo speso molto tempo a documentare tutto il lavoro con una dettagliata documentazione tecnica e ad implementare estensivi test automatici - alcuni componenti raggiungono un code coverage del 100%.

Agave CMS e Publiccode

Oltre ai componenti sopra menzionati, abbiamo realizzato due software stand-alone: il primo è un editor per realizzare in punta di click un file descrittivo secondo lo standard publiccode.yml.

Citando direttamente il repo:

Questo standard ha lo scopo di rendere il software sviluppato dalle Pubbliche Amministrazioni facile da individuare e, di conseguenza, riutilizzare. [...]  Molto software di qualità è stato sviluppato da diverse Pubbliche Amministrazioni ma i casi di riuso sono scarsi. Alcune tra le ragioni per la bassa adozione di tali progetti sono la difficoltà nel rilevarli così come la difficoltà nel capire se un dato progetto possa funzionare o meno nel contesto di una Pubblica Amministrazione differente. Lo standard publiccode.yml ha lo scopo di risolvere queste problematiche.

Da sostituire l'svg!

Agave CMS, un Content Management System per la creazione e la gestione di siti statici.

Come fa ad esserci un gestionale per un sito statico?

Agave in pratica consente di pubblicare un sito web a tutti gli effetti statico, poichè il backend amministrativo è completamente separato dal frontend (si parla infatti di CMS Headless).

La parte pubblica del sito viene generata sotto forma di file .html statici che sono prodotti e memorizzati al momento della pubblicazione, quindi non devono esse rigenerati ad ogni visita di un utente come accade per la maggior parte dei CMS. Le interazioni dinamiche avvengono tramite chiamate a delle API via Javascript.

Può sembrare un salto nel passato, ed invece è un nuovo trend molto all'avanguardia! Mai sentito parlare di API-First, Headless o JAMstack? I vantaggi sono numerosi, il sito risulta velocissimo e super sicuro.

Generatori di siti statici come Jekyll sono già adottati dal Team Digitale per buona parte dei propri siti web e documentazione, ma senza un backend amministrativo l'editing di tali contenuti non è alla portata di tutti.

Agave è stato realizzato con l'idea di rendere accessibile questa tecnologia anche a scuole e comuni.

Come tutto ciò che abbiamo realizzato, il codice sorgente di Agave CMS è disponibile su Github ed installabile da chiunque sia un po' smaliziato con Docker.

Il lavoro svolto, in dettaglio

Tutto quello che abbiamo realizzato è accessibile dal nostro portfolio, che contiene dettagli e link a tutte le risorse. Anche il TD ha pubblicato un'articolo esaustivo sull'esperienza.

Un ringraziamento speciale va a tutto il Team Digitale, che sta combattendo (e vincendo!) delle difficili battaglie per ammodernare l'ecosistema ICT delle PA ed imporre standard qualitativi di altissimo livello.

💚