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?

  • L’implementazione software di SPID, che stiamo sviluppando soprattutto su Developers Italia fornendo implementazioni di riferimento e esempi d’uso. Lavoreremo, nelle prossime settimane, per standardizzare il più possibile il protocollo, lasciando sempre meno margine alla possibilità di errori di implementazione, e aumentando la quantità di verifiche automatiche che garantiscano l’assenza di bug.
  • I processi di SPID, che vogliamo migliorare direttamente con gli Identity Provider per creare un sistema che consenta, con maggior facilità, alle persone del supporto tecnico (per esempio, ai call center) di avere visibilità su ciò che è successo all’utente che contatta l’assistenza. Questo servirà in futuro a fornire un’assistenza migliore, che vuol dire anche poter identificare prima e con più chiarezza la presenza di anomalie, iniziando ad agire il più presto possibile.
  • E poi 18app stesso, di cui vogliamo migliorare la comunicazione soprattutto verso i 18enni: spiegando ogni scadenza (è necessario completare la registrazione entro il 30 giugno di ogni anno), e migliorando tecnicamente il monitoraggio per individuare eventuali problematiche immediatamente. Il programma è stato rinnovato per tutti i ragazzi nati nel 1999 (e forse anche per quelli nati nel 2000), ed è importante che tutti loro possano approfittare di questa splendida opportunità di crescita personale.

La sfida per la costruzione di una Pubblica Amministrazione più digitale è solo all’inizio, ma siamo felici che 18app sia diventato un progetto software e non una grande campagna di raccolta e invio di scontrini cartacei.

L’applicazione è migliorabile sotto molti punti di vista, ma siamo orgogliosi di tutte le possibilità che offre: i ragazzi possono usare uno smartphone per spendere il loro bonus in tempo reale, ottenendo uno sconto al momento dell’acquisto, invece che dopo aver compilato e firmato documenti, e poi allegato copie della carta d’identità, e poi ancora raccomandate e rimborsi.
Credit: rawpixel.com su Unsplash

Abbiamo risparmiato davvero molti soldi implementando un software, in tempi strettissimi, e usando una tecnologia di identificazione come SPID (che era stata appena lanciata). Questo incidente di percorso ha insegnato moltissimo a tutti, e ci aiuterà a fare meglio.

Non solo, l’applicazione 18app è stata utilizzata anche per la distribuzione della Carta del Docente (un bonus per la formazione degli insegnanti) e ci auguriamo che possa diventare un modello per tutti quei programmi che gestiranno l’assegnazione di bonus dallo Stato ai cittadini.

Ringraziamo tutti gli enti e tutte le aziende statali che hanno collaborato alla gestione di questa situazione, così critica. Noi lo vediamo anche (e forse soprattutto) come un cambiamento culturale e speriamo che possa diventare un esempio per la gestione di altre situazioni simili, lasciando il benessere del cittadino sempre al centro del processo decisionale.


FAQ

1. Perché c’è tempo per spendere fino al 31 dicembre? Quindi ci rimane solo un mese? Non potevate prorogare la scadenza?

La legge, ad oggi, impone questa scadenza. Abbiamo avviato una discussione in Parlamento per capire se si possa prorogare di 3 mesi il termine, ma non sappiamo se sarà possibile. Il consiglio che diamo è di spendere il bonus durante il mese ancora a disposizione.

2. Non ho ricevuto nessun contatto via email o SMS. Come faccio a sapere se sono stato riammesso al programma?

Il contatto via email o SMS serve solo ad avvertire, in modo da raggiungere tutta la platea degli interessati. Se stai leggendo questo documento e vuoi verificare la tua condizione, puoi collegarti al sito www.18app.italia.it e accedere al tuo profilo: il sistema risponderà con un messaggio di errore se non sei registrato all’interno del gruppo dei 9.374 ragazzi individuati.

3. Ho richiesto SPID prima del 30 giugno 2017 ma non mi sono mai collegato al sito di 18app. Ho di nuovo accesso al bonus?

No, la legge è molto chiara, e anche l’informativa sul sito internet e social lo è sempre stata: le persone che possono utilizzare il bonus dovevano registrarsi sul sito 18app entro il 30 giugno 2017. Non è sufficiente ottenere SPID, è necessario anche collegarsi al sito 18app entro il 30 giugno 2017.

4. Sono un tecnico. In cosa consisteva il bug?

Si trattava di una race condition tra due thread: uno che creava l’anagrafica dell’utente registrato e uno che creava la sessione corrente. In un numero relativamente minore di volte, la nascita della sessione falliva perché l’utente non risultava ancora registrato e, di conseguenza, andava in rollback l’intera transazione interrompendo anche la registrazione.