Prima di iniziare, è importante dire che la tua preoccupazione non è irrazionale. Se ciò accadesse, o se i sistemi di controllo del tuo aereo dovessero funzionare male in modo pericoloso, la tua vita sarebbe davvero in pericolo.
Non sei la prima persona a pensarci, però . Per questo motivo, abbiamo una categoria di sistemi di controllo che descriviamo tecnicamente come relativi alla sicurezza e esiste un'intera branca dell'ingegneria chiamata ingegneria della sicurezza dedicato alla valutazione formale di questi sistemi e al tentativo di prevenire gli incidenti. Ciò include i sistemi di controllo degli aeroplani, ma anche i freni antibloccaggio, i dispositivi medici e qualsiasi altro sistema in cui le persone potrebbero essere danneggiate da un errore. Il grado in cui le persone possono essere danneggiate da ciò viene formalmente valutato come un livello di integrità della sicurezza in base al rischio. Il rischio è una combinazione di quanto è probabile l'evento, quanto negativo sarà il risultato e se le persone coinvolte possono intraprendere un'azione di mitigazione e viene valutato per ogni modo in cui un sistema correlato alla sicurezza può comportarsi male.
Tieni presente che questa valutazione potrebbe non essere così intuitiva come potresti pensare. Una volta ho lavorato a un sistema di erogazione di pula e razzi per aerei militari. Penseresti che il rischio di non far scattare le contromisure e di abbattere il pilota sarebbe il tuo rischio maggiore, ma la valutazione della sicurezza (abbiamo utilizzato un FMEA) ha mostrato che il pilota aveva altre opzioni di mitigazione come un'armatura e un sedile eiettabile, essere abbattuti è un'opportunità che avevano già accettato quando hanno accettato il lavoro, e il rischio che un aereo si schiantasse contro edifici era minuscolo e qualcosa che era già stato accettato istituzionalmente come parte dell'aviazione. Il rischio più grave era in realtà che il sistema si accendesse male mentre un armaiolo lo stava ricaricando, perché poi avrebbero ricevuto una scarica di 36 proiettili di fucile alla testa a distanza ravvicinata. L'armaiolo non ha accettato di correre il rischio e non c'era modo pratico per proteggerli. Di conseguenza, il nostro sistema doveva non attivarsi per impostazione predefinita in caso di discrepanze.
Esistono molti modi per garantire l'affidabilità. La ridondanza è la più diffusa. Puoi avere più sensori in più posizioni, quindi il sistema può sempre capire cosa sta succedendo se uno (o più, forse) dovesse fallire. Di solito ci sono più attuatori per importanti superfici di volo o più superfici di volo in cui l'aereo può mantenere il controllo se uno o più sono danneggiati. Gli aerei passeggeri hanno generalmente anche più motori e più serbatoi di carburante che possono essere isolati l'uno dall'altro in caso di danni. In un certo numero di casi ci possono essere più sistemi di controllo che "votano" sull'azione giusta, quindi un'unità malfunzionante verrà ignorata. Nel caso estremo, ogni sistema di controllo potrebbe anche essere stato programmato da un team software diverso, quindi è estremamente improbabile che un bug nel software di un team sia presente nel software di un altro team. E potrebbero essere presenti altri sistemi di backup come i controlli meccanici.
Un altro buon metodo di attenuazione è la formazione. È perfettamente accettabile che le cose vadano male se le persone che lo gestiscono sono in grado di affrontare quel fallimento e andare avanti. È importante non sottovalutare quanto possono essere brave le persone. Le persone possono e fanno anche causare fallimenti, quindi la formazione può anche essere un caso per dire loro "non farlo". Gli aerei di grandi dimensioni sono relativamente lenti a rispondere ai controlli, quindi è relativamente comune che i piloti possano correggere in modo eccessivo e peggiorare le cose. Per alcuni velivoli commerciali, la risposta standard insegnata ai piloti in caso di instabilità è quella di lasciare andare il bastone e consentire al velivolo di correggersi.
Vale la pena notare che entrambi questi fattori sono il motivo per cui il Boeing-737MAX i disastri sono così gravi, nella misura in cui dovrebbero esserci accuse penali contro le persone individualmente e l'organizzazione collettivamente. Il sistema in questione non utilizzava ingressi ridondanti, anche se disponibili; l'impatto della mancata risposta del sistema non è stato valutato né attenuato; e l'equipaggio non fu addestrato su come affrontare il suo fallimento, né fu nemmeno detto che esistesse. Nel Regno Unito, il crimine di "omicidio colposo aziendale" esiste per perseguire esattamente questo tipo di fallimenti.
L'altro elemento di tutto questo però è la qualità , in modo che tu cerchi di assicurarti che i sistemi non vadano male in primo luogo. L'affidabilità del software dipende quasi interamente dalla quantità di revisioni e test che hanno luogo. Attualmente sto lavorando su software per apparecchiature scientifiche e penso di dedicare circa il 10-20% del mio tempo di sviluppo ai test. PC e telefoni cellulari saranno più o meno gli stessi. Quando ho lavorato su sistemi automobilistici e aerospaziali, questo è stato completamente invertito: abbiamo calcolato di dedicare circa il 5-10% del nostro tempo alla codifica, il 10-20% del nostro tempo alla progettazione e il resto del nostro tempo è andato a rivedere e testare .
Il controllo delle modifiche è anche radicalmente più bloccato. Microsoft potrebbe rilasciare un aggiornamento e quindi controllare i danni nei pochi casi in cui si comporta in modo anomalo e introdurre alcune funzionalità extra allo stesso tempo. Nello sviluppo relativo alla sicurezza, tuttavia, non si modifica una singola riga di codice senza l'approvazione formale che (a) tutti capiscano cosa farà quella modifica, (b) che questa modifica risolva questo bug e non cambia nient'altro e (c) che questa modifica è addirittura necessaria. Molte sessioni di valutazione dei bug ci coinvolgono nell'individuazione di bug in cui alla fine decidiamo che l'impatto del bug è minimo (forse ad esempio 10 ms più tardi accendiamo una spia), ma il rischio di provare a correggere il bug potrebbe essere potenzialmente alto se ci è capitato di sbagliarci, quindi è più sicuro che questo insignificante bug permanga.
Come ci mostra il caso del Boeing-737MAX, tutti questi processi valgono un dannato solo se le persone li seguono. Tuttavia, i processi esistono e sono le migliori pratiche in un settore di decine di migliaia di ingegneri in tutto il mondo che dispone di numerosi standard formali a livello internazionale per stabilirlo. Il mancato rispetto di questi standard è quasi per definizione colpa grave e la maggior parte dei paesi dispone di leggi che consentono il perseguimento di persone e aziende che sono negligenti a questo livello. La maggior parte degli ingegneri vorrebbe comunque fare un buon lavoro; ma le leggi garantiscono che un'organizzazione nel suo insieme rimanga onesta e non tagli gli angoli.