E di come la sicurezza deve passare attraverso processi precisi e invalicabili
L’incredulità, gli occhi sbarrati di fronte alle prime notizie. I brividi veri, quelli che ti scuotono fin dentro le ossa, quando ti rendi conto che potrebbe non essere stata una tragedia imprevedibile, ma c’è il tragico sospetto che sia stata frutto di decisioni od omissioni umane.
Ero indeciso se scrivere queste parole.
Non sono un esperto di funivie, non voglio sputare sentenze già troppo proclamate da ogni dove.
Non voglio condannare e puntare il dito, non spetta a me.
Vorrei solo analizzare le possibili soluzioni in termini di procedure.
Non quelle “a caldo”. Quelle saranno una danza di controlli a tappeto.
Abbiamo oltre 1477 impianti a fune in Italia.
In quanti altri luoghi potrebbe ancora accadere?
Quanti altri boati immensi e innaturali potrebbero interrompere la quiete di quei paesi?
Si susseguiranno verifiche, analisi, manutenzioni straordinarie.
Se qualcun altro (e mi auguro proprio di no) aveva avuto la malaugurata idea di omettere dei controlli di sicurezza del genere, si sarà spaventato a morte pensando alle ben più gravi conseguenza a cui sarebbe andato incontro.
Quindi, come ti dicevo, non importa molto la soluzione “a caldo”, ma quella a freddo, quando si saranno calmate le acque.
Quando il boato assordante avrà finito di riecheggiare nelle nostre orecchie e ci sarà un altro problema all’ordine del giorno.
Le soluzioni a lungo termine: quelle che davvero possono evitare le disgrazie
Ognuno di noi ha un Maestro, un “guru”, una persona che nella vita ci ha dato tanto, tantissimo in termini di cultura, di passione, di conoscenza: per me è senza dubbio Vance Hilderman, ora CTO e fondatore di AFuzion, ma in passato mio collega in Artisan Software e poi in Vector Software.
Vance è unico: con il suo approccio umile, cortese e sempre allegro, ha la proprietà magica di rendere comprensibile a chiunque una materia complessa, ostica e delicata come la Certificazione Avionica Safety-Critical: invece di annoiarsi, nelle sue lezioni non solo si impara ma si ride, ci si diverte con i suoi esempi e storie di vita reale, si fanno quiz. E le ore e i giorni di formazione volano: gli studenti (manager, dirigenti, imprenditori) da tutto il mondo sono contenti e hanno imparato di più da lui in poche ore che in anni di esperienza.
In questa intervista, Anna Chiara Cesari e Massimo Bombino di Software Sicuro provano a farsi raccontare da Vance alcuni momenti fondamentali:
– cosa sta succedendo nel mondo, in questo periodo così critico per via del COVID
– cosa stanno facendo le aziende per tutelarsi e reagire
– come la transizione “Dall’acciaio al bit”, dai dispositivi elettromeccanici al firmware, può essere gestita e dominata
– come la Certificazione può aiutare le aziende a raggiungere mercati più ampi
– cosa possono fare le aziende per poter ripartire di slancio appena possibile
Ecco l’intervista
In questo video, Vance ci parla soprattutto della MasterClass di (NON) Programmazione C/C++ Embedded & Realtime, un prestigioso corso di studi in 12 lezioni online, che è perfetto in questo periodo per aumentare le competenze del proprio team aziendale in termini di Progettazione Firmware Embedded e livellare verso l’alto le capacità degli sviluppatori, analisti e tester.
Grazie ai suoi prestigiosi docenti:
Massimo Bombino – CEO & Founder di Software Sicuro, una delle maggiori autorità a livello italiano di Sviluppo Software Embedded & Safety-Critical
Vance Hilderman – CTO di AFuzion, esperto di Certificazione Avionica e di Safety-Critical, con esperienza a livello mondiale
Niroshan Rajadurai – VP di GitHub, guru nel campo degli RTOS (Real-Time Operating Systems), Security, Continuous Integration
Roberto Bagnara – CEO di BUGSENG, membro del MISRA e maggior esperto di Analisi Statica in Italia
Maurizio Menegotto – CEO di Lauterbach Italia, autorità nel campo del Debugging, Emulazione Hardware
e agli argomenti trattati, questa MasterClassè la scelta strategica giusta e il miglior investimento che tu possa fare in questo periodo.
Ecco qua dove potrai trovare maggiori informazioni:
“Never to launch a war that one has not already won”
Carl von Clausewitz
“Non cominciare una guerra che non sai già di avere vinto”, diceva il generale prussiano von Clausewitz, autore di un vero e proprio compendio sull’arte della guerra: “On War”, un’opera enciclopedica in 10 volumi sulla strategia bellica, sicuramente una delle più studiate e largamente applicate nella preparazione dei conflitti ma non solo, anche in altri settori tra cui quello aziendale e del marketing strategico.
Quali sono due “guerre” che non vale la pena al giorno d’oggi iniziare, a meno che uno ovviamente vi sia costretto? Beh presto detto: i due lavori che non vorrei trovarmi a dover affrontare in questo periodo sono il Ministro della Sanità di un immaginario paese (ai tempi del CORONAVIRUS, tristemente attuale mentre sto scrivendo) e il Software Quality Assurance Manager. Penserai che sono ammattito, giusto? Che il virus abbia conseguenze psicotiche? Forse hai anche ragione, ma continua a leggere…
Lo dice anche la “Bibbia” DO-178, nel suo Quinto comandamento…
il software non deve uccidere nessuno!
In questa breve presentazione, che ho tenuto all’Istituto Aeronautico Vinci di Gallarate, ho voluto spiegare ai giovani studenti e futuri piloti o controllori di volo alcuni dei concetti di base che stanno dietro la produzione e la certificazione del Software Aeronautico attraverso la rigida Certificazione Safety-Critical.
E per fare questo passo attraverso l’analisi dell’incidente dei due Boeing 737 Max in Indonesia e in Etiopia perché presentano degli aspetti molto interessanti per chiunque abbia a che fare con la produzione di software di qualunque tipo, anche se non critico.
Perché ti dovrebbe interessare anche se non fai Software Critico?
Infatti, se guardi il video, scoprirai che in realtà i veri motivi dell’incidente… non hanno a che fare con problematiche di tipo tecnico o non sono dovute a errori di piloti ma
sono errori gravi di progettazione, formazione e di tempistiche di ingresso nel mercato che potrebbe compiere qualunque azienda, anche la tua.
Come sanno bene tutti gli studenti (e in parte anche i lettori dei miei articoli), io sono un grande appassionato di metafore: in tutti i miei corsi, cerco di trovare sempre il modo più semplice ma non banale, preso dalla vita di tutti i giorni o da esempi facilmente comprensibili, di spiegare tutti i concetti più ostici e complicati relativi al meraviglioso mondo dello sviluppo software.
Per questo motivo, vorrei farti capire con un esempio preso dalla fantascienza che cosa potrebbe mancare al tuo Processo di Sviluppo Software per renderlo ancora più ingegneristico, efficiente e soprattutto profittevole: le Multi-Dimensioni.
Le 2 dimensioni dei normali Processi di Sviluppo Software
Esatto, parliamo del mondo dello sviluppo di codice in generale:
se vieni dal mondo tecnico come me, sono solamente due le “dimensioni” con le quali sei abituato naturalmente a confrontarti nei tuoi progetto software.
Dal tuo punto di vista, vedi solamente un mondo bidimensionale, piatto: se sei veramente bravo hai il potere di vederlo tri-dimensionale, ma stai correndo il grande rischio che dei “nemici” arrivino da altri pianeti o da altre Dimensioni, che non riesci a vedere perché ti manca un “SUPER-POTERE”.
Infatti tornando un attimo seri, sono ben 5 i Pilastri di un progetto software completo sotto tutti gli aspetti, ingegnerizzato nei dettagli e che considera tutti i possibili fattori di rischio, compresi quelli economici.
Vediamo intanto in dettaglio quali sono quegli aspetti che sicuramente conosci già bene:
No, il titolo non è una provocazione ma un caso reale che ti spiegherò fra poco: tu pagheresti
un aggiornamento software 500 milioni di dollari?
E che cosa dovrebbe mai combinare di buono (o di cattivo!) la nuova versione di un applicativo per costare così tanto? Ma soprattutto, come si è arrivati in soli 30 minuti a un disastro del genere in un’azienda americana, Knight Capital, che è stata sull’orlo della bancarotta per questo motivo ed è stata costretta a reperire in poche ore ingenti risorse economiche, licenziare alcuni dipendenti e vendere degli edifici di proprietà a causa di questo tracollo finanziario provocato da un software?
Come forse avrai letto, a Marzo 2018 un’auto a guida autonoma di Uber ha investito una donna di 49 anni in Arizona, uccidendola.
Esatto: come nei migliori (e peggiori) film di fantascienza se non horror, una macchina dotata di intelligenza artificiale apparentemente è impazzita e ha ucciso un essere umano, uno dei peggiori incubi dell’evoluzione tecnologica dell’uomo. La cosa come immagini ha creato grande scalpore e polemiche, provocando la sospensione di qualunque test su strada.
In questo articolo, cerco di spiegarti in maniera semplice cosa è successo, di chi è precisamente la colpa (e non è quello che raccontano i giornali, neanche la stampa specializzata!), qual è l’errore di fondo e cosa c’entra un vecchio col cappello.
Capirai perché tutto questo ha a che fare con i progetti software, con il gioco del poker e soprattutto comprenderai che, molto probabilmente, c’entri anche tu. Sì, proprio TU.
Oramai è sulla bocca di tutti: un secondo aereo 737 MAX
della Boeing è caduto nel giro di pochi mesi in Etiopia, pochi mesi dopo quello
di fine 2018 in Indonesia. A questo si è aggiunto poi un mancato incidente
sullo stesso identico aereo etiope, il giorno prima, che è stato evitato per
puro caso dall’intervento di pilota a riposo che si trovava per caso nello
stesso aereo e che è corso in cabina per evitare una tragedia, fornendo una
delle chiavi di volta per comprendere meglio le due tragedie.
Non è mia abitudine commentare incidenti appena avvenuti,
perché le indagini per stabilirne le vere cause possono durare anche mesi: ma
questa volta forse forse si sa già chi potrebbe essere il colpevole: infatti,
in tutti gli incidenti sia quelli realmente accaduti che in quello mancato, si
è evidenziato come i piloti stessero combattendo invano contro i sistemi a
bordo del loro stesso aereo: precisamente,
lottavano contro un sistema “demoniaco” di stabilizzazione chiamato M.C.A.S.,
basato su un software di correzione delle manovre potenzialmente pericolose che
paradossalmente ha contribuito a creare i presupposti delle due tragedie.
Bene, abbiamo finalmente
il responsabile?
Il software ha
veramente ammazzato centinaia di persone?
Gli aerei non sono più
sicuri?
Forse, ma la realtà invece è molto diversa da quella che
appare in prima istanza. E la lezione imparata oggi, può essere utile anche a
te e alla tua azienda…
Seguimi in queste considerazioni in cui cercherò di non
scendere troppo nel tecnico e vedrai che questa analisi ti sarà molto utile,
qualunque tipo di software tu stia producendo.
Cosa è successo?
Allora, al di là del motivo originario per cui sia successo
un fenomeno del genere, appare evidente dalle scatole nere e dall’episodio
dell’incidente mancato che l’aereo sembrava essere completamente impazzito: dai
cambi di quota repentini, dalle manovre effettuate dai piloti, dalle loro voci
registrate nel cockpit sembrava proprio che l’avionica di bordo avesse deciso
di puntare l’aereo con decisione verso terra, quasi a scansare un imminente
pericolo.
Il problema è che questo pericolo non c’era e che puntare
verso terra subito dopo il decollo, ancora a bassa quota e bassa velocità, è molto
intuitivamente una cosa molto pericolosa… e se fatta in maniera repentina e
più volte, può provocare una tale instabilità e perdita di quota da provocare i
disastri poi avvenuti.
Ma perché quindi questo tipo specifico di aereo ogni tanto
(troppo spesso!) impazzisce, fa quello che vuole, punta il muso verso terra
ammazzando tutti? E perché i piloti sono impotenti in tutto questo?
Soprattutto: è vero che non potevano fare nulla per evitare
il disastro? Qui ci sono molti, molti dubbi…
Aereo o bus?
Parte tutto da una famosa diatriba ben nota tra addetti ai
lavori o appassionati di aerei: Boeing o Airbus?
Il motivo del contendere è un oggetto ben preciso: UN JOYSTICK.
Esatto: gli Airbus da molti anni non si guidano più con la classica cloche a due mani che tutti conoscono, ma con un joystick identico a quello dei videogiochi. Quando è stato introdotto il concetto di Fly-by-Wire, il controllo degli elementi di comando di un aereo tramite sistemi elettronico e non più solamente meccanico-idraulici, è stato un salto quantico, nella sensazione di guida di un aereo e nell’avionica in generale, con un sacco di critici e un crescente numero di appassionati, le cui opinioni ovviamente si ribaltano radicalmente nel momento in cui si parla del Boeing che invece ha una cloche di guida più tradizionale:
Ma anche l’avionica di un Airbus è molto diversa: per non
farla troppo lunga e tecnica, esiste una cosa in tutti gli aerei chiamata “INVILUPPO”,
che rappresenta una specie di cuscinetto di sicurezza intorno alla
posizione dell’aereo, una zona di
prudenza in cui il velivolo deve sempre trovarsi per essere in una condizione
stabile senza rischi. Un insieme di dati complessi di velocità,
inclinazione, accelerazione con dei limiti che non devono mai essere
oltrepassati per non mettere in pericolo l’aereo stesso e il suo equipaggio.
Ecco, la grande differenza tra i due colossi dell’aria è che negli
Airbus, l’avionica di bordo esercita un controllo molto forte per assicurare che l’aereo si trovi sempre correttamente
all’interno dell’inviluppo e che soprattutto evitare che il pilota faccia mai,
neanche volontariamente, delle azioni o delle manovre pericolose, a meno di
disabilitare volontariamente alcune funzionalità del cosiddetto “pilota
automatico”.
Di fatto, l’aereo guida quasi sempre da solo, scegliendo in
ogni condizione la manovra migliore per evitare (in teoria) qualunque tipo di
problema. Questo fatto, secondo alcuni, rende i piloti di Airbus così abituati
all’aereo che manovri quasi sempre da solo ed eviti autonomamente qualunque
rischio, da diventare pigri e disimparare come si guida veramente un velivolo
manualmente, tanto da essere chiamati “bus drivers”, guidatori di (Air)bus.
Un pilota Boeing invece, con la cloche tradizionale, prima
di tutto ha una sensazione tattile e visiva di quello che sta facendo lui e il
co-pilota, visto che le cloche si muovono insieme. Ma soprattutto, anche se
alcuni sistemi elettronici di ausilio alla guida sono stati introdotti pure in
questi aerei, può escludere istantaneamente il pilota automatico con una
semplice pressione sui comandi più decisa del solito, e riprendere totale
controllo dell’aereo. Questo significa ovviamente esserne anche capaci e
infatti i piloti di Boeing normalmente vengono ritenuti più abili proprio a
guidare l’aereo in maniera manuale e a “sentirne” il comportamento, visto
che lo praticano molto più spesso, piuttosto che fidarsi e lasciarlo pilotare da
solo.
In prima istanza, estremizzando verrebbe da dire che gli
Airbus sono più sicuri perché automatici e i Boeing invece necessitano di
piloti migliori… in maniera MOLTO superficiale, potremmo per un momento anche
dire così.
Ok, ma… non è successo ESATTAMENTE il contrario? Non è
stato un aereo Boeing a cadere e per colpa di un sistema automatico? Quindi
il contrario di quello che uno si sarebbe aspettato, no?
Beh, ma è PROPRIO quello il problema…
Cos’è il M.C.A.S. e perché non è ancora il vero colpevole
Allora, il nuovo Boeing 737 MAX, come suggerisce il
nome stesso, era la versione più grande dello stesso modello di aereo di grande
successo e dalla grandissima affidabilità, dotato anche di più potenti.
Il problema è che la potenza dei motori, la loro posizione,
i cambiamenti introdotti potevano creare delle situazioni di pericolo, di
uscita dal famoso “inviluppo”, in particolari condizioni di volo a bassa velocità
e angoli di volo elevati che potevano portare ad uno stallo del velivolo. Per
evitare questo grave tipo di pericolo, la Boeing ha avuto la grandissima
pensata (!!!) di introdurre un sistema anti-stallo elettronico chiamato M.C.A.S.
(Maneuvering Characteristics Augmentation System), molto simile a
quelli presenti negli aerei Airbus.
Lo scopo era preciso e anche lodevole, anche se diabolico
nella sua attuazione: far volare senza pericolo il nuovo MAX ai
piloti già addestrati con il vecchio 737 NG.
Sembra tutto ok, no? Un sistema per rendere i nuovi velivoli
più sicuri… andando un po’ a inseguire Airbus nell’automatizzare i sistemi di
volo e a ridurre il carico di lavoro e la richiesta di maggior abilità dei
piloti.
Allora è vero che il software ha fallito? No: sono stati dei
sensori.
La colpa è dei sensori… anzi no
Per funzionare, questo sistema M.C.A.S. ha bisogno, tra gli altri dati, dell’Angolo di Attacco (AoA)
forniti da alcuni sensori… che detta in maniera molto semplice indicano
l’inclinazione dell’aereo. Bene, sono stati questi dispositivi ad avere avuto
un malfunzionamento e ad aver dato indicazioni del tutto errate che hanno fatto
impazzire l’autopilota.
In poche parole, i sensori segnalavano che l’aereo si era
impennato in maniera pericolosa… e cercavano di ributtare giù il muso.
Peccato che non fosse vero, l’aereo stava volando dritto… e come in un vero
incubo, il software di bordo continuava a far perdere quota all’aereo
nonostante i ripetuti interventi del pilota per rialzarlo.
Vi immaginate che incubo? Siete alla guida di un aereo pieno
di passeggeri che impazzisce e vuole precipitare verso terra… voi provate a
raddrizzarlo per decine e decine di volte ma niente, punta inesorabile verso la
morte.
Finalmente: colpa dei sensori? E no, c’è un motivo per il
crash… e ancora una volta non sarà quello definitivo.
Un problema di soldi (o di progetto)
Questo sistema M.C.A.S.aveva in realtà a sua volta un meccanismo di diagnosi interna di tutte
le sue componenti, inclusi questi sensori di angolo di attacco, chiamato DLC.
Una volta che questo sistema avesse segnalato un problema, i piloti sapevano (in teoria…) che
avrebbero dovuto disinserirlo (attenzione che torneremo su questo punto) e
tornare a guidare in maniera manuale, come erano stati addestrati a fare.
Peccato che questo dispositivo fosse… opzionale e costoso,
per cui alcune compagnie aeree più “povere”, non l’hanno acquistato. E guarda
caso, sia gli aerei della flotta Indonesiana che di quella Etiope non erano
dotati di questo sistema di diagnosi e di allarme, per cui i piloti si
sono trovati in balia di un aereo che faceva di testa sua, inventandosi una
situazione di pericolo che non c’era e anzi andandola a creare. Tutto questo
per una questione di soldi.
Certo uno potrebbe dire: ma cavoli, in un sistema così delicato e potenzialmente salva-vita, non dovrebbe
essere integrato di default un sistema
di auto-diagnosi che vada a verificare che tutto funzioni correttamente,
dai sensori agli attuatori, dai computer al display?
Per cui anche il costruttore ha le sue colpe… avrebbe
dovuto rendere il nuovo sistema di guida automatico sicuro in tutte le
situazioni, anche in quelle di guasto.
Facciamo il punto della situazione prima di annunciare chi
è… il “maggiordomo”, il colpevole vero di questi tristissimi incidenti.
La catena di eventi scatenanti
Quindi, abbiamo questa catena di eventi che sembra piuttosto
chiara:
l’aereo
737 MAX è più grande e monta motori più veloci di quelli precedenti
essendo
più potente, potrebbe creare situazioni in cui l’impennata del muso provocherebbe
situazioni di grave instabilità di volo (stallo)
per
evitare questo problema ed evitare
stress (e nuovo addestramento) ai piloti, è
stato introdotto un sistema anti-stallo chiamato M.C.A.S.
i sensori
dell’Angolo di Attacco (A.o.A.)
erano guasti e fornendo informazioni inventate, facevano intervenire a
sproposito il M.C.A.S. facendo
precipitare l’aereo nonostante le correzioni disperate dei piloti
esisteva
un sistema di diagnostica di tali sensori che avrebbe avvertito i piloti di disinserire ilM.C.A.S. ma le compagnie aeree indonesiani
ed etiope non l’hanno comprato perché troppo caro
Sembra tutto chiaro, ma io come in un giallo ho disseminato degli
indizi per il colpevole finale, quello vero.
Infatti, se sei stato attento, ti sarà venuta in mente la
domanda fatidica:
Perché i piloti non hanno disinserito il M.C.A.S.?
Eh già, questa è la VERA domanda. Quella fatidica.
La possibilità di disinserire quella trappola mortale c’era,
ma i piloti non l’hanno utilizzata nei due voli fatidici. Mentre nel volo
etiope del giorno precedente, un pilota a riposo tra i passeggeri ha capito
cosa stava succedendo e si è precipitato in cabina per salvare piloti, aereo e
passeggeri. Un eroe? No: semplicemente UN PILOTA
INFORMATO E ADDESTRATO.
Infatti, i piloti di entrambi gli aerei precipitati, così
come molti altri piloti Boeing in giro per il mondo, avevano uno o più di
questi gravi problemi di addestramento:
NON SAPEVANO CHE ERA STATO INTRODOTTO IL M.C.A.S.
NON SAPEVANO COME FUNZIONAVA E QUANDO SCATTAVA
NON NE CONOSCEVANO LE REAZIONI ANOMALE IN CASO DI GUASTO
NON SAPEVANO NEANCHE
COME DISINSERIRLO!!
Vabbè, dirai, cose da PAZZI!! Sembra una follia totale, un
film horror, sapere che banalizzando,
bastava schiacciare un
bottone, premere un pulsante per disinserire il software mortale M.C.A.S.
Brivido di terrore.
E veniamo all’ultimissima domanda: perché i piloti non sono
stati addestrati??
La fretta di arrivare sul mercato
Esatto: è presto per la conferma definitiva, ma sembra che
il mancato o scarso addestramento sia stata una
strategia precisa per far diventare velocemente operativi i nuovi piloti sul
mercato.
Infatti, alcune voci di CBS News raccontano che
ai piloti sono stati fatti soltanto 56 minuti
di formazione su un iPAD per il nuovo 737 MAX
Allucinante.
Hanno preso un aereo sicuro, storicamente affidabile, dei
piloti bravi e competenti, che sapevano pilotare in condizioni anche rischiose
in modalità manuale… e gli hanno infilato dentro un nuovo sistema, un
software, un “tool” che doveva rendere la loro vita più facile, ma li ha
ammazzati perché non ne sapevano niente. Roba che mi provoca i brividi freddi
solo a pensarci.
Ancora una volta, così come per il sistema di diagnosi DLC
non acquistato, per risparmiare i costi… i tempi… per comprimere il
famigerato TTM (Time to Market), il vero killer di queste
due tragedie.
E tu? Lo sai benissimo, se hai letto altri articoli miei,
che ti tirerò in mezzo con una bella “lezione” su quanto appreso oggi da
applicare alla tua azienda.
La (mancanza di) cultura uccide
Pensaci un attimo, quante volte nella tua azienda, nel tuo
team per problemi di budget e/o di tempo:
hai
introdotto dei cambiamenti in azienda senza informare tutti?
hai
acquistato un tool senza comprare il corso adeguato?
hai
cambiato delle procedure senza informare e formare tutte le persone coinvolte?
hai magari
migliorato dei processi ma senza coinvolgere chi ne era affetto?
Ecco: tutte queste volte, tu hai potenzialmente corso il
rischio di:
di AMMAZZARE I TUOI
CLIENTI, se il tuo software è SAFETY-CRITICAL
di FAR FALLIRE I TUOI
CLIENTI (E TU CON LORO), se il tuo sistema è BUSINESS-CRITICAL
Conclusioni
Ti è piaciuto questo articolo? Scopri la mia newsletter gratuita dove periodicamente troverai:
analisi dettagliate di incidenti critici
(apparentemente) causati dal software
strategie ottimali per produrre software Safety-
e Business-Critical
consigli su come adottare delle tecniche sicure
ed efficaci nei tuoi progetti
Lascia la tua email per avere immediatamente accesso alla mia newsletter:
Sei il manager di un team di sviluppo di un’azienda aerospaziale, automotive, medicale?
Hai un’azienda che vorrebbe debuttare nel difficile settore del software certificato?
In questo breve video ti spiego alcuni concetti fondamentali, che verranno ampliati durante il corso completo di 3 giorni sulla Certificazione Avionica che si terrà il 14-15-16 Novembre 2018 a Roma.
Cosa imparerai da questo corso
Imparerai da esperti a livello mondiale come Vance Hilderman, una delle principali autorità della certificazione
aerospaziale DO-178 e da Massimo Bombino, colui che è riuscito con successo ad applicare le metodologie di sviluppo del codice più efficienti e moderne al software Safety Critical, come fare a:
Ciao, mi presento: sono Massimo Bombino, e mi occupo dello Sviluppo di Software ad Alta Qualità da 30 anni, in particolare mi sono dedicato negli ultimi 20 anni al Software soggetto alla Certificazione Safety-Critical per il Settore Avionico e Aerospaziale, il settore più rigido e impegnativo ma anche quello dove ho imparato di più in assoluto su come impostare un processo di sviluppo software che sia veramente affidabile.
Ho lavorato (e lavoro tuttora) con aziende del calibro di: Ferrari Automobili, AUDI TTTech, Boeing, Airbus, Leonardo Finmeccanica, Aermacchi, Agusta Westland, Nortrhop Grumman, Piaggio Aerospace, Thales Alenia Space, Honeywell, Telespazio, Ansaldo, Hitachi, Datalogic, AUTEC Safety, Electrolux, Transenterix, Boston Scientific, STIGA, Tecnodal, Brusa e tantissime altre, aiutandole a ottimizzare il loro Ciclo di Sviluppo Software, identificare prima gli errori tramite la Modellazione e la Simulazione, migliorare la Strategia di Test, raggiungere prima la Certificazione.
Nel corso degli anni, con i miei collaboratori ho sviluppato un metodo di lavoro molto sicuro, affidabile e veloce di scrivere il software, attigendo al meglio che offriva il panorama mondiale.
Ma mica è sempre andata così: quando ho iniziato a programmare, oramai a fine anni ’80, il mio entusiasmo iniziale da neo-programmatore si è subito scontrato con le difficoltà dello scrivere codice… bug, instabilità, problemi vari, clienti che si lamentavano… insomma altro che infinite possibilità e flessibilità, la programmazione software assomigliava sempre di più a UN INCUBO!
Dopo anni di ricerche, studi su come scrivere software migliore e notti insonni passati a sbattere la testa contro gli stessi problemi che affronti anche tu quotidianamente con lo sviluppo del software, ho finalmente trovato la strada del Software Sicuro ed Affidabile per definizione: la severissima CERTIFICAZIONE AVIONICA DO-178C.
Al costo della molta rigidità nello standard avionico, di severi standard e controlli rigorosi, di procedure lunghe e costose, finalmente però lo sviluppo software diventava una disciplina ingegneristica e ripetibile, l’ideale per produrre codice di qualità.
E così ho scoperto oramai quasi 20 anni fa come tutto il Software Safety-Critical (medicale, automotive, ferroviario ecc.) fa capo a standard simili alla DO-178C (come ISO-26262, IEC-62304, IEC-61508 ecc.), sempre però piuttosto rigidi e costosi.
Ma non era sufficiente: quando parlavo di queste cose con i colleghi, i clienti, gli imprenditori scuotevano la testa… mi dicevano:
“Massimo, io non faccio software per aerei, io faccio firmware per lavatrici, per citofoni, , per apparecchi industriali, per elettrodomestici, app per telefonini… non devo lanciare missili nello spazio, il tuo approccio è TROPPO COSTOSO E COMPLICATO! Io devo consegnare al cliente settimana prossima… non tra 2 anni”
Da lì è nata la sfida: dovevo trovare il modo di svecchiare questo processo così farraginoso e rigido, dovevo snellire le procedure troppo burocratiche, ma sopratutto dovevo trovare il modo di applicare questo metodo, o meglio una sua versione più flessibile, anche al software di tutti i giorni, quello Business-Critical.
Provando e riprovando, ho attinto al meglio dello sviluppo Safety-Critical, andandolo a rendere più gestibile e più flessibile con l’altro standard dello sviluppo software moderno: AGILE. Da questo strano incrocio, è nato un metodo di lavoro assolutamente innovativo e vincente, unico nel suo genere, perché unisce il meglio dei due mondi: l’approccio M.E.D.S. (Method for Efficient Development of Software).
Esatto:
ho preso il meglio in termini di sicurezza, affidabilità e ingegnerizzazione della Certificazione Safety-Criticale il meglio in termini di flessibilità, velocità e adattabilità di AGILE e DevOps e li ho messi insieme nel Metodo M.E.D.S.
Ho quindi deciso di mettere nero su bianco la mia esperienza internazionale, fatta in decine e decine di progetto in tutto il mondo e di creare più che un libro, una vera e propria guida allo Sviluppo di Software Sicuro, dove concentrare tutte le Best Practise, le migliori tecniche e i miei peggiori errori da evitare a tutti i costi.
Con questa splendida introduzione del mio amico Vance Hilderman (Ceo AFunzion), “guru” della Certificazione Avionica, voglio farti capire come questo NON sia il classico libro di informatica o similari:
“Ci sono buoni libri di software, che consentono al lettore di essere più intelligente dopo la lettura rispetto a prima. Ci sono grandi libri, che permettono al lettore di essere più intelligente, mentre insegnano simultaneamente le migliori strategie per colmare le lacune di conoscenza. Il libro di Massimo è un libro fantastico in quanto spiega sia il mondo del software critico, sia le intuizioni per risolvere molti aspetti legati alla qualità del codice, oggi sempre più importanti. Max ha fatto un lavoro magistrale nel rendere interessante e divertente un argomento normalmente complesso e noioso. Ci mostra in questo libro come capire meglio il regno dello sviluppo del software Safety- e Business-Critical e come applicare queste conoscenze nel mondo reale. Io e Massimo abbiamo entrambi commesso degli errori tecnici sostanziali nei nostri decenni combinati di sviluppo di software e sistemi critici per la sicurezza: con questo libro, tu puoi prevenire gli stessi errori e capire al meglio come evitare di aggiungerne di altri”
Infatti, ti posso dire che questo libro non è (solo) un libro tecnico, didascalico, solo per addetti ai lavori, nemmeno un libro teorico, astratto, basato su concetti inapplicabili o un libro generico, che parla di mille cose senza concludere niente.
E’ invece un libro concreto, basato sull’esperienza di quasi 30 anni di sviluppo di software altamente critico; pratico in quanto presenta in maniera semplice e comprensibile i concetti che devi cominciare a conoscere per far diventare il tuo sviluppo software efficiente e snello, focalizzato su un aspetto ben preciso:
trasformare lo sviluppo software
da spina nel fianco e tuo punto debole
A VANTAGGIO COMPETITIVO STRATEGICO
Vuoi sapere come ho fatto? Allora continua a leggere…