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.

“Il mio settore NON è differente”

Avendo avuto a che fare, nella mia esperienza come sviluppatore prima e come libero professionista dopo, con tantissimi settori e mercati diversi, dal gestionale all’aerospaziale, dal ferroviario all’industriale, dalle telecomunicazioni al web, una cosa mi è molto ben chiara: nessun settore è VERAMENTE differente. 

Le esigenze, le tecniche, le problematiche e le relative soluzioni sono per carità specifiche di ogni specifico mercato, che ha le sue peculiarità che lo rendono un po’ unico, ma le parti VERAMENTE uniche e irripetibili sono solo una piccola parte

E tutto questo fa tendere gli addetti ai lavori a specializzarsi un po’ troppo, a concentrarsi solo su sé stessi e a comportarsi un po’ come un’isola, una comunità che comunica molto al suo interno ma poco con l’esterno.

In realtà, dati alla mano di decine di progetti e consulenze fatte un po’ in tutto il mondo con clienti con esigenze apparentemente diverse, ci sono molte più somiglianze, comunanze, similarità di problemi e relative soluzioni, travasi possibili di conoscenze, tecniche comuni applicabili a settori appunto “differenti”.

E’ molto probabile che un problema ritenuto invalidante e insormontabile in un settore, sia stato già risolto brillantemente da un’altra parte e che, con i dovuti adattamenti, si possa replicare la soluzione anche in un contesto completamente diverso

Per questo motivo, è sempre molto importante rimanere costantemente aggiornati, non soltanto tramite letture, corsi e consultando altri specialisti come te, ma allargando lo spettro di conoscenze e rivolgendosi a professionisti che abbiano avuto esperienze diverse e possano travasare il loro bagaglio culturale maturato in ambiti distinti in consigli che non ti aspetteresti e che anche gli esperti del tuo settore non applicherebbero da soli.

Non di sola tecnica vive l’uomo

L’altro aspetto che mi è saltato all’occhio soltanto in questi ultimi anni, quando oltre ad avere esperienze internazionali di vario tipo ho deciso di ampliare i miei studi e affrontare in maniera seria e professionale tematiche apparentemente divergenti, è qualcosa per il quale ero completamente cieco all’inizio della mia carriera da “nerd” innamorato solo degli aspetti informatici, della novità tecnologica, dell’innovazione a tutti i costi: insomma, convinto che con la “tecnica” e le persone giuste, nulla era impossibile.

Il problema è che, col passare degli anni, mi sono accorto che sempre più spesso… nonostante tutti i presupposti teorici fossero corretti, nonostante tecnologicamente ci si fosse dotati del meglio, nonostante ci si fosse circondati dai migliori cervelli… inspiegabilmente, i progetti andavano male lo stesso, i tempi si allungavano inspiegabilmente, i costi esplodevano in mano come fuochi d’artificio e i reparti, se non intere Business Unit o aziende, chiudevano i battenti.

Che cosa succedeva di così inspiegabile per un “tecnico” sinceramente appassionato come me?

Grazie anche e soprattutto agli studi recenti di questi ultimi anni, ho capito che ci sono intere discipline, aspetti ignorati di gestione aziendale, anche retroscena culturali ed economici se non addirittura politici spesso del tutto trascurati da noi “specialisti” che riuscivano regolarmente a rovinare progetti perfetti, personale ben addestrato, tool all’ultimo grido e tecnologie che sprizzavano modernità da ogni poro.

Ci sono aspetti non prettamente tecnologici ma molto più strategici molto ben conosciuti e rispettati in America e altre Nazioni ma quasi del tutto trascurati e ignorati in Italia, che fanno la differenza non solo tra un progetto di sviluppo software di successo o uno fallimentare, ma in generale si rivelano fondamentali per la sopravvivenza stessa di un’azienda o di un brand e il settore dello Sviluppo Software non fa eccezione: anzi! 

Un aspetto del tutto basilare e fondamentale è la Strategia: concetti fondamentali di Marketing (nel senso buono del termine di “verità detta bene”, non in quello rovinato dalle Wanne Marchi nostrane) come il Focus e il Positioning sul mercato e rispetto alla concorrenza (vedi appunto “Focus” e altri libri fondamentali di Al Ries), la Pianificazione preventiva (e non solo la risoluzione dei problemi a posteriori…), il delicatissimo aspetto della Gestione di Clienti e Fornitori

Questo e altri che per brevità non citerò in questo articolo, sono argomenti che è corretto definire assolutamente non tecnici ma che è sbagliato trascurare, delegare solo agli altri perché anche se non si ha una leva immediata per cambiare le cose nella propria posizione, saperle riconoscere e valutare è estremamente importante, in quanto le ripercussioni sono molto più veloci e le conseguenze molto più dirette di quello che puoi immaginare.

Aspetti che sono sempre stati ignorati se non apertamente osteggiati dai “tecnici” nostrani, io per primo negli anni iniziali della mia carriera, che li vedevano come qualcosa di estraneo, di “impuro”, dedicato appunto ai manager e ai “politici”. Non per altro se non per una immeritata cattiva luce dettata dalla cronaca, un’ombra scura riflessa da elementi estranei che impedivano di vederne gli aspetti veramente innovativi e soprattutto le conseguenze nella propria vita lavorativa. 

Peccato che poi molti di noi poi si siano trovati, a volte loro malgrado, nelle stesse posizioni manageriali se non addirittura imprenditoriali e abbiamo cominciato a capire che molta della politica, della gestione, della burocrazia che tanto ci spaventava se non addirittura ci faceva senso, è diventata ahimé parte integrante del nostro lavoro quotidiano.

Ma la realtà di fatto è che non esiste una soluzione puramente “tecnica” ai problemi dello sviluppo moderno del software: parlando ad esempio di una metodologia molto comune in questi anni e ampiamente abusata, soprattutto da chi non la conosce bene come l’AGILE Manifesto, l’edizione 2018 dell’Annual State of Agile Report fornisce una risposta piuttosto netta:

solo il 4 percento di chi ha risposto al più grande sondaggio su AGILE, ha affermato che le tecniche permettono una maggiore adattabilità alle condizioni del mercato

Capisci cosa vuol dire?

Che il 96% delle aziende che applicano AGILE, non ne hanno un reale, misurabile vantaggio in termini appunto di agilità, di adattabilità ai caotici tempi moderni che cambiano le carte in tavola di continuo.

Per cui è chiaro che non può esistere una sola tecnica, un linguaggio, un tool, un metodo che sia in grado di proteggere il tuo Business da tutti i rischi dello sviluppo software.

E allora? Cosa si può fare, visti gli scenari così preoccupanti e le soluzioni presentate finora così poco adeguate?

La soluzione? Ora c’è

Quindi alla fine, torniamo alla domanda fondamentale dell’articolo:

COME FARE A PROTEGGERE IL TUO BUSINESS DA TUTTI I RISCHI RELATIVI ALLO SVILUPPO SOFTWARE?

Il modo c’è e necessariamente non è semplice, non può esserlo: deve essere una strategia su più fronti, che agisca su più livelli non solo tecnici e quindi di Processo ma anche StrategiciEconomiciManageriali e non ultimo di Supporto.

5 aspetti fondamentali, 5 vertici di un metodo completo e integrale che consenta di evitare i passi falsi commessi prima di te da altre persone, che permetta il travaso di conoscenze e di tecniche di successo da altri settori nel tuo.

Questo metodo, frutto di decenni di esperienza mia e dei grandi “guru” e collaboratori che mi hanno aiutato in questa impresa come Vance Hilderman (CEO di AFuzion, il più grande esperto al mondo di software avionico), Niroshan Rajadurai (Evangelist di Continuous Integration e Software Factory), si chiama M.E.D.S:

Method for

Efficient

Development of

Software

e nasce, come detto, per proteggere il TUO Business dagli errori nello Sviluppo Software, che TU non sarai costretto a ripetere.

Per saperne di più, come prima cosa ti puoi guardare questo video introduttivo:

e se desideri maggiori informazioni sul prossimo pubblico Corso M.E.D.S. che si terrà a Milano il 5-6-7 Novembre, puoi lasciare i tuoi dati qui e verrai immediatamente ricontattato:

https://www.softwaresicuro.it/MEDS

o scrivere una mail a:

assistenza@softwaresicuro.it

Che il tuo Business prosperi sicuro!

Massimo Bombino

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!

AGILE E DO-178: UN MATRIMONIO (IM)PERFETTO?

AGILE e DO-178: un matrimonio (im)perfetto?

AGILE e DO-178: quali sono gli aspetti di queste che sono tra le migliori metodologie di sviluppo che si sono affermate negli ultimi anni sul mercato e che vogliamo selezionare accuratamente in modo da prenderne il meglio?

Quali sono all’interno di questi due mondi, AGILE e DO-178, diciamo i migliori nel loro ambito ma imperfetti o troppo specializzati per essere applicati ovunque, le idee e le tecniche migliori che vogliamo cannibalizzare e parassitare, per piegarle a nostro piacimento?

Come possiamo sfrondare di orpelli, attività burocratiche e inutili, o inefficienti e costose, due processi altamente diffusi nel mondo del software in modo da ottenere una nuova sommatoria che è (quasi) perfetta?

Ecco, questo lungo articolo andrà a esaminare due metodologie molto conosciute da (quasi) tutti: il metodo AGILE e la Certificazione Avionica DO-178.

Due tecnologie mature, complete, ricche di un sacco di aspetti interessanti ma a volte burocratiche, ridondanti, inefficienti. O al contrario sbrigative, superficiali, incomplete.

Per cui andiamo a fare un po’ di cosiddetto cherry-picking e selezioneremo uno per uno gli aspetti, i principi, gli obiettivi principali dei due mondi e decideremo se portarli con noi e in che modo, se integralmente o con giudizio.

E ne tireremo fuori una metodologia nuova e a prova di bomba, da adottare in qualunque tipo di sviluppo, normato e certificato quindi Safety Critical, ma anche e soprattutto in quello normale, quotidiano del mondo Business-Critical.

 

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