SOFTWARE DA INCUBO!

 

“Siamo in ritardo per colpa del software”

“Dovremmo adottare un nuovo processo di sviluppo ma non abbiamo il tempo”

“Un tool molto interessante ma non c’è budget, mi spiace”

“ Il nostro metodo di sviluppo software è molto artigianale”

“Non abbiamo tempo di testare perché dobbiamo uscire col prodotto”

“Il test è noioso e costoso, dobbiamo tagliare i tempi”

“Vogliamo stare concentrati sul nostro core-business”

“Dobbiamo richiamare 10.000 unità dal mercato per un problema”

“Alcune persone si sono ferite utilizzando il nostro dispositivo”

“I parenti dei nostri clienti vittime di incidenti con i nostri veicoli si sono organizzati in una class-action”

 

Se qualcuna di queste frasi ti è nota perché è girata nella tua azienda o in quella di un tuo concorrente, oppure se il solo sentirla ti fa venire un brivido freddo: allora questo blog è per te.

SOFTWARE DA INCUBO

Lavoro da oltre 25 anni nel settore dello sviluppo software e ho avuto modo di ricoprire una lunga serie di responsabilità, ruoli e compiti legati al ciclo di vita del software, in vari ambiti:  da sviluppatore a manager, dalla modellazione al testing, da dipendente a libero professionista, dal software gestionale a quello aerospaziale, dall’ambiente safety-critical a quello business-critical.

Bene, sapete cosa mi è rimasta impressa in tutti questi anni di  esperienze internazionali?

La sensazione di impotenza nel vedere come il software, benché onnipresente in qualunque aspetto della nostra vita, in realtà sia una disciplina completamente sottovalutata, sottostimata e bistrattata ma di assoluta e sempre crescente importanza e soprattutto pericolo.

Ormai il codice scritto da qualche sviluppatore in giro per il mondo si trova ovunque: dalla lavatrice connessa in Wifi ad Internet e a tutti gli elettrodomestici di casa, al freno a mano elettronico collegato a vari sensori della propria auto che tra poco guiderà da sola, all’aereo che atterra nella nebbia totale o all’apparato medicale guidato da un tecnico esperto che sta effettuando una TAC.

Ma il software mai come ora può determinare il successo o il fallimento di un’azienda, la redditività o l’esaurimento del budget, nonché mandare all’aria intere linee di prodotti o aziende e magari infine provocare morti e feriti, nel caso dell’ambito safety-critical. E la coscienza del ruolo fondamentale della progettazione del software, il cui fallimento può provocare danni incalcolabili nonché morti e feriti, invece di aumentare sta diminuendo.

Certo, ci sono sicuramente tecnici che hanno una visione globale molto completa e strategica, ma spesso non sono nel ruolo giusto per poter intervenire ed ottimizzare il processo. Così come ci sono manager e CEO illuminati, di provenienza tecnica o che comunque si affidano a consulenti esperti, ma

la realtà è che quasi tutti gli altri tendono a considerare il software come un male necessario e poco più che inutile, dove sicuramente spendere “il meno possibile” 

per cui qualunque investimento nella ricerca della qualità viene visto come irritante se non almeno differibile.

Fa niente che studi internazionali su migliaia di progetti dimostrino come investire nella qualità dello sviluppo abbia un ritorno dell’investimento di 15€ per ogni euro investito: si parla del 1500%. No, meglio risparmiare perché “noi siamo bravi” e non abbiamo avuto problemi finora. O con la scusa che comunque la parte fondamentale è l’hardware, il design, la prestazione, il brand ed il software è quasi invisibile.

Cosa che sappiamo non vera: vediamo spuntare pannelli touch-screen, ricevitori GPS e collegati in rete in ogni dove… dagli ascensori ai forni a microonde, dalle biciclette in free-sharing ai dispositivi bio-medicali sono tutti pieni zeppi di software. Così come sentiamo nella cronaca nera incidenti mortali dovuti a malfunzionamenti software su automobili, defibrillatori, treni. O fallimenti di intere aziende dovute a programmi impazziti che effettuano milioni di transazioni folli in Borsa.

E voi pensate che questo sia servito a qualcosa? Credete che ci sia più spontanea consapevolezza da parte delle PMI o delle grandi aziende relativa al ruolo del software e alle misure per ottimizzarne il ciclo di vita ed alzarne la qualità?

Ve lo dico serenamente: il 90% delle aziende (ad essere generosi) che investono in linguaggi moderni di programmazione, in modelli avanzati di sviluppo, in tool che migliorano l’efficienza del test, sono in realtà dovuti come dico sempre ad una semplice pistola puntata alla testa:

 

LA CERTIFICAZIONE!

 

Eh già: un aereo per poter volare, una macchina per circolare su strada, un treno per portare merci o passeggeri ed i dispositivi medicali sono tutti accomunati da alcuni fattori. Prima di tutto: sono sistemi safety-critical, dove un malfunzionamento potrebbe essere altamente rischioso in quanto è in gioco la vita umana.

Per cui accade un fenomeno ben conosciuto: un’Autorità statale studierà primo o poi il fenomeno mettendo inseme in un panel i migliori esperti del settore, che scriveranno un Safety Standard, uno standard di sicurezza per le persone che utilizzano quella categoria di prodotti che rende il metodo di sviluppo software un processo il più possibile ingegneristico:

  • scientifico
  • rigoroso
  • ripetibile
  • formale
  • poco soggetto alla soggettività e creatività umana

Negli anni sono nati tutta una serie di standard SAFETY CRITICAL, con sigle ben note agli addetti ai lavori, come:

  • DO-178B/C: safety standard per lo sviluppo di software Avionico
  • ISO-26262: safety standard per il mondo Automotive
  • IEC-61508: safety standard in ambiente Industrial Automation
  • IEC-50128/CENELEC: safety standard ferroviario
  • IEC-62305: safety standard per apparati biomedicali

Lo Stato o l’Unione Europea imporranno il rispetto di questi standard come condizione indispensabile per tutti questi prodotti per poter circolare o comunque essere utilizzati attraverso un percorso obbligatorio e pieno di verifiche formali, con Autorità Statali che vigilano sul rispetto delle specifiche di sicurezza.

 

 

L’obiettivo finale è quello di raggiungere la conformità finale sotto forma di Certificazione, prima di poter essere venduto e utilizzato dal pubblico.

LA FAMOSA PISTOLA PUNTATA ALLA TEMPIA

Che costringerà presto o tardi dirigenti, manager, project-leader e tecnici delle aziende di questi settori a correre ai ripari e a studiare e adottare le migliori tecniche di progettazione, sviluppo e test del software finalmente contribuendo a renderlo sicuro.

Tutto questo anche se spesso tardivo è molto utile, perché comunque darà lo slancio ad investire, misurare il miglioramento e verificare il risparmio (ricordate il rapporto 15:1?). Queste tecniche safety-critical verranno spiegate in questo blog, insieme ad altre metodologie interessanti.

L’obiettivo di questo blog, articoli, ecc. sarà sicuramente quello di aiutare aziende che già debbono sottostare alle forche caudine della Certificazione, anche se loro si sono già mosse o si stanno muovendo ad adottare questo approccio, per cui questo blog sarà comunque un interessante approfondimento di alcune tecniche più recenti ed un importante ripasso.

 

Ma a chi è dedicato in particolare questo blog?

 

E’ dedicato in realtà al restante 10% delle aziende: a quelle che, medio-piccole che siano, comunque non devono fare la Certificazione.

Niente pistola alla tempia.

Niente obblighi, procedure rigorose di fronte alle Autorità ed Enti competenti.

Niente bollini di Qualità per poter vendere.

Tutto il mondo di aziende o di progetti per cui un malfunzionamento, un “bug”, provoca al massimo un fastidio, un disservizio, un malcontento. Un’app che si blocca sul telefonino facendoci perdere dei dati, un collegamento Wi-fi che non funziona, il sistema di intrattenimento dell’auto che si riavvia da solo.

Tutte cose irritanti, frustranti che non ammazzano nessuno ma che possono determinare il successo o la catastrofe di un prodotto, di un’azienda, un brand. Che modificano profondamente l’umore dei propri clienti ed utilizzatori, l’immagine di una società e dei suoi prodotti con tutte le conseguenze soprattutto economiche del caso. E per le quali ho studiato una soluzione efficiente e realizzabile da qualunque azienda, anche di una sola persona.

 

IL SOFTWARE E’ CRITICO PER IL TUO BUSINESS?

La maggior parte di queste aziende per storia, per tradizione, per mancanza di una radicata cultura del software e della sua qualità spesso involontariamente ne sottovaluta il ruolo, non solo da un punto di vista tecnico ma anche e soprattutto dal fatto che si ritrova senza accorgersene immediatamente a bruciare budget migliaia se non milioni di euro in problematiche come ritardi nelle consegne, tempistiche falsate di uscita sul mercato, cancellazioni di prodotti, malfunzionamenti bloccanti, insoddisfazione degli utenti ed abbandono del brand.

Oppure gli effetti nefasti li ha ben presenti, ma non ha idea di come contrastarli efficacemente, con rapidità e senza enormi investimenti. Ma che ora ha un alleato e soprattutto un metodo in più.

Negli anni io ho cominciato ad applicare questo approccio rigoroso e scientifico in modo ragionato e adatto anche a realtà più piccole, ereditando tutto quello di indispensabile dal mondo Safety-Critical ed adattandolo ad aziende dove è importante la qualità ma anche la flessibilità, la velocità e i costi.

Ecco allora questo blog, frutto della mia storia personale e ricco di teorie e metodologie ed esempi concreti di applicazione, storie vere di successi e fallimenti, con argomenti tecnici quando necessario e rimando ad ulteriori approfondimenti,

è adatto a chiunque si trovi a lavorare in un’azienda che per un motivo o per un altro non ha ancora raggiunto la maturità necessaria a comprendere ed auto-analizzare il proprio grado di maturità nello sviluppo, l’efficienza ed efficacia del ciclo di vita del software

e di come intervenire con aggiustamenti a volte incredibilmente semplici e dal ritorno immediato in modo da migliorare tantissimi aspetti non solo tecnici ed informatici ma anche finanziari, di soddisfazione dei consumatori e di fedeltà al brand.

Se volete scoprire esattamente come ho fatto ad applicare metodi scientifici ed ingegneristici tipici di grandi aziende aerospaziali e ad adattarli ad aziende medio-piccole dove il team di programmazione è limitato a gruppi anche da solo 1 persona in su, riducendo costi e rischi e facendole arrivare prima sul mercato con un prodotto più stabile, siete nel posto giusto e questo blog fa per voi.

Leggetelo, consigliatelo, fatelo circolare: ai tecnici, sviluppatori, designer che vogliono imparare qualcosa di nuovo o vedere un punto di vista globale e sinergico, ai manager che non sono riusciti a stare al passo con le nuove metodologie di design, modellazione e sviluppo, ai dirigenti che sanno di dover agire presto ed efficacemente per contrastare o prevenire problemi peggiori ma non sanno di chi potersi fidare e di come intervenire subito.

Sono convinto che apprezzerete questo mio approccio in quanto vi darà una visione organica e d’insieme a tutta una serie di problematiche che vi stanno erodendo i budget e vi suggerirà soluzioni per implementare delle contro-misure, attraverso varie tecniche ed un processo ben preciso:

 

IL METODO DELLO SVILUPPO EFFICIENTE DEL SOFTWARE (M.E.D.S.)

 

Bisogna agire adesso: ogni giorno che perderete a non essere nemmeno consapevoli di quanta distanza vi separa dall’avere un software efficiente e corretto ma soprattutto del percorso più o meno tortuoso per arrivarci, sono soldi persi. Tanti.

Direi allora che vale la pena leggere qualche articolo che vi aiuterà parecchio in questo itinerario.

Segui questo blog e scrivimi a:
blog@softwaresicuro.it
Ti invierò articoli tecnico-pratici su come rendere più efficiente il tuo Ciclo di Vita del Software e ti manderò Casi di Studio reali di Piccole/Medie Aziende o Grandi Imprese dove viene raccontato nei particolari l’applicazione pratica di questo metodo.

Autore: Massimo Bombino

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

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