Vaccini e prenotazione per la prima dose.

Quando la buona volontà si scontra con l'incompetenza.


Il fatto

Ieri, saputo da terzi, che la regione Veneto ha approntato un sito per la prenotazione dell'appuntamento per la prima inoculazione del vaccino per il COVID-19, mi sono apprestato a fissare un appuntamento per me ed il mio compagno.

L'idea di usare un sito per permettere a tutti di prenotarsi, sicuramente è lodevole, ma si scontra con l'incompetenza di chi ha progettato il sito e, soprattutto, e la difficoltà nell'utilizzarlo. Ora, non voglio stare a disquisire sulla grafica e sulla bellezza del sito, non è un compito che mi compete, ma mi vengono dei seri dubbi sulla competenza di chi ha scritto quel pezzo di codice, che in particolare si occupa di:

  1. verificare che ci sia uno slot libero, in un determinato HUB vaccinale;

  2. dare l'accesso all'utente per riempire un form, con i dati necessari per una identificazione univoca;

  3. accettare o meno la richiesta per un determinato slot presso un determinato HUB.

Ora: cosa sia il concetto concorrenza e di lock per chi lavora con database, dovrebbero essere concetti abbondantemente conosciuti, e di uso quotidiano per chi programma interagendo con i database. Invece nel tentare di registrarmi, dico tentare perché ci son volute delle ore per riuscirci, mi sono imbattuto proprio un una dimostrazione lampante del fatto che, chi ha sviluppato la pagina per le prenotazioni per la regione Veneto, non so se sia così anche per le altre regioni, i concetti di concorrenza e lock sono totalmente sconosciuti.

Vi spiego a che mi riferisco.

Andando a questa pagina si arriva nel sito dedicato alla richiesta di prenotazione per ottenere l'inoculazione della prima dose del vaccino, per la regione Veneto. Sono presenti tutte le ULSS del Veneto, ed uno deve cliccare semplicemente sulla unità locale socio sanitario della propria area di residenza. Fatto ciò si è portati in una pagina con un form che richiede il codice fiscale dell'utente: dato il consenso al trattamento dati ai soli fini della prenotazione, si clicca su un pulsante 'Conferma' e si prosegue.

Viene elencata la lista degli HUB vaccinali per la propria area di competenza, e di norma sono tutti 'Non disponibili' perché hanno già tutti gli slot prenotati. E fin qui tutto normale.

Il problema si pone quando si trova finalmente un HUB disponibile perché risulta uno slot libero. In programmazione, a questo punto, di norma:

  1. si blocca quello slot;

  2. si dà il tempo all'utente di compilare i dati richiesti;

  3. e che l'utente clicchi sul classico pulsante 'Conferma';

  4. in contemporanea, viene anche avviato un conto alla rovescia, che se raggiunge lo zero, annulla la richiesta in corso e rende nuovamente libero lo slot; questo contatore serve a liberare lo slot nel caso l'utente lasci a tempo indeterminato aperta la pagina per la conferma. In gergo tecnico di chiama tempo di timeout.

Ed invece no: quello che succede è...

  1. voi compilate il form con dati come nome, cognome, email e numero di cellulare;

  2. cliccate sul pulsante 'Conferma';

  3. Opps: vi viene notificato che, dal momento in cui avete selezionato lo slot, al momento in cui avete confermato la richiesta, qualcun altro, che aveva selezionato lo stesso slot nello stesso momento (concorrenza), è stato più veloce di voi nel compilare i dati richiesti e dare la conferma della stessa. Quindi la vostra richiesta viene annullata!

Questo giochino della apertura contemporanea di uno stesso slot, a più utenti, ha portato come conseguenza il perdere delle ore, nel tentativo di riuscire a farsi assegnare uno slot per la vaccinazione ed ottenerne l'assegnazione. Ci sono riuscito solo precompilando i dati del form in maniera tale che, dal momento in cui ho avuto accesso alla pagina per la prenotazione di quello specifico slot, al momento in cui tutti i campi fossero riempiti ed io cliccassi il pulsante 'Conferma', non passasse più di un secondo!

Solo così sono riuscito, alla fine della giornata, a prenotare l'inoculazione della prima dose del vaccino. E, visto che il metodo funzionava, ho approfittato del giochino per prenotare anche la prima dose per il mio compagno. Usando il sistema del form precompilato, anche per lui, sono riuscito a prenotare in poco più di 10 minuti, contro le ore, che ho perso, per riuscire a prenotare per me!

Ora, io mi domando:

con tutta la gente che sicuramente ha lavorato allo sviluppo di quella applicazione, da browser, per la prenotazione on line della prima vaccinazione, possibile che nessuno abbia pensato, in fase di sviluppo o in fase di test, che la metodologia del chi prima finisce il form, primo si assegna lo slot non va bene?

Mentre passavo le ore, con i tentativi di registrazione che finivano sempre con la notifica che qualcun altro era riuscito a fregarmi lo slot perché era stato più veloce di me, mi sono domandato, visto che il sito serve per la prenotazione degli over 80, over 70 oltre agli over 60, come, secondo lo sviluppatore, una persona di 74 anni, ad esempio, potesse essere così veloce da compilare il form in una manciata di secondi per poter riuscire a farselo confermare?

Il concetto di concorrenza e lock nel mondo dei database, è vecchio quanto i database stessi, per cui proprio non riesco a spiegarmi come sia stato permesso, e si permetta ancora, di usare un sistema così inefficiente, da rendere il sito inutilizzabile per chi non abbia dimestichezza con una tastiera, ed una discreta velocità nell'usarla.

Cari gestori dei siti dell'ULSS, almeno quella del Veneto, sarebbe il caso che sistemaste questa faccenda, perché davvero la procedura, così come è stata impiantata, rischia di rendere impossibile, a diverse persone, riuscire a chiedere, ed ottenere, la prenotazione per farsi vaccinare!

E dire che

questo contrasta con tutto quello che il Generale Figliuolo ed il PdC Draghi, stanno tentando di fare: ossia far vaccinare quante più persone possibili nel minor tempo possibile!

JC