18app: storia di un problema e di come è stato risolto

Che cosa si può imparare quando gli errori diventano sfide per migliorarsi

This post is available also in English

Oggi vogliamo raccontarvi una storia della trasformazione digitale del Paese, in cui finalmente il cittadino è al centro delle decisioni e non è stato sconfitto dalla burocrazia: 9.374 ragazzi nati nel 1998 (ex diciottenni, ormai diciannovenni) che erano stati erroneamente esclusi dal programma 18app (la piattaforma che permette di ottenere il Bonus Cultura) dopo la scadenza delle registrazioni dello scorso 30 giugno, sono stati appena riammessi al programma. Come da legge vigente, hanno ancora tempo fino al 31 dicembre 2017 per spendere il loro bonus di 500 euro in musei, libri, cinema, teatro e concerti.

Abbiamo avvertito questi ragazzi con una email e un SMS. Monitoreremo gli invii della comunicazione ed eventualmente proveremo un nuovo contatto con coloro che non risulteranno ancora iscritti tra una settimana.

Ma questo è solo il termine di una lunga storia, una storia che inizia cinque mesi fa. Quindi mettetevi comodi, perché vogliamo raccontarvi tutto nel dettaglio, affinché sia chiara la nascita di questo problema e anche le strategie che abbiamo messo in campo perché un fatto del genere non capiti mai più.

Pulp Fiction — Quentin Tarantino

18app: la cronistoria

18app è un programma previsto dalla legge tramite il quale vengono assegnati 500 euro a tutti i 18enni, una somma che i ragazzi possono spendere in qualsiasi attività culturale, da libri a biglietti di cinema e teatro, da corsi di musica a quelli di lingua straniera. Il primo anno di attività ha riguardato tutti i cittadini nati nel 1998, ai quali è stato richiesto di registrarsi sul sistema entro il 30 giugno 2017 per poi spendere il bonus entro il 31 dicembre prossimo.

Il Team per la Trasformazione Digitale collabora con il MIBACT e SOGEI da prima del lancio del programma (che è avvenuto l’anno scorso) focalizzandosi sugli aspetti puramente tecnici della piattaforma: esperienza utente, integrazione degli esercenti, evoluzioni future.

Eppure, immediatamente dopo la scadenza del 30 giugno scorso – data ultima per registrarsi su 18app –, abbiamo iniziato a ricevere segnalazioni (tramite vari canali, dal call center a Facebook, sia sulla pagina ufficiale sia nel gruppo nato spontaneamente) di un numero crescente di ragazzi che sostenevano di aver completato l’attivazione del bonus entro il 30 giugno, ma di non avere accesso al sistema e, quindi, anche alla possibilità di spendere il bonus.

Dalle prime verifiche, abbiamo appurato che si trattava soltanto di utenti che non avevano ancora speso neppure un euro con la piattaforma: sembrava che la registrazione non fosse andata a buon fine ma il 18enne, non avendo ancora provato a spendere il proprio bonus, non si era accorto del problema prima del 30 giugno, e risultava quindi escluso dal sistema.

Nel mese di settembre abbiamo avviato un processo di indagine tecnica più approfondita, chiedendo anche il supporto degli Identity Provider, ovvero le società private che erogano il servizio di identità digitale SPID. Dopo alcune verifiche a campione, abbiamo individuato casi di alcuni utenti che, nonostante avessero completato correttamente il flusso di accesso sul sito 18app prima della scadenza del 30 giugno, non risultavano presenti nel sistema, come se la loro registrazione fosse andata “persa” o rimasta in sospeso: si trattava quindi di un bug del sistema, un difetto del software.

Credit: xfrgmnts su GIPHY

Se questi 18enni (circa il 3% dei ragazzi che si sono registrati) avessero provato a spendere almeno una parte del proprio bonus entro il 30 giugno, probabilmente non ci saremmo neppure accorti di questo bug, perché effettuando un nuovo accesso al sistema avrebbero perfezionato la registrazione rimasta in sospeso.

A questo punto era chiaro che fosse necessario un intervento per riammettere al programma questi 18enni: abbiamo effettuato un’estrazione completa dei dati dei 18enni che risultavano registrati a 18app presso gli Identity Provider, incrociandoli con quelli che avevano completato la registrazione nel sistema.

E c’è voluto del tempo: non è stato facile identificare il processo formale giusto. Era la prima volta dal lancio di SPID che si riscontrava un evento del genere, e una verifica incrociata tra IdP (che erogano l’identità SPID) e servizi che usano SPID non era stata mai ipotizzata né tantomeno codificata come procedura a livello tecnico o di contratti. Trattandosi di dati personali, poi, è stato necessario procedere con la massima cura e attenzione. Nonostante qualche momento di frustrazione, dovuto soprattutto alla complessità dell’operazione, siamo andati avanti con l’obiettivo di tenere al centro delle nostre decisioni il cittadino.

Terminato il processo e identificata la platea dei 9.374 ragazzi a inizio novembre, è stato necessario verificare che il budget per il bonus fosse ancora a disposizione.

Suona strano? Eppure, sulla base dei dati di registrazione al 30 giugno, una parte del budget che era stato originariamente stanziato per 18app era stato riassegnato ad altri fini, siccome ormai la platea di chi si era iscritto era stata definita con certezza. Tutto sommato, è ragionevole non lasciare bloccati dei soldi se sappiamo che non potranno essere spesi, recuperandoli il prima possibile. Per fortuna, tuttavia, era stato previsto un margine per salvaguardare possibili errori, errori che – per l’appunto – in seguito si sono verificati.

Ed è così che arriviamo finalmente al 28 novembre, data in cui siamo riusciti a riabilitare l’accesso dei 9.374 ragazzi nel sistema.

È stata tutta colpa di un bug, dunque. Ma che cosa sono i bug? E perché esistono in un software? Ma soprattutto, come possiamo evitarli?

I bug nel software

Un mondo più digitale richiede anche dei cittadini più digitali, ovvero cittadini che abbiano una consapevolezza maggiore delle regole che governano il mondo del digitale.

La prima regola di cui dobbiamo diventare consapevoli è che tutti i software hanno bug.

I sistemi informatici sono in mezzo a noi, sulle nostre scrivanie, nelle nostre tasche, sui nostri polsi, e credo che chiunque di noi abbia sperimentato, almeno una volta nella vita, sistemi non perfetti, ovvero con almeno un bug: un click che non viene rilevato, un programma che va in “crash”, un documento che si corrompe, una chiavetta USB che non viene rilevata, un sito web le cui immagini sono distorte, una notifica che compare cento volte.

Credit: Mel Hardman su GIPHY

Questa è una delle sfide più importanti per chi si occupa di software: è necessario seguire sempre le migliori pratiche per ridurre il più possibile l’insorgenza di bug. I metodi sono tanti e gli addetti ai lavori li conoscono bene: programmazione difensiva, test automatizzati, test manuali, monitoring.

Chi progetta software lo fa in un contesto completamente diverso rispetto agli altri campi dell’ingegneria, le regole sono più flessibili, l’evoluzione rapida, i tempi sempre strettissimi e le modifiche continue.

Non è un caso che il sito di 18app abbia avuto per tanti mesi l’etichetta beta sotto il logo, a indicare che la versione non era definitiva, perché difficilmente un software così complesso può esserlo nei primi anni di vita. Nel caso di 18app, parliamo di un bug che riguarda la prima applicazione in larga scala di SPID, un protocollo articolato, che coinvolge tanti attori e implementazioni diverse. Fare comunicare questi software nel modo corretto è un problema spinoso.

Da tecnico, mi sento di dire che il bug non avrebbe dovuto esserci, ma non potrei assicurare che non avrei fatto lo stesso errore.

Quindi, se la presenza di bug in un software è una condizione ineluttabile, è necessario evitare la facile retorica d’accusa contro chi mette i bug nel software, poiché non è sognando la chimera del software perfetto che si risolvono i problemi. Chi fa software a livello professionale lo sa bene e cerca di agire in modo diverso: quando viene trovato un bug, si corre ai ripari nel modo più rapido ed efficace possibile. Si informano gli utenti e si cerca di ridurre al minimo il danno subito, si attuano i correttivi possibili a evitare che problemi simili vengano fuori in altre occasioni. E se siete interessati all’aspetto tecnico di come agiva questo bug, potete andare a recuperare tutte le informazioni che vi servono nelle FAQ in fondo all’articolo.

Uno sguardo al futuro

Certo, per agire efficacemente, c’è ancora molto da lavorare. Cinque mesi non sono un tempo d’intervento di cui andare fieri, dobbiamo imparare a fare meglio di così. Non è stato facile coordinarsi tra i 10 diversi enti e tutte le aziende statali e private coinvolte nel progetto (di cui 8 direttamente coinvolte in questa problematica). Un’attività di coordinamento che rappresenta la normalità di questo sistema complesso (e complicato) che è la macchina pubblica, soltanto uno degli esempi di quel che affrontiamo quotidianamente nel nostro lavoro di trasformazione digitale del Paese.

E quindi, cosa ci rimane da fare d’ora in avanti? I processi ancora migliorabili sono molti e ci stiamo già lavorando. Alcuni esempi?