L’INCIDENTE DELLA FUNIVIA DI STRESA

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

Facciamo una piccola premessa. 

Com’è fatta una funivia?


La faccio semplice, semplicissima, senza usare termini eccessivamente tecnici.
C’è un cavo grande come un braccio, il cavo PORTANTE.

Quello non si romperà “mai”, perché è progettato per resistere a forze molto superiori e viene controllato periodicamente. 

Quel cavo rimane fisso, con la funivia letteralmente appesa. 

E infatti non si è rotto quello. 

Poi ci sono i cavi TRAENTI

Sono quelli più sottili che si vedono di fianco. Tirano su e giù la funivia, attaccati ai motori veri e propri. Se quei cavi si rompono è un potenziale pericolo, perché la funivia potrebbe cominciare a scorrere sul cavo portante (ed è quello che è presumibilmente è successo a Stresa). 

Per evitare questo scenario c’è il FRENO

Ganasce che si agganciano con forza al cavo traente quando la funivia è ferma alle stazioni e che vengono rilasciate quando si deve muovere. 

Freno che in caso di pericolo diventa protagonista. 

In caso di brusche accelerazioni, calo di tensione, interruzione della corrente elettrica, guasti… diventa un FRENO DI EMERGENZA che blocca immediatamente la cabina, scongiurando la tragedia. 

Durante le operazioni di manutenzione però il freno potrebbe dare fastidio. Per questo c’è una FORCHETTA che tiene aperte le ganasce. 

SOLO CON LE CABINE VUOTE
SOLO PER IL TEMPO NECESSARIO per fare i controlli.

Solo-con-le-cabine-vuote.

Queste cinque parole mi rimbombano in testa e sono come cinque pugni in faccia. Fanno un male cane. 

A Stresa questa forchetta si sospetta che sia stata lasciata inserita, tenendo aperte le ganasce e impedendo il funzionamento del freno di emergenza, per evitare lavori di manutenzione e tenere fermo l’impianto.
Se questo è vero, da chi è stato fatto e perché, lo determineranno le doverose e minuziose indagini, ma per quello che ho da dire io in questo momento, è sufficiente questa ipotesi.  

Però… non è questo TUTTO il problema, c’è dell’altro. 

Poi, sembra sempre al momento come ipotesi credibile, che la reale causa scatenante è stata la rottura del cavo traente (che andrà comunque indagata perché un cavo non si deve rompere così), ma da sola non avrebbe causato nulla se non l’intervento del freno di emergenza. 

Ed è peggio. 

IL VERO PROBLEMA: la soluzione “a freddo”

Prima di tutto, sarà che sono abituato a pensar male per via del mio lavoro, ma la vera domanda che si fa anche un non addetto ai lavori è:

Quante altre funivie, in Italia e nel Mondo, hanno funzionato per anni con la “forchetta” inserita? 

Quante altre stragi sono state evitate per miracolo? 

E quante altre stragi potrebbero accadere se non si fa nulla? 


Questi pensieri, come ti dicevo, porteranno ad una soluzione “a caldo” che tappezzerà di controlli e verifiche la maggior parte degli impianti e che “metterà la strizza” a chi poteva avere avuto la stessa idea di queste persone.

Ma purtroppo queste sono le classiche lacrime del coccodrillo.

Quel sentimento forte, pesante come un macigno, che porta a voler spaccare tutto e agire immediatamente per impedire che una cosa così orribile possa ricapitare. 

Poi però passa il tempo, quel tempo che ha il potere di sfumare i contorni, di lenire le ferite. Quel tempo che ti permette di sopravvivere. 

Purtroppo è lo stesso tempo che permette che queste disgrazie ricapitino. Magari non nello stesso modo. 

Ma permettere che ricapitino. 

E chiunque abbia un’attività, un’azienda ha il dovere, verso se stesso prima di tutto, e poi verso i suoi dipendenti e clienti, di fare il possibile per limitare le probabilità che accadano questi errori.


PREVENIRE QUESTI ERRORI NEL FUTURO

L’errore umano può capitare. 

Gli esseri umani prima o poi sbagliano, questo è scontato nell’ambito della Safety: ci sono tabelle per ogni attività umana di un pilota, macchinista, che prevedono esattamente ogni quante ore una persona ignorerà un cicalino, una spia rossa, un allarme. 

È matematico, probabilistico: anche involontariamente, un uomo sbaglia. 

Il problema è quando non si tratta di errore ma di scelta consapevole

In questo caso sembra che non ci sia una soluzione. 

C’è lo sdegno, la vergogna, la difficoltà nel capire le dinamiche che hanno spinto ad un gesto così irresponsabile. 

Ma non è vero che non esiste una soluzione. 

Ce ne sono addirittura due. 



LA SOLUZIONE TECNOLOGICA 

In termini tecnici, una funivia dove è installata questa “FORCHETTA” è un 

sistema DEGRADATO

le sue funzionalità di sicurezza non sono presenti o comunque non sono garantite a livello di efficacia, per cui il sistema è pericoloso.
Siccome in caso di una funivia si tratta ancora di sistemi elettromeccanici, viene considerata un “Sistema Semplice”, per il quale si può raggiungere quella che è chiamata Sicurezza di Prodotto o PRODUCT ASSURANCE

Tramite analisi, progettazioni, simulazioni si riesce a rendere il sistema, se non matematicamente, almeno probabilisticamente sicuro. 

Gli incidenti nei sistemi elettromeccanici sono molto rari e il più delle volte causati dagli errori umani di cui abbiamo parlato. 

Posso immaginare quindi che la prima soluzione sarà di tipo tecnologico e meccanico. 

Verrà proprio impedito l’utilizzo di questa famigerata “FORCHETTA”, oppure verrà trovato un altro sistema per far viaggiare la funivia solo con cabine vuote in caso di manutenzione

Oppure dovrà essere modificato il sistema di blocco delle ganasce: facendo come succede in ambito avionico o in altri sistemi, quando questa forchetta è inserita (SE verrà mantenuta nella forma attuale), ci dovrà essere un segnale sonoro, visivo, meccanico che lo evidenzi in maniera inequivocabile, a prova di incapace. 

Hai presente le famose strisce rosse “REMOVE BEFORE FLIGHT” appese fuori da un aereo prima del decollo, da rimuovere appunto prima del volo?

Ecco, quello è il concetto. 

Potrebbe esserci un suono forte e inequivocabile causato dalla presenza della forchetta, oppure andrà fissata ad un grosso cartello o un altro dispositivo rosso, ingombrante e impossibile da ignorare. 

Ci potrebbe essere un sistema di blocco delle porte per evitare che salgano passeggeri. 

In poche parole: 


il sistema degradato deve essere segnalato o reso impossibile da usare, volenti o nolenti

LA SOLUZIONE SOFTWARE

Nel mondo dei sistemi basati su Firmware o Software Embedded, sempre più presenti nelle nostre vite, questo non basta!

Nel campo del codice, che oramai pervade ogni ambito, compreso quello delle funivie immagino così come tutti i sistemi elettromeccanici, purtroppo questo non è sufficiente. La soluzione del “Remove before flight” non è applicabile agli infiniti guasti che possono capitare a un’applicazione con una componente informatica. 

È complessa e con troppi livelli di profondità.
 

Milioni e milioni di righe di codice. 

Applicazioni e programmi che interagiscono tra loro. 

Le variabili da controllare sarebbero quasi infinite e questo le rende davvero difficili da gestire e dominare. 

Ancora peggio se, come purtroppo nel caso della funivia, si travalica il confine dell’errore umano. 

E si precipita nell’inferno della scelta consapevole. 

Tutto si può manomettere se c’è il dolo, l’intenzione pianificata di compiere un gesto preciso. 

Aspetta. So cosa stai pensando. 

Mi hai fatto leggere tutto questo articolo, arrivare fin qua… per dirmi che non esiste una soluzione efficace??” 

La soluzione esiste, non preoccuparti.



LA SICUREZZA DI PROCESSO 

Dopo le soluzioni “a caldo” di cui abbiamo parlato, pian piano si tornerà alla normalità. 

Ma per non rendere inutile tutto questo dolore bisognerebbe intervenire in maniera definitiva, agendo sul PROCESSO

Una cosa del genere non deve accadere perché a bloccarla ci devono essere una serie di impedimenti, diciamo burocratici per intenderci, per evitare che si ripeta in futuro. 

Più il sistema è complesso, più è all’avanguardia e implica quindi la presenza di un software, più la probabilità dell’errore diventa una scheggia impazzita e incontrollabile. 

I sistemi e le procedure che la gestiscono non possono essere gli stessi che a fatica tengono a bada i sistemi elettromeccanici. 

Per questo motivo, bisogna passare dal concetto di Sicurezza di Prodotto a quello di Sicurezza di Processo, in inglese PROCESS ASSURANCE.

 I concetti di base sono pochi e fondamentali: 

1) Controlli incrociati

La regola è molto semplice: uno fa, un altro controlla. 

Il famoso concetto che quattro occhi vedono meglio di due

Con un continuo controllo incrociato, in cui tutti hanno le stesse responsabilità, le probabilità di errore e di sabotaggio, si riducono notevolmente. 

In ambito avionico, si fa da sempre così ed è anche per quello che ci sono due piloti: per controllarsi a vicenda. 

2) Checklist

Ognuno di noi ha la sua esperienza, le sue conoscenze, le sue idee. 

Come si fanno i controlli, cosa si controlla e in quale ordine? 

Ognuno di noi farebbe controlli diversi. 

Da qui nasce la necessità di un deus ex machina che porti alla soluzione predefinita e ottimale. 

Per cui ecco le checklist: liste di controlli da fare e da spuntare, precise, ingegnerizzate, uguali per tutti, in tutto il mondo. 

A prova di errore, a prova di distrazione e stress, a prova di imbecille. L’unico modo per essere sicuri che i controlli vengano fatti, sempre nello stesso modo, da chiunque. 

Rimanendo sempre nell’ambito delle strette procedure che regolamentano gli strumenti degli aerei, ci sono checklist ben precise da seguire per ogni fase del volo (e prima di iniziare il volo). Ci sono lunghe check-list (così lunghe da essere veri e propri quaderni) solo per le operazioni anormali, ovvero come gestire situazioni di emergenza. 

È tutto prestabilito e ben poco è lasciato alla volontà del pilota. 

3) Verifiche indipendenti

L’ultimo passaggio è quello di Enti di Verifica esterni, autonomi, che facciano controlli casuali, a campione, improvvisi. 

Controlli non solo e non tanto tecnici, ma appunto di processo
Verifiche che siano state seguite le procedure, documentate le ispezioni, utilizzate le checklist, svolte le verifiche incrociate, firmati i verbali.

LA PROCESS ASSURANCE APPLICATA AL SOFTWARE

Questa strada ci rende più confidenti anche per il SOFTWARE, visto che tutte queste tecniche sono esattamente quelle che si usano per tutto quello che riguarda il SAFETY-CRITICAL (quindi come in questi casi dove è a rischio la vita delle persone), così come nei sistemi BUSINESS-CRITICAL dove i guasti possono provocare rallentamenti, disagi, perdita di dati ed economiche ma non mettono a rischio altri esseri umani.

Aumenteranno i controlli periodici, le ispezioni di organi ed enti indipendenti, le verifiche incrociate di personale esterno, gli organi di controllo, i bollini, i sigilli, le procedure ecc. rendendo di fatto molto difficile che si ripetano avvenimenti del genere. 

Questa è la vera, unica strada che l’aumento della complessità dei sistemi, soprattutto quelli moderni basati sul Software rende necessario: non è più sufficiente la striscia rossa “REMOVE BEFORE FLIGHT“, bisogna accompagnare la inesorabile conversione dei sistemi elettromeccanici in sistemi automatizzati e robotizzati, pieni di software.

Anche nella tua attività, nella tua azienda, puoi proteggerti da danni sia di business che di sicurezza. 

I secondi sono terribili e ti distruggono anche a livello personale e umano. 

Ma i primi non sono meno importanti.
Se il tuo prodotto o servizio viene bloccato da un problema al software come lo risolvi?

Non si tratta della vite o del pezzo di macchinario che puoi trovare e sostituire.
Il software è impalpabile, sfugge dal tuo controllo ed è molto complesso riconoscere e risolvere una sua anomalia.

Può causarti un danno d’immagine.
Può bloccare per giorni la tua produzione con danni economici che ti lascio solo immaginare…

Ma la strada del software può essere regolamentata e resa sicura, con processi determinati e precisi.

Quella che io chiamo la strada “dall’acciaio al bit“, tramite la lunga, faticosa PROCESS ASSURANCE

Prima di arrivare alla tanto chiacchierata ma ancora lontana Intelligenza Artificiale, Robot ecc., un sano e robusto processo, dei controlli periodici rigorosi, degli audit indipendenti e improvvisi sono e saranno per lungo tempo gli unici rimedi per evitare guai di questo genere, e questo vale per qualunque sistema o dispositivo, sia basato sul vecchio “acciaio”, che quelli nuovi e moderni oramai pieni di linee di codice Software. 

Per il disastro di Stresa io, come anche tu, non posso fare nulla. 

Possiamo però fare qualcosa per la tua attività, per prevenire qualsiasi tipo, più o meno grave, di incidente di percorso.

Vector Virtual Software Testing Symposium

“SOFTWARE TESTING: Human or Automatic Activity? Six Keys to Higher Quality Software”  

19 Maggio 2021ore 13:00


Registrati e ricevi l’AGENDA e il mio speciale REPORT


quest’anno sono onorato di essere stato invitato come speaker alla prestigiosa conferenza Virtual Software Testing Symposium” organizzata da Vector Informatik, azienda con cui collaboro da oltre 10 anni. A questa speciale giornata parteciperanno tutti i maggiori esperti al mondo di Software Quality, Continuous Integration & Development, AGILE, DevOps e tanti altri argomenti correlati. 

Perché devi assolutamente partecipare a questa conferenza

Semplicemente, perchè si tratta

dello stato dell’arte del Software Testing, dove i massimi esperti parleranno delle più recenti Tecniche, dei Toolpiù moderni, dei Metodi più sicuri

per migliorare la Qualità del Software, la Sicurezza dei prodotti che vendi e diminuire i Tempi e i Costi.
Tutto insieme, nella stessa giornata, senza muoverti da casa: quando ti ricapita un’opportunità del genere?

Chi sono gli oratori di questo Symposium

Oltre a me e agli altri esperti colleghi di Vector Informatik, parteciperanno come oratori anche nostri clienti e partner di aziende al top come: 
GS Lab, Schneider Electric, Roche Diabetes Care, Nippon Seiki, Innovative Vehicle Institute, INFINEON, NVIDIA 
appartenenti a settori Automotive, Medicale, Industriale, Elettronico.
Mi ripeto: è una bella occasione, non te la perdere!

Quali argomenti verranno trattati

Ecco quali sono i temi della giornata:
– Unit, Integration, System Test
– Prevenzione ed Identificazione dei Bug
– AGILEDevOps ed altre metodologie
– Continuous Development, Integration & Testing
– Architettura, Modellazione, Simulazione & Testing
– Certificazione Functional Safety IEC-61508, DO-178C, ISO-26262, ASPICE

Come posso ricevere l’agenda dettagliata e soprattutto ISCRIVERMI?

Per avere l’agenda completa, informazioni dettagliate su come iscriversi e il mio
REPORT speciale sull’Automazione del TEST Software
vai su questa pagina:


REGISTRATI E RICEVI L’AGENDA E IL MIO REPORT SPECIALE

e completa la tua registrazione.

Per qualsiasi dubbio o domanda scrivi a:
CORSO@SOFTWARESICURO.IT

Registrati e ricevi l’AGENDA e il mio speciale REPORT

Massimo

Strategie Avanzate di Testing e Continuous Integration

Giovedì 16/04/2020 ore 14.00

Torniamo sul tecnico, molto tecnico, anzi tecnicissimo con un webinar straordinario che va subito al sodo su un argomento caldissimo:

il TEST SOFTWARE

E lo fa andando ad analizzare in dettagli le tecniche più avanzate al mondo, le strategie più efficienti e i tool più moderni adottate da un’elite di aziende tecnologicamente dominanti, per rendere più rapida l’attività di Software Test anche di un fattore 1000 e oltre, contribuendo a migliorare in maniera drastica la Qualità del codice fin dal giorno Zero.

Ma di cosa stiamo parlando esattamente? No, non sono miracoli ma solide realtà: da dove si inizia quindi?

Zero-Day Testing?

Come si fa a testare dal giorno Zero, quando ancora il codice non è stato scritto? Beh AGILE ha dato una sua risposta…

il TDD: Test Driven Development

Ma come ben sa chi si sia trovato ad usare questo approccio, è più un’utopia che una realtà… una dichiarazione di intenti che si scontra con la realtà quotidiana. E allora come si fa?

Ci viene incontro nientepopodimeno che… l’avionica!

Requirement-Based Testing

Tutto si collega… tutti i webinar fatti finora e quelli futuri sono legati da un unico fil rouge, da un tema conduttore: una filiera, una catena di montaggio dove ogni elemento ha il suo peso fondamentale.

Se i requisiti sono fatti bene, come si evidenzia nel corso Requisito Perfetto… allora puoi accedere alla seconda fase: come in un videogioco, passato il primo livello, accedi al secondo. E dal TDD parti dall’inizio ad assicurare la qualità. E il test basato sui Requisiti, conti alla mano, è l’unica vera chiave per una Qualità Totale.

E poi come fai a mantenere il tuo codice sempre in costante miglioramento, anche in caso di cambiamento? Qui entra in gioco la…

Continuous Integration & Testing

Certo: integri costantemente ogni modifica e la testi… sembra facile, sembra ovvio, ma è impossibile da fare. La potenza in gioco sarebbe ingestibile:

nessuno tranne forse Google avrebbe la capacità di calcolo per realizzare veramente una Regression Testing per ogni singola modifica.

A meno che… entra in gioco la parola magica, il grande trucco finale che lascia tutti a bocca aperta:

Change-Based Testing

Basta: eccoci qua alla vera regina della festa:

la tecnica super-avanzata per una Change-Impact Analysis fatta in tempo reale, rapidissima, che abbatte tutti i tempi come dicevamo anche di un fattore 1000 ed oltre

Ma da sola non basta… ci vogliono tutti gli step precedenti: come in una catena, l’anello debole pregiudica totalmente la tenuta e il risultato finale.

Cosa ti perdi a non partecipare?

Ti perdi la strategia più avanzata al mondo di Software Testing, quella che solo le migliori aziende al mondo conoscono e utilizzano per un Time To Market sempre più opprimente.

E tu? Pensi di poterti perdere un webinar del genere che ti parla in una sola sessione di una catena di tecnologie che insieme formano un motore potentissimo:

  • Zero-Day Testing
  • Test-Driven Development
  • Requirement-Based Testing
  • Continuous Integration
  • Change-Based Testing

In una sola sessione, veramente vedrai

tutto quello che ti farà mettere il turbo al tuo processo di Sviluppo e Test Software, eliminando colli di bottiglia facendoti fare un salto quantico?

Webinar “Strategie Avanzate di Testing e Continuous Integration”

Giovedì 16/04/2020 ore 14:00

Per vedere le registrazioni dei webinar precedenti vai su…

https://www.softwaresicuro.it/Mautic/webinar-2019-registrazioni

Massimo

Presentazione corso M.E.D.S.

Questo video servirà a presentare il nuovo corso M.E.D.S. sul metodo più innovativo e strategico mai visto in Italia nel campo del software critico:
Method for 
Efficient 
Development of 
Software

Presentato da Massimo Bombino, una delle autorità di riferimento del software Safety-Critical in Italia, e da Giuseppe Randazzo, esperto di sofware per la robotica, il webinar parlerà di questo nuovo metodo M.E.D.S. e di come si stia affermando, grazie anche al libro Software Sicuro, come  

l’unico modo di gestire un progetto software in maniera efficiente, sicura e soprattutto remunerativa   

Infatti, non sarà solamente un corso tecnico, anche se ovviamente verranno trattate alcune tematiche avanzate, ma si tratterà di un vero e proprio corso che si rivolge principalmente a MANAGER NEL MONDO DEL SOFTWARE: quindi a tutti coloro che gestiscono team (o intere aziende) dove il software giochi un ruolo fondamentale nel fornire le funzionalità del prodotto.


I 5 principi fondamentali del corso M.E.D.S:

  1. STRATEGIA
  2. ECONOMIA
  3. GESTIONE
  4. SUPPORTO
  5. PROCESSO

sono l’unico modo per tenere sotto controllo non solo gli aspetti tecnici (dove sicuramente sei già bravo, ma qualcosa da imparare c’è sempre anche e soprattutto dagli eccellenti co-docenti come appunto Giuseppe Randazzo e… un importantissimo ospite che verrà svelato nel webinar!), ma soprattutto aspetti di marketing specifico per il software, di posizionamento sul mercato, di costi e di ritorno dall’investimento, di gestione di team anche distribuiti geograficamente, della gestione dell’imprevistoe altre tematiche di sicuro mai affrontate in Italia, almeno non in uno stesso corso.


Tu pensa come potresti essere avanti rispetto alla concorrenza, applicando queste tecniche… che saranno poi ben esposte nel corso M.E.D.S. Milano (PRIMAVERA 2021).

Il videoPresentazione corso M.E.D.S.” è disponibile sul nostro canale YouTube:

Sticky

SOFTWARE SICURO: il libro!

Il nuovo libro di Massimo Bombino

Il primo libro che ti insegna a sviluppare

Software Affidabile ad Alta Qualità 

con l’esclusivo Metodo M.E.D.S.

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 citofoniper 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-Critical e 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…

Il segreto su come battere la concorrenza dei paesi low-cost nel software

Oggi vincere la sfida contro i paesi emergenti low-cost nel campo della produzione di software e firmware non è cosa facile. Quasi tutte le PMI, dopo la crisi del 2008, hanno subito profondi cambiamenti e hanno dovuto reinventare un metodo diverso per sopravvivere a queste potenti economie in espansione.

Dopo la crisi molte piccole e medie aziende di produzione di sistemi dove la componente software ha un peso crescente, hanno sperimentato la guerra dei prezzi provenienti da queste nuove economie, che spesso sono generate non solo dal bassissimo costo della manodopera seppur qualificata di ingegneri e tecnici, ma anche da politiche di aiuto statale dei paesi stessi.

Oltre a subire questo attacco a livello economico, spesso aziende spregiudicate si sono copiate anche i nostri marchi, incuranti di ogni brevetto o registrazione. Ho un cliente che ha addirittura subito una causa legale negli USA perché il suo distributore ufficiale lo ha portato in tribunale per aver venduto direttamente sul mercato a clienti finali senza riconoscere una commissione al distributore. Alla fine il risultato è stato che erano stati dei cinesi a copiare talmente bene il prodotto, con funzionalità apparentemente identiche, marchio e imballo incluso, che persino il distributore non si era accorto della truffa!!

Chissà quante altre storie probabilmente anche tu stesso hai vissuto o sentito raccontare, aziende ridotte a dimezzare o chiudere definitivamente per via di questa concorrenza sleale, basata sullo sfruttamento delle persone abbinato a politiche di aiuto statale dei paesi stessi.

Quando sei investito da questo tipo di concorrenza, all’inizio provi a resistere facendo la cosa apparentemente più logica: abbassare il tuo prezzo! Si inizia sempre in questo modo, ovviamente abbassare il prezzo è l’arma più immediata che hai a disposizione, ma anche la più pericolosa.

Read More

Scrivere software è come scrivere un romanzo di Harry Potter

HAI MAI CONSEGNATO UN TEMA, UN ARTICOLO, UN LIBRO SENZA RILEGGERLO?

    OPPURE LO HAI MAI MANDATO IN STAMPA COSI’ COM’ERA, SPERANDO CHE IL LETTORE O IL PROFESSORE TROVASSERO LORO I TUOI ERRORI ?

    SE LO RILEGGI: OGNI QUANTO LO FAI?

 

Tu normalmente quando scrivi cosa fai, aspetti di avere scritto 300 pagine per dare una rilettura? O 50? Ovviamente la risposta è uguale per tutti: NO.

Questo è un esempio che faccio spesso ai miei clienti più digiuni dell’importanza teorica e pratica dell’attività di test del software.

 

Scrivere un software è come scrivere un libro: soprattutto quando si tratta di rileggerlo

 

Prendiamo uno studente, un professionista di un altro settore, un giornalista, uno scrittore. Possiamo prendere noi stessi come esempio, perché nella vita a partire dai banchi di scuola in poi, qualcosa l’abbiamo scritta: quando rileggiamo quello che abbiamo scritto?

Read More

La tua azienda sta producendo pessimo software, bruciando prezioso budget in una spirale che presto ti manderà gambe all’aria. Te ne sei già accorto? E cosa stai facendo per evitarlo?
Tech Nerd theme designed by Siteturner