Skip to content

Instantly share code, notes, and snippets.

@mtorchiano
Last active April 30, 2020 20:14
Show Gist options
  • Save mtorchiano/eb6405915aa668b1fa059ccc24e7876c to your computer and use it in GitHub Desktop.
Save mtorchiano/eb6405915aa668b1fa059ccc24e7876c to your computer and use it in GitHub Desktop.
Uno sguardo di sistema sulla "Contact Tracing App"

Uno sguardo di sistema sulla "Contact Tracing App"

Versione 1.4 - 26 Aprile 2020 - Marco Torchiano @mtorchiano

Premessa

Un argomento caldo in questo periodo sui cui si sono visti molti scontri, non solo tra le persone della strada ma anche tra esperti è la famosa (o famigerata) App di Contact Tracing.

In seguito ai lavori di una commissione di esperti (task force dati) il commissario straordinario Arcuri ha annunciato la scelta di una app, tra quelle proposte in riposta ad una bando congiunto di tre ministeri ( Telemedicina e data analysis ).

La app verrà sviluppata dalla società Bending Spoons e il codice sorgente del sistema di contact tracing sarà rilasciato con licenza Open Source MPL 2.0.

Uno sguardo di sistema

Sebbene buona parte delle osservazioni si siano concentrate su aspetti tecnologici e di impatto sulla privacy, il tema può essere analizzato sotto diverse prospettive.

Si tratta di un sistema complesso e come tale comporta articolati bilanciamenti di vantaggi e svantaggi su molte dimensioni.

Provo ad elencare alcune delle dimensioni che dalla mia personale esperienza, da un punto di vista di Sistemi Informativi e Ingegneria del Software, mi paiono degne di nota:

  • modelli epidemiologici
  • tecnologia
  • qualità dei dati
  • sviluppo software
  • adozione ed efficacia
  • processi e logistica di supporto
  • impatto sociale e giuridico

Queste dimensioni e la loro discussione che segue non vogliono rappresentare una critica ma bensì degli spunti per una riflessione più ampia all'interno della società civile.

L'obiettivo finale è quello di far prendere coscienza della complessità del problema, del fatto che non esiste una soluzione perfetta, sebbene alcune soluzioni siano meno imperfette di altre.

Si tratta di inquadrare il problema in un contesto articolato, dove la risposta alle domande su un sistema complesso deve essere quella del buon ingegnere: "dipende!". Dipende dal punto di vista e da quale compromesso tra tali punti di vista si voglia scegliere.

Modelli epidemiologici

Ci sono diversi modelli che descrivono le dinamiche del contagio. Quello base è il modello SIR (Susceptible, Infected, Recovered), in cui il parametro $R_0$ indica l'evoluzione del contagio (quanti individui vengono contagiati da ciascun individuo infetto).

Recenti studi hanno stimato l'effetto di un contact tracing digitale. In estrema sintesi, ipotizzando un auto-isolamento immediato, sarebbe sufficiente un livello di adozione della App pari al 60% per garantire un regresso dell'epidemia (in termini SIR, $R_0$ viene abbassato sotto la soglia critica pari a 1).

L'articolo citato considera diversi livelli di efficacia nel contenimento delle persone infette, ma non approfondisce ulteriormente. Quindi le stime sono ragionevoli a patto che sotto gli altri punti di visto il sistema sia quasi ideale.

Tecnologia

Sono state sviluppate diverse tecnologie per il "contact tracing" digitale ed a livello internazionale sono disponibili alcuni standard (quello più rilevante è probabilmente DP-3T ) di cui la App dovrà tenere conto. Inoltre è stato annunciato lo sviluppo di nuove funzionalità inserite direttamente nei sistemi operativi di Apple e Google.

Questi approcci si basano sullo scambio di piccoli messaggi anonimi tramite BTLE (Bluetooth Low Energy) in modo da poter risalire a chi è stato in contatto con soggetti che si rivelano infetti.

L'uso di altre tecnologie di geolocalizzazione, come GPS o le celle telefoniche, oltre a essere difficilmente conciliabili con la privacy per come è concepita all'interno dell'UE, sono poco precisi, particolarmente al chiuso.

Qualità dei dati

Buona parte dei ragionamenti fatti assume che i dati raccolti tramite le app e poi sfruttati per identificare potenziali contagi siano perfetti. Nella pratica, e lo sa bene chi lavora quotidianamente con grandi moli di dati, la qualità dei dati rappresenta un limite critico.

Usando lo standard ISO/IEC 25012:2008 e, a titolo esemplificativo, escludendo le caratteristiche di qualità che dipendono dai sistemi che le elaborano, considerando solo le caratteristiche intrinseche dei dati:

  • incompletezza (mancano dati su alcuni contatti o in alcuni periodi)
  • incoerenza (dati diversi suggeriscono contatti diversi)
  • mancato aggiornamento (tra app e tra app e sistemi centrali)
  • accuratezza (dei singoli dati, dei tempi, delle distanze)
  • credibilità (per la presenza di fonti di dati non accreditate)

Senza una valutazione e stima della qualità dei dati è impossibile sapere qual'è il livello di affidabilità dell'applicazione e la sua efficacia nel ridurre l'epidemia.

Sviluppo software

Uno degli aspetti spesso trascurati nello sviluppo del software è rappresentato, al di là delle tecnologie utilizzate, dai processi e dalle metodologie utilizzati.

Quando si sviluppano sistemi "safety critical" (da cui dipende la vita delle persone, come il sw di un aeroplano) le norme internazionali impongono l'adozione di una serie di pratiche di sviluppo. Questo perché il comportamento del sw non è "lineare" (ovvero facilmente estrapolabile da una serie di casi noti) a differenza di buona parte dei prodotti fisici, perciò il collaudo non può essere esaustivo e non può dare alcuna garanzia di correttezza.

Un esempio di pratica, spesso trascurata, ma sicuramente applicabile e fondamentale nel caso della App di tracciamento, è la conduzione di piano di sw testing più esteso possibile e largamente automatizzato. Sappiamo che il test di App mobili è difficile, ma non farlo o farlo in maniera limitata potrebbe avere delle conseguenze estremamente gravi.

Adozione ed efficacia

Una volta che la App sarà pronta, perché sia utile è necessario che sia adottata ampiamente, in modo che i potenziali contagiati siano avvertiti tempestivamente e possano prendere provvedimenti.

Tuttavia, se avviene un contagio tra due persone, affinché l'App possa avvertire la contagiata è necessario che:

  1. entrambi abbiano un telefono
  • si tratti di modelli recente
  • sia stato aggiornato il sistema operativo
  • abbiano installato l'App
  • avessero l'App attiva quando è avvenuto il contagio
  • il BTLE abbia funzionato correttamente
  • che chi ha trasmesso il contagio abbia sviluppato i sintomi o sia stato avvisato dall'app
  • che abbia preso provvedimenti
  • che sia stato soggetto ad un "tampone"
  • che il "tampone" abbia dato esito positivo
  • che chi è stato contagiato riceva la notifica

Questo elenco non vuole essere esaustivo o sistematico ma solo dare un'idea della quantità e varietà di fattori esterni, al di fuori del controllo di chiunque sviluppi l'App o gestisca il sistema di tracciamento.

È importante avere delle stime sulla probabilità di questi eventi e mettere in campo delle azioni per mitigare i rischi connessi.

App Adoption

Processi e logistica di supporto

Una App da sola non è sufficiente a raggiungere un obiettivo ampio quale la riduzione dei contagi. Le App sono inserite nel contesto di un Sistema Informativo, che include altri applicativi (ad es. il registro centralizzato dei contagi) che devono operare sinergicamente.

I sistemi informativi di supporto al momento hanno evidenziato preoccupanti carenze. Sviluppare nuovi sistemi non è facile sia per i tempi ristretti (che porterebbero a non adottare le buone pratiche di ingegneria del software cui si accennava sopra) sia per la necessità di integrarli adeguatamente con quelli esistenti (pena la perdita di informazioni).

Il sistema informativo, a propria volta, è immerso in un contesto complesso: altri sistemi informativi e un'organizzazione. L'organizzazione comprende: procedure, strutture e risorse.

Servono delle procedure, ad esempio l'OMS ha definito le procedure raccomandate per il "contact tracing", ma per eseguire le procedure servono delle organizzazioni che le mettano in pratica e le organizzazioni hanno bisogno di risorse per poterle attuare. Le risorse sono

  • materiali: laboratori, strumenti di analisi, reagenti e consumabili;
  • umane: deve esserci un numero sufficiente di persone, ma soprattuto, esse devono possedere conoscenze e capacità adeguate ai compiti che dovranno svolgere.

Impatto sociale e giuridico

Per ultimo, ma non ultimo per importanza, è fondamentale valutare l'impatto sociale e giuridico. In primis in termini di privacy ma non solo.

A questo proposito è molto chiara la lettera aperta su tracciamento dei contatti e democrazia promossa dal Centro Nexa su Internet & Società e sottoscritta da un ampio numero di esperti.

È probabilmente da attribuire alla tempestività di tale lettera quello che è stato percepito come un cambiamento di rotta da parte del governo su alcuni punti critici.

Queste genere di considerazioni sono fondamentali nello scegliere quali sono le priorità che devono guidare la scelta di pesi e compromessi tra i diversi punti di vista. Un buon ingegnere del software deve ricordare sempre che “ogni linea di codice rappresenta una scelta morale”.

Conclusioni

Queste sono, senza pretesa di completezza, diverse dimensioni che è importante considerare quando si analizza una App che abbia una portata ampia come quella di “contact tracing”, ma “mutatis mutandis” si applicano a tante altre applicazioni. Si tratta di prospettive dovrebbero essere evidenti per chi ha la sensibilità che deriva dalla cultura di sistema, che dovrebbe essere propria di un buon ingegnere del software.

Si tratta di capire che, citando una bella riflessione di Luca Sofri, quando ci si chiede "Di che colore è il mare?" non sempre la risposta è "Blu.".

Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@SettingSale
Copy link

SettingSale commented Apr 30, 2020 via email

@ADurante
Copy link

Grazie Alessio per avermi tirato su github anche con Polito, ora ho ancora piu' alias, vediamo se Facebook mi raggiunge ahahah Un abbaccio Roberto (altrimenti Rob, SetSail, SettingSale ed n altri pseudonimi sparsi)

On Thu, 30 Apr 2020 09:10:51 -0700 Alessio Durante @.***> wrote: @mtorchiano mi è poi passato di mente, ma ho effettuato un fork e, già che c'ero, ho anche corretto qualche refuso. A presto! -- You are receiving this because you commented. Reply to this email directly or view it on GitHub: https://gist.github.com/eb6405915aa668b1fa059ccc24e7876c#gistcomment-3276780

🤣

Un abbraccio!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment