la riflessione

Quando i bug nei computer uccidono: siamo certi siano un male inevitabile?

Nuovi casi in cui bug dei software causano perdita di vite umane. Ma bisogna cambiare approccio al problema. Affermare l’idea che serva allocare tempo e risorse per permettere lo sviluppo di programmi corretti e a chiedere sempre che questi rispondano a esigenze di semplicità e trasparenza

Pubblicato il 10 Mag 2018

Giovanni Salmeri

Università degli Studi di Roma Tor Vergata

log4

Il fatto ha guadagnato per breve tempo le prime pagine dei giornali: forse fino a 270 donne potrebbero negli anni scorsi aver perso la vita a causa di un bug nell’algoritmo di un programma del National Health Service britannico, che ha omesso di inviare a moltissime l’invito a sottoporsi alla periodica analisi mammografica. In un periodo in cui si moltiplicano gli allarmi riguardo ai mali indotti dalla pervasività dell’informatica, una notizia come questa era destinata ad avere eco. Un’eco giustificata?

Gli errori tecnici che uccidono o quasi

In un certo senso no. Anzitutto, bisogna dire che episodi di questo tipo sono ben noti a chiunque si occupi di sicurezza del software: errori disastrosi sono sempre in agguato. Soli pochi giorni prima del lancio dell’Apollo 11 ci si accorse che il software di bordo aveva un segno sbagliato, che attribuiva alla luna una forza non attrattiva ma repulsiva: se una tazzina di caffè in meno avesse reso un paio di occhi meno attenti, piuttosto che l’uomo sulla Luna avremmo avuto l’uomo perduto a morire nello spazio, e la storia sarebbe stata diversa.

Margaret Hamilton, la responsabile informatica dell’Apollo 11, considerò poi missione della propria vita elaborare le strategie di controllo della correttezza dei programmi: comprensibile. Ma altre volte la tazzina di caffè effettivamente è mancata ed enormi danni sono seguiti: qualche anno prima il Mariner 1 diretto verso Venere cambiò la rotta prevista e venne distrutto 5 minuti dopo il lancio a causa di un «trattino mancante» (così si raccontò) nel software di bordo: non si perse nessuna vita umana, ma si mandarono in fumo quasi 20 milioni di dollari dell’epoca.

Altri casi celebri riguardano in maniera diretta la medicina: tra il 1985 e il 1987 almeno tre morti furono causate dal software difettoso di una macchina per la radioterapia, il Therac-25, che somministrò una radiazione cento volte superiore rispetto a quella prevista. È dunque solo uno tra i tanti il caso in questione della Gran Bretagna, peraltro difficile da quantificare. C’è inoltre da considerare l’effetto «cane che morde l’uomo»: se un evento come questo fa notizia, è appunto perché è un’eccezione rispetto alla norma di programmi che funzionano bene e portano avanti la stragrande maggioranza delle faccende del nostro mondo moderno. Nessun allarme dunque, anzi la conferma che le cose in genere vanno bene.

Il bug hunting salva la vita

Ciononostante, la notizia merita qualche riflessione in più. Che l’individuazione e la rimozione dei bug faccia parte della normale procedura di preparazione di un programma è un luogo comune universalmente condiviso. È noto che questa terminologia venne messa in uso dall’informatica americana Grace Hopper, la quale risolse un problema di funzionamento di un computer scovando appunto un insetto, un bug, che si era infelicemente intrufolato nel computer falsando un contatto. Ecco, la capacità di condurre felicemente in porto queste cacce, a volte difficili e misteriose, deve far parte del corredo di competenze di ogni buon programmatore. Anzi, se ci si proponesse di scrivere la storia delle novità via via introdotte per alleviare questo problema, in realtà si avrebbe una storia quasi completa dei linguaggi di programmazione: linguaggi di alto livello, programmazione strutturata, programmazione ad oggetti, literate programming, design by contract: in misura diversa sono stati tutti modi, di maggiore o minore successo, per favorire anche la scrittura di programmi privi di bug.

I bug sono un male necessario?

Che però la presenza di bug e il conseguente debugging sia una sorte inevitabile può essere contestato. Lo contestava per esempio Edsger Dijkstra, che negli anni 70, quando l’idea era diventata onnipresente, scriveva con il suo consueto fare sbrigativo che c’è un modo semplicissimo per evitare il debugging: basta non introdurre bug. Anzi, il primo passo sarebbe eliminare questa fuorviante metafora e chiamare le cose con il loro nome: i cosiddetti bug non sono misteriosi insetti che si sono intrufolati nella tua opera, ma semplicemente «errori» che tu hai commesso: «Se in fisica c’è qualcosa che non capisci, ti puoi sempre nascondere dietro le insondabili profondità della natura. Puoi sempre dare la colpa a Dio. Non sei stato tu a fare le cose così complicate.

Ma se il tuo programma non funziona, non c’è nessuno dietro cui ti puoi nascondere. Non ti puoi nascondere dietro una natura ostinata. Uno zero è uno zero, un uno è un uno. Se non funziona, sei tu che hai sbagliato». Anche per questo a suo parere l’informatica è da considerare una branca della matematica. Esattamente come in questa, di ogni programma va quindi dimostrata la correttezza, in maniera più o meno formale. Ciò non ha niente a che fare con il «provarlo» su un computer: in questo modo al massimo si potrà vedere che vi sono degli errori, ma non si potrà mai controllare che essi non vi siano. E, tanto per coerenza, da un certo momento in poi non toccò più un computer e non lo faceva più toccare ai propri studenti. (Come? Semplice: basta assegnare i compiti in un linguaggio di programmazione per il quale non è mai esistito un interprete e che quindi non possono essere provati, perlomeno direttamente, in nessun computer. I suoi libri di testo sono così, vedere per credere!)

Si può sostenere che questa radicalità sia esagerata. Non si può però negare che essa abbia portato almeno qualche frutto: il successo pressoché universale della «programmazione strutturata», che prima abbiamo citato tra le strategie per ridurre la probabilità di errori, si deve soprattutto a lui (ricordo chiaramente quando da ragazzino, pur non conoscendo ovviamente il nome di Dijkstra, mi convertii ad uno stile di programmazione strutturata!). Ma soprattutto non si può negare che ancor oggi i suoi avvertimenti debbano essere presi sul serio. Mi pare infatti che ai motivi che egli vedeva come cause di inquinamento della purezza matematica dell’informatica se ne sia aggiunto un altro, dal versante pedagogico: l’idea cioè secondo cui proprio il luogo comune sui bug sia pedagogicamente importante.

Così per esempio riteneva Seymour Papert, l’influente promotore del LOGO e dell’informatica come ambiente educativo: proprio quest’ultimo, sosteneva, aiuta a liberarsi dall’idea che esistano «errori»: no, ci sono solo bug da correggere, e questo vale per ogni disciplina. Siamo sicuri che per voler superare l’angoscia della matita blu non si vada troppo in là e non si trasmetta l’idea che in fondo è inevitabile che ci siano errori, e che questi non siano responsabilità di nessuno? Sbagliando si impara, diceva l’antica saggezza: ma questo suppone appunto che sia ben chiara l’idea che noi siamo in grado di fare o di non fare errori. Se la preoccupazione sembra eccessiva, si comincino a contare le volte in cui nel linguaggio comune e nei mezzi di comunicazione di massa si parla di «computer che sbagliano», «computer che si confondono», «computer che interpretano», e così via. I titoli dei giornali sul deprecabile episodio in Gran Bretagna hanno parlato di «errore del computer», «falla del computer», «colpa di un algoritmo», «meccanismo inceppato». Più o meno come parlare di «errore del volante» per un incidente stradale.

Archiviare definitivamente questo linguaggio animistico certamente sarebbe utile e aiuterebbe, se non a convertirsi all’intransigenza matematica di Dijkstra, almeno a non ritenere gli errori nel software un brutto tiro del destino. Aiuterebbe quindi ad allocare tempo e risorse per permettere lo sviluppo di programmi corretti e a chiedere sempre che questi rispondano a quelle esigenze di semplicità e pubblicità che, aumentando la trasparenza del codice e il numero di occhi che possono controllare, forse aumenterebbero anche la probabilità di eliminare eventuali errori.

Valuta la qualità di questo articolo

La tua opinione è importante per noi!

Speciale PNRR

Tutti
Incentivi
Salute digitale
Formazione
Analisi
Sostenibilità
PA
Sostemibilità
Sicurezza
Digital Economy
CODICE STARTUP
Imprenditoria femminile: come attingere ai fondi per le donne che fanno impresa
DECRETI
PNRR e Fascicolo Sanitario Elettronico: investimenti per oltre 600 milioni
IL DOCUMENTO
Competenze digitali, ecco il nuovo piano operativo nazionale
STRUMENTI
Da Istat e RGS gli indicatori per misurare la sostenibilità nel PNRR
STRATEGIE
PNRR – Piano nazionale di Ripresa e Resilienza: cos’è e novità
FONDI
Pnrr, ok della Ue alla seconda rata da 21 miliardi: focus su 5G e banda ultralarga
GREEN ENERGY
Energia pulita: Banca Sella finanzia i progetti green incentivati dal PNRR
TECNOLOGIA SOLIDALE
Due buone notizie digitali: 500 milioni per gli ITS e l’inizio dell’intranet veloce in scuole e ospedali
INNOVAZIONE
Competenze digitali e InPA cruciali per raggiungere gli obiettivi del Pnrr
STRATEGIE
PA digitale 2026, come gestire i fondi PNRR in 5 fasi: ecco la proposta
ANALISI
Value-based healthcare: le esperienze in Italia e il ruolo del PNRR
Strategie
Accordi per l’innovazione, per le imprese altri 250 milioni
Strategie
PNRR, opportunità e sfide per le smart city
Strategie
Brevetti, il Mise mette sul piatto 8,5 milioni
Strategie
PNRR e opere pubbliche, la grande sfida per i Comuni e perché bisogna pensare digitale
Formazione
Trasferimento tecnologico, il Mise mette sul piatto 7,5 milioni
Strategie
PSN e Strategia Cloud Italia: a che punto siamo e come supportare la PA in questo percorso
Dispersione idrica
Siccità: AI e analisi dei dati possono ridurre gli sprechi d’acqua. Ecco gli interventi necessari
PNRR
Cloud, firmato il contratto per l’avvio di lavori del Polo strategico
Formazione
Competenze digitali, stanziati 48 milioni per gli Istituti tecnologici superiori
Iniziative
Digitalizzazione delle reti idriche: oltre 600 milioni per 21 progetti
Competenze e competitività
PNRR, così i fondi UE possono rilanciare la ricerca e l’Università
Finanziamenti
PNRR, si sbloccano i fondi per l’agrisolare
Sanità post-pandemica
PNRR, Missione Salute: a che punto siamo e cosa resta da fare
Strategie
Sovranità e autonomia tecnologica nazionale: come avviare un processo virtuoso e sostenibile
La relazione
Pnrr e PA digitale, l’alert della Corte dei conti su execution e capacità di spesa
L'editoriale
Elezioni 2022, la sfida digitale ai margini del dibattito politico
Strategie
Digitale, il monito di I-Com: “Senza riforme Pnrr inefficace”
Transizione digitale
Pnrr: arrivano 321 milioni per cloud dei Comuni, spazio e mobilità innovativa
L'analisi I-COM
Il PNRR alla prova delle elezioni: come usare bene le risorse e centrare gli obiettivi digitali
Cineca
Quantum computing, una svolta per la ricerca: lo scenario europeo e i progetti in corso
L'indice europeo
Desi, l’Italia scala due posizioni grazie a fibra e 5G. Ma è (ancora) allarme competenze
L'approfondimento
PNRR 2, ecco tutte le misure per cittadini e imprese: portale sommerso, codice crisi d’impresa e sismabonus, cosa cambia
Servizi digitali
PNRR e trasformazione digitale: ecco gli investimenti e le riforme previste per la digitalizzazione della PA
Legal health
Lo spazio europeo dei dati sanitari: come circoleranno le informazioni sulla salute nell’Unione Europea
Servizi digitali
PNRR e PA digitale: non dimentichiamo la dematerializzazione
Digital Healthcare transformation
La trasformazione digitale degli ospedali
Governance digitale
PA digitale, è la volta buona? Così misure e risorse del PNRR possono fare la differenza
Servizi digitali
Comuni e digitale, come usare il PNRR senza sbagliare
La survey
Pnrr e digitale accoppiata vincente per il 70% delle pmi italiane
Missione salute
Fascicolo Sanitario Elettronico alla prova del PNRR: limiti, rischi e opportunità
Servizi pubblici
PNRR: come diventeranno i siti dei comuni italiani grazie alle nuove risorse
Skill gap
PNRR, la banda ultra larga crea 20.000 nuovi posti di lavoro
Il Piano
Spazio, Colao fa il punto sul Pnrr: i progetti verso la milestone 2023
FORUMPA2022
PNRR e trasformazione digitale: rivedi i Talk di FORUM PA 2022 in collaborazione con le aziende partner
I contratti
Avio, 340 milioni dal Pnrr per i nuovi propulsori a metano
Next Generation EU
PNRR, a che punto siamo e cosa possono aspettarsi le aziende private
Fondi
Operativo il nuovo portale del MISE con tutti i finanziamenti per le imprese
Servizi comunali
Il PNRR occasione unica per i Comuni digitali: strumenti e risorse per enti e cittadini
Healthcare data platform
PNRR dalla teoria alla pratica: tecnologie e soluzioni per l’innovazione in Sanità
Skill
Competenze digitali, partono le Reti di facilitazione
Gli obiettivi
Scuola 4.0, PNRR ultima chance: ecco come cambierà il sistema formativo
Sistema Paese
PNRR 2, è il turno della space economy
FORUM PA 2022
FORUM PA 2022: la maturità digitale dei comuni italiani rispetto al PNRR
Analisi
PNRR: dalla Ricerca all’impresa, una sfida da cogliere insieme
Innovazione
Pnrr, il Dipartimento per la Trasformazione digitale si riorganizza
FORUM PA 2022
PA verde e sostenibile: il ruolo di PNRR, PNIEC, energy management e green public procurement
Analisi
PNRR, Comuni e digitalizzazione: tutto su fondi e opportunità, in meno di 3 minuti. Guarda il video!
Rapporti
Competenze digitali e servizi automatizzati pilastri del piano Inps
Analisi
Attuazione del PNRR: il dialogo necessario tra istituzioni e società civile. Rivedi lo Scenario di FORUM PA 2022
Progetti
Pnrr, fondi per il Politecnico di Torino. Fra i progetti anche IS4Aerospace
Analisi
PNRR, Colao fa il punto sulla transizione digitale dell’Italia: «In linea con tutte le scadenze»
La Svolta
Ict, Istat “riclassifica” i professionisti. Via anche al catalogo dati sul Pnrr
Analisi
Spazio, Colao fa il punto sul Pnrr: i progetti verso la milestone 2023
FORUM PA 2022
Ecosistema territoriale sostenibile: l’Emilia Romagna tra FESR e PNRR
Il Piano
Innovazione, il Mise “centra” gli obiettivi Pnrr: attivati 17,5 miliardi
Analisi
PNRR: raggiunti gli obiettivi per il primo semestre 2022. Il punto e qualche riflessione
Analisi
PNRR: dal dialogo tra PA e società civile passa il corretto monitoraggio dei risultati, tra collaborazione e identità dei luoghi
Webinar
Comuni e PNRR: un focus sui bandi attivi o in pubblicazione
Analisi
Formazione 4.0: cos’è e come funziona il credito d’imposta
PA e Sicurezza
PA e sicurezza informatica: il ruolo dei territori di fronte alle sfide della digitalizzazione
PA e sicurezza
PNRR e servizi pubblici digitali: sfide e opportunità per Comuni e Città metropolitane
Water management
Water management in Italia: verso una transizione “smart” e “circular” 
LE RISORSE
Transizione digitale, Simest apre i fondi Pnrr alle medie imprese
Prospettive
Turismo, cultura e digital: come spendere bene le risorse del PNRR
Analisi
Smart City: quale contributo alla transizione ecologica
Decarbonizzazione
Idrogeno verde, 450 milioni € di investimenti PNRR, Cingolani firma
Unioncamere
PNRR, imprese in ritardo: ecco come le Camere di commercio possono aiutare
I fondi
Industria 4.0: solo un’impresa su tre pronta a salire sul treno Pnrr
CODICE STARTUP
Imprenditoria femminile: come attingere ai fondi per le donne che fanno impresa
DECRETI
PNRR e Fascicolo Sanitario Elettronico: investimenti per oltre 600 milioni
IL DOCUMENTO
Competenze digitali, ecco il nuovo piano operativo nazionale
STRUMENTI
Da Istat e RGS gli indicatori per misurare la sostenibilità nel PNRR
STRATEGIE
PNRR – Piano nazionale di Ripresa e Resilienza: cos’è e novità
FONDI
Pnrr, ok della Ue alla seconda rata da 21 miliardi: focus su 5G e banda ultralarga
GREEN ENERGY
Energia pulita: Banca Sella finanzia i progetti green incentivati dal PNRR
TECNOLOGIA SOLIDALE
Due buone notizie digitali: 500 milioni per gli ITS e l’inizio dell’intranet veloce in scuole e ospedali
INNOVAZIONE
Competenze digitali e InPA cruciali per raggiungere gli obiettivi del Pnrr
STRATEGIE
PA digitale 2026, come gestire i fondi PNRR in 5 fasi: ecco la proposta
ANALISI
Value-based healthcare: le esperienze in Italia e il ruolo del PNRR
Strategie
Accordi per l’innovazione, per le imprese altri 250 milioni
Strategie
PNRR, opportunità e sfide per le smart city
Strategie
Brevetti, il Mise mette sul piatto 8,5 milioni
Strategie
PNRR e opere pubbliche, la grande sfida per i Comuni e perché bisogna pensare digitale
Formazione
Trasferimento tecnologico, il Mise mette sul piatto 7,5 milioni
Strategie
PSN e Strategia Cloud Italia: a che punto siamo e come supportare la PA in questo percorso
Dispersione idrica
Siccità: AI e analisi dei dati possono ridurre gli sprechi d’acqua. Ecco gli interventi necessari
PNRR
Cloud, firmato il contratto per l’avvio di lavori del Polo strategico
Formazione
Competenze digitali, stanziati 48 milioni per gli Istituti tecnologici superiori
Iniziative
Digitalizzazione delle reti idriche: oltre 600 milioni per 21 progetti
Competenze e competitività
PNRR, così i fondi UE possono rilanciare la ricerca e l’Università
Finanziamenti
PNRR, si sbloccano i fondi per l’agrisolare
Sanità post-pandemica
PNRR, Missione Salute: a che punto siamo e cosa resta da fare
Strategie
Sovranità e autonomia tecnologica nazionale: come avviare un processo virtuoso e sostenibile
La relazione
Pnrr e PA digitale, l’alert della Corte dei conti su execution e capacità di spesa
L'editoriale
Elezioni 2022, la sfida digitale ai margini del dibattito politico
Strategie
Digitale, il monito di I-Com: “Senza riforme Pnrr inefficace”
Transizione digitale
Pnrr: arrivano 321 milioni per cloud dei Comuni, spazio e mobilità innovativa
L'analisi I-COM
Il PNRR alla prova delle elezioni: come usare bene le risorse e centrare gli obiettivi digitali
Cineca
Quantum computing, una svolta per la ricerca: lo scenario europeo e i progetti in corso
L'indice europeo
Desi, l’Italia scala due posizioni grazie a fibra e 5G. Ma è (ancora) allarme competenze
L'approfondimento
PNRR 2, ecco tutte le misure per cittadini e imprese: portale sommerso, codice crisi d’impresa e sismabonus, cosa cambia
Servizi digitali
PNRR e trasformazione digitale: ecco gli investimenti e le riforme previste per la digitalizzazione della PA
Legal health
Lo spazio europeo dei dati sanitari: come circoleranno le informazioni sulla salute nell’Unione Europea
Servizi digitali
PNRR e PA digitale: non dimentichiamo la dematerializzazione
Digital Healthcare transformation
La trasformazione digitale degli ospedali
Governance digitale
PA digitale, è la volta buona? Così misure e risorse del PNRR possono fare la differenza
Servizi digitali
Comuni e digitale, come usare il PNRR senza sbagliare
La survey
Pnrr e digitale accoppiata vincente per il 70% delle pmi italiane
Missione salute
Fascicolo Sanitario Elettronico alla prova del PNRR: limiti, rischi e opportunità
Servizi pubblici
PNRR: come diventeranno i siti dei comuni italiani grazie alle nuove risorse
Skill gap
PNRR, la banda ultra larga crea 20.000 nuovi posti di lavoro
Il Piano
Spazio, Colao fa il punto sul Pnrr: i progetti verso la milestone 2023
FORUMPA2022
PNRR e trasformazione digitale: rivedi i Talk di FORUM PA 2022 in collaborazione con le aziende partner
I contratti
Avio, 340 milioni dal Pnrr per i nuovi propulsori a metano
Next Generation EU
PNRR, a che punto siamo e cosa possono aspettarsi le aziende private
Fondi
Operativo il nuovo portale del MISE con tutti i finanziamenti per le imprese
Servizi comunali
Il PNRR occasione unica per i Comuni digitali: strumenti e risorse per enti e cittadini
Healthcare data platform
PNRR dalla teoria alla pratica: tecnologie e soluzioni per l’innovazione in Sanità
Skill
Competenze digitali, partono le Reti di facilitazione
Gli obiettivi
Scuola 4.0, PNRR ultima chance: ecco come cambierà il sistema formativo
Sistema Paese
PNRR 2, è il turno della space economy
FORUM PA 2022
FORUM PA 2022: la maturità digitale dei comuni italiani rispetto al PNRR
Analisi
PNRR: dalla Ricerca all’impresa, una sfida da cogliere insieme
Innovazione
Pnrr, il Dipartimento per la Trasformazione digitale si riorganizza
FORUM PA 2022
PA verde e sostenibile: il ruolo di PNRR, PNIEC, energy management e green public procurement
Analisi
PNRR, Comuni e digitalizzazione: tutto su fondi e opportunità, in meno di 3 minuti. Guarda il video!
Rapporti
Competenze digitali e servizi automatizzati pilastri del piano Inps
Analisi
Attuazione del PNRR: il dialogo necessario tra istituzioni e società civile. Rivedi lo Scenario di FORUM PA 2022
Progetti
Pnrr, fondi per il Politecnico di Torino. Fra i progetti anche IS4Aerospace
Analisi
PNRR, Colao fa il punto sulla transizione digitale dell’Italia: «In linea con tutte le scadenze»
La Svolta
Ict, Istat “riclassifica” i professionisti. Via anche al catalogo dati sul Pnrr
Analisi
Spazio, Colao fa il punto sul Pnrr: i progetti verso la milestone 2023
FORUM PA 2022
Ecosistema territoriale sostenibile: l’Emilia Romagna tra FESR e PNRR
Il Piano
Innovazione, il Mise “centra” gli obiettivi Pnrr: attivati 17,5 miliardi
Analisi
PNRR: raggiunti gli obiettivi per il primo semestre 2022. Il punto e qualche riflessione
Analisi
PNRR: dal dialogo tra PA e società civile passa il corretto monitoraggio dei risultati, tra collaborazione e identità dei luoghi
Webinar
Comuni e PNRR: un focus sui bandi attivi o in pubblicazione
Analisi
Formazione 4.0: cos’è e come funziona il credito d’imposta
PA e Sicurezza
PA e sicurezza informatica: il ruolo dei territori di fronte alle sfide della digitalizzazione
PA e sicurezza
PNRR e servizi pubblici digitali: sfide e opportunità per Comuni e Città metropolitane
Water management
Water management in Italia: verso una transizione “smart” e “circular” 
LE RISORSE
Transizione digitale, Simest apre i fondi Pnrr alle medie imprese
Prospettive
Turismo, cultura e digital: come spendere bene le risorse del PNRR
Analisi
Smart City: quale contributo alla transizione ecologica
Decarbonizzazione
Idrogeno verde, 450 milioni € di investimenti PNRR, Cingolani firma
Unioncamere
PNRR, imprese in ritardo: ecco come le Camere di commercio possono aiutare
I fondi
Industria 4.0: solo un’impresa su tre pronta a salire sul treno Pnrr

Articoli correlati

Articolo 1 di 2