Sicurezza di prodotto o di processo?

Se passi davanti a un negozio IKEA, ti potrà capitare di trovare questo strano dispositivo.

È una scatola di plexiglas trasparente, contenente una poltrona IKEA, uno strano braccio robotico con due grandi pistoni che spingono la sedia e un contatore. È una specie di esperimento di simulazione di una persona di 80 kg. seduto e in piedi, ripetuto per migliaia e migliaia di volte.

Probabilmente hai guardato il bancone, hai visto un numero come 999.999-1.000.000- … e hai fatto un po’ di matematica mentale…

 “Probabilmente io e la mia famiglia potremmo sederci e alzarci in media 10 volte al giorno, 3.650 totali all’anno … quindi questa sedia durerà almeno 300 anni “ 

E con la giusta fiducia nella sua robustezza, hai deciso di comprarla.

Ora pensiamo a un software critico per la sicurezza: ti potrebbe essere richiesto di certificare secondo il severo standard DO-178C, fino al livello A. Bene, guardando questa o altre normative di sicurezza correlate, potresti trovare che associato al livello A, hai una probabilità di errore 10E-9 ore di volo. Ok, ancora matematica… significa:

1 miliardo di ore senza problemi, o meglio 115.740 anni

Centoquindicimila anni! Sembra abbastanza buono, non è vero? Tranne il fatto che… per il software, in realtà non funziona così. Cosa significa veramente DAL-A? Letteralmente, significa Design Assurance Level: garanzia del DESIGN.

Ma la vera probabilità di un guasto del software è molto più alta … alcuni esperti dicono che la probabilità è 1 ovvero il 100%! Potresti essere abbastanza sicuro che il tuo software fallirà! Pensa al tuo sistema operativo desktop o mobile … puoi immaginare un’app per il tuo smartphone o computer che resista migliaia di anni senza crash o bug?

 E pensi che il software avionico possa essere reso così solido per millenni? Possa davvero essere rilasciato fin dall’inizio totalmente senza bug? 

NON È COSÌ

ed ora ti spiego perché.

Read More

Stai proteggendo il tuo Business dai rischi dello Sviluppo Software?

Mi capita molto spesso di parlare con molti di voi professionisti che si occupano di sviluppo software a vari livelli (sviluppatori, manager, imprenditori) e spesso mi confronto con una preparazione tecnica ineccepibile, eccezionale: molto spesso migliore della mia! 

Avendo lavorato pure io per oltre vent’anni nel puro sviluppo software critico, in settori come telecomunicazioni, aerospaziale, automazione industriale e altri ancora, soprattutto agli esordi e per parecchi anni a seguire, mi sono sempre sentito sicuramente un vero “nerd” su tanti argomenti, nel senso positivo di sviluppatore appassionato e sempre aggiornato su qualunque novità e innovazione, con la sensazione di essere imbattibile nel mio settore. Anche se poi purtroppo ho dovuto smettere di seguire alcune di queste tecnologie, perché rimanere aggiornati risulta sempre più difficile, in quanto si spende un sacco di tempo per altre attività più “noiose” e burocratiche e nel frattempo la tecnologia corre molto veloce.

Infatti, chi lavora da anni quotidianamente immerso in un settore specifico, applicando sempre più spesso la stessa tecnica, un tool, un linguaggio sviluppa una padronanza tale della materia da avere letto più o meno tutto quello che esiste sull’argomento, sperimentato varie soluzioni e alla fine si sente circondato da un’aura di sicurezza, di confidenza che d’altra parte è del tutto motivata, sia dalla teoria che dai fatti. Difficile se non impossibile prenderli in fallo: d’altronde, anche nel tuo specifico caso… sei giustamente convinto che, nel tuo lavoro, te la cavi piuttosto bene e non hai bisogno di consigli, giusto? 

Ecco, questo è un po’ quello che mi capita quotidianamente, lavorando con tanti clienti diversi in vari settori:

spesso uno si ritrova un po’ chiuso nel suo habitat tecnologico e informativo, convinto di sapere esattamente quali sono i propri punti di forza e le debolezze sulle quali lavorare e sviluppa una sorta di diffidenza, di chiusura verso apporti esterni di esperienza, di consigli, se non addirittura di corsi o consulenze che vengono ritenute inutili e superflue

con il rischio di essere inavvertitamente esposti ai rischi continui e inaspettati legati allo sviluppo del Software e la conseguenza di mettere in pericolo il proprio Business (da cui il concetto di Business-Critical)

In realtà, ci sono almeno due aspetti aggiuntivi che nulla tolgono alla competenza e capacità tecnologica nel proprio settore specifico, ma che sono fondamentali per gestire i variegati rischi relativi allo sviluppo di codice e di conseguenza per poter rispondere alla incredibile complessità dello sviluppo software, che rimane l’attività umana intellettiva più complessa in assoluto: in termini di numero di giorni/uomo, un qualunque software applicativo neanche troppo sofisticato batte senza problemi la complessità, la varietà, il tempo impiegato nella creazione anche di grandi opere come la Divina Commedia o la Cappella Sistina.

Di seguito, cercherò di spiegarvi come la mia esperienza costellata di errori, di passi falsi, di pessime esperienze sia stata implementata con una serie di suggerimenti, di strategie prima appresi da studi teorici, da Master, da approfondimenti, poi sperimentati negli anni su vari fronti e infine distillati in un metodo che potrebbe rivelarsi fondamentale su come fare a cambiare rotta e a gestire tutti gli aspetti critici dello sviluppo applicativo.

Vediamo quali sono questi due approcci fondamentali ma che chi è troppo immerso negli aspetti puramente tecnologici e specifici del settore tende a trascurare, preso com’è dalla quotidianità e dalla fretta di consegnare, di soddisfare il cliente, di rispondere al management.

Read More

La via AGILE alla Certificazione Avionica del Software

Se ci sei passato, saprai benissimo che la Certificazione Avionica Safety-Critical del Software ha una brutta fama… quella di letteralmente un bagno di sangue.

Sono tantissime le cose che devi fare di più rispetto a un normale progetto… vediamo alcune tanto per intenderci:

  • Avere un processo formale, rigido e ben definito
  • Rispettare formalmente tutte le fasi del ciclo di vita e le transizioni fra di esse
  • Soddisfare tutti gli obiettivi richiesti tramite attività, documenti, evidenze, checklist
  • Dotarsi dei migliori strumenti nonché di fornitori o sub-contractor adeguati

In poche parole… questo vuol dire solamente tre cose:

SOLDI, SOLDI e ancora SOLDI

E ovviamente tempi molto più lunghi, ritardi che si dilatano in maniera esponenziale così come i rischi di insuccesso e via discorrendo.

Esiste una via più rapida ed efficiente alla Certificazione Avionica?

E’ possibile riuscire ad essere più efficienti , senza sacrificare nessuno degli obiettivi Safety-Critical? Si possono accorciare i tempi, senza scordare nessuno degli obblighi dati dagli standard? Come si possono contenere i costi e rimanere compliant? Come ci può aiutare in tutto questo il M.E.D.S. (Method for Efficient Development of Software)?

Ne parlerò a Monaco, alla conferenza Aerospace Testing Europe durante la Aerospace Tech Week:

https://www.aerospacetechweek.com/aerospace-testing-europe-conference-programme/

Come ogni anno, sono invitato a presentare delle soluzioni più efficienti per la Certificazione Avionica (e di conseguenza tutte le altre), quest’anno mi concentrerò su un compito apparentemente “impossibile”: dimostrare proprio come la Metodologia AGILE, che in teoria mal si presta al mondo “sicuro”, in realtà se ben usata può aiutare le aziende come la tua a vincere la sfida col Software Certificato, aiutandoti a essere più snello e rapido senza nessun sacrificio sulla Safety.

In poche parole, come il M.E.D.S. riesce a mettere insieme il Safety- e il Business-Critical.

Scopri la mia “sfida” impossibile partecipando alla mia presentazione a Monaco il 7 Marzo alle 14!

Se ti prenoti a questo link:

https://www.softwaresicuro.it/Mautic/software-sicuro-il-libro

potrai nell’occasione ricevere di persona una copia autografata (e ancora per poco gratuita!) del mio libro “Software Sicuro”, anche in inglese!

I 10 Comandamenti del Requisito Perfetto


WEBINAR GRATUITO

Giovedì 7 Marzo 2019 – ore 14:00

Che cos’è un Requisito Perfetto? Come si fanno a scrivere dei buoni Requisiti Software?

Facciamo un passo indietro, anzi di lato:

Inizieresti a realizzare una casa con un progetto “approssimativo”?
Senza fare calcoli strutturali e simulazioni?
Senza un capitolato che specifichi bene tutti i costi previsti?

Sai benissimo che è impossibile, perché lasceresti troppa libera scelta al costruttore, con il rischio certo di un risultato non soddisfacente e di conseguenza la necessità di apportare modifiche in corso d’opera e rifacimenti di quanto già realizzato con spreco di tempo e denaro…

Nello stesso modo, da costruttore eviteresti di accettare un lavoro del genere, fatto di una chiacchierata ed una stretta di mano, perché sai che darebbe luogo ad infinite contestazioni e richieste da parte del cliente.

Lo stesso discorso vale per un prodotto software: senza requisiti chiari e funzionali, si avrà una soluzione non efficiente con conseguente bisogno di interventi in itinere per “interpretare” quello che il cliente vuole e che non è stato chiarito in partenza. 
Risultato: mancanza di efficienza, ritardo nei rilasci e malcontento del cliente (e del fornitore!).

La stesura corretta e consapevole dei requisiti non è da considerarsi una perdita di tempo ma una vera e propria “scienza” che detta le regole per la costruzione delle fondamenta di un software che, come per una casa, sono un elemento imprescindibile per un risultato finale ottimale.

Il webinar gratuito sul “Requisito Perfetto”

Scopri “I DIECI COMANDAMENTI DEL REQUISITO PERFETTO”, in un webinar gratuito che si terrà:

GIOVEDI’ 7 MARZO alle ore 14:00

Durante questo webinar, ti spiegherò tutte le tecniche per costruire dei requisiti a prova di bomba, senza che questo appesantisca troppo il tuo ciclo di vita del software, ma in modo da stabilire un vero e proprio “capitolato” con i tuoi clienti.

Ovviamente, se poi devi adeguarti a qualunque Certificazione Safety-Critical… questo webinar è a dir poco fondamentale. Se applicati in maniera integrale e rigorosa, questi 10 Comandamenti diventeranno gratuitamente per te una vera e propria Requirement Guideline, da cui ricavare a sua volta la Checklist che potrai usare per raggiungere senza problemi la certificazione!

Come fare a iscriverti?


Per partecipare al webinar, devi compilare questo modulo:

Invita pure chi vuoi!

Estendi l’invito a questo webinar a colleghi, amici ma se riesci anche a clienti e fornitori… più persone nella tua filiera impareranno l’importanza di scrivere al meglio i requisiti, così come previsto nello standard M.E.D.S., più facilmente lavorerete insieme per la produzione di software migliore da tutti i punti di vista.

Ti attendo al webinar Giovedì 7 Marzo alle 14:00!

Massimo

An image

I 10 peggiori errori nel software che devi assolutamente evitare

Qual è la classifica dei 10 peggiori errori nel software che potrebbero far saltare il tuo progetto o la tua azienda?

Ho commesso errori nella mia vita professionale, tanti, anche se fortunatamente non troppi: è la strada inevitabile degli innovatori, dei curiosi, di chi adotta tecnologie promettenti o al contrario è obbligato a utilizzare quelle vecchie per vincoli aziendali imposti. Ancora più spesso, mi sono trovato a gestire i problemi degli altri! Guai a ripetizione per scelte magari fatte da chi c’era prima di me, o gerarchicamente sopra di me, o che metteva i soldi ma non si rendeva conto di quello che erano le conseguenze di certe scelte.

Ma oltre agli effetti negativi, per i quali ho quasi sempre dovuto trovare personalmente delle soluzioni o comunque dei rimedi, ho passato anche tantissimo tempo a pensare a come evitare di farli in futuro e come evitare che li facessero i miei clienti e i miei collaboratori.

Così come ci sono tanti colleghi, clienti, partner strategici con cui mi confronto quotidianamente, che da sempre vista la mia passione e dedizione alla tecnologia, mi hanno riferito le loro “disgrazie” sulle quali siamo finiti a ragionare insieme, al lavoro ma spesso anche in orari improponibili a cena se non dopocena, passati a parlare di lavoro ed elaborare insieme una soluzione, un rimedio ma soprattutto il modo per scongiurare il loro ripetersi.

Da queste cattive esperienze e dall’enorme fatica fatta per comprenderle in profondità, ho imparato tanto: mi permetto di suggerirti quali sono i 10 peggiori errori, in modo che tu possa evitare le stesse conseguenze disastrose in futuro, e le migliori strategie per evitarli.

Read More

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

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