Il Software ai tempi del Coronavirus

“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…

Due guerre perse in partenza

Due lavori estremamente stressanti, due situazioni già perse in partenza, due guerre che è (quasi) impossibile vincere pienamente: la lotta contro il virus che si sta diffondendo dalla Cina e quella per la Qualità del Software. Situazioni LOSE-LOSE, o NO-WIN come si dice nella Teoria dei Giochi: 

sono dei contesti dove non c’è mai un vero vincitore o meglio ancora, dove l’eventuale vittoria non porta nessun vantaggio a nessuna delle parti 

Ma in che senso, perse in partenza? Spieghiamoci meglio: non è tanto la lotta contro il virus ad essere messa in discussione, ma le conseguenze di una (auspicabile ma non ancora realizzata, nel momento in cui scrivo) vittoria contro un virus, che al contrario di quanto tu possa pensare, non darebbe nessuna gloria al nostro fantomatico Ministro della Sanità. 

Insomma: sembra proprio che, come ho imparato duramente sulla mia pellaccia durante la mia vita lavorativa, non ci sia scampo dal doversi preoccupare della salute della gente (nel mio caso del software) e non ricevere riconoscenza della vittoria ottenuta. 

Ora ti spiego perché, poi ti dico come ne sono uscito io…

Health Policy: una brutta faccenda, da qualunque punto di vista

Questioni di HEALTH POLICY, quella delicata branca della politica sanitaria che si basa sul criterio di come allocare i soldi a disposizione della Sanità Pubblica in modo da migliorare la salute dei cittadini e nello stesso tempo evitare di aggravare ulteriormente il bilancio stesso. Una delicatissima disciplina, a cavallo tra economia e medicina, statistica ed epidemiologia, con tutta una serie di ragionamenti, modelli e previsioni tutt’altro che certi e pienamente prevedibili a priori in termini di conseguenze ed effetti nel medio e lungo termine. 

Prevenzione o cura? Screening o efficienza del trattamento? 

Il problema, come vedremo, è che tutte le scelte di HEALTH POLICY sono critiche per definizione, perché non ci sono decisioni le cui conseguenze non siano in ogni caso criticabili.

  • SE FUNZIONANO, otterranno lo scopo ma verranno ritenute eccessive.
  • SE NON FUNZIONANO, sono ovviamente criticabili

Già, immagina il nostro Ministro della Sanità alle prese con due scenari possibili.

SCENARIO SEVERO (MA A LIETO FINE)

Il nostro Ministro ascolta gli scienziati allarmati, valuta l’impatto del virus con gli esperti estremamente preoccupati e arriva alla conclusione che se non si interviene subito e in maniera drastica, la tragedia è imminente. 

Con toni drammatici si rivolge prima di tutto ai colleghi ministri, al governo e poi di seguito alla popolazione presentando uno scenario apocalittico, ragionerà in termini di rischi/benefici, facendosi aiutare dagli esperti in simulazioni complesse e ne uscirà imponendo misure drastiche, bruciando milioni di budget sanitario in procedure di prevenzione, isolamento, cura e drastica risoluzione del problema. 

Bene, cosa succederà? Che quasi sicuramente, grazie a tutte queste iniziative di contenimento, la sua iniziativa avrà successo… e alla fine si ammalerà poca gente, magari molta meno di quella che era stata annunciata inizialmente, con toni poi ritenuti eccessivamente allarmistici. Le misure sono servite, il danno è contenuto e il paese torna presto alla normalità…

Tutto ok? Si celebra il successo politico e sanitario? NO: magari! Perché l’opposizione politica, l’opinione pubblica, altri esperti, l’uomo della strada, in tanti saranno pronti ad attaccarlo

ha esagerato, è stato fin da subito troppo drammatico, ha pompato troppo i numeri all’inizio, ci ha fatto spendere un sacco di soldi inutilmente, il virus era molto meno pericoloso di quanto annunciato e via discorrendo. 

Le sue lamentele, le sue iniziative, sono state ECCESSIVE perché l’allarme è rientrato e non è successo quello che era stato drasticamente previsto. Un disastro: e tutto questo per aver fatto il suo dovere fino in fondo ed evitato una strage! 

Anzi: complottisti e nemici vari lo accuseranno di aver volutamente creato l’allarme per favorire l’allocazione di fondi in attività di prevenzione ritenute inutili, dove scaveranno, cercando un conflitto di interessi a tutti i costi. 

RISULTATO: il caro Ministro è condannato (quasi) senza scampo, da una buona parte delle persone, nonostante abbia portato a termine il suo lavoro egregiamente. E questo vale anche per organizzazioni, associazioni, scienziati che hanno portato avanti la stessa tesi tragica e che hanno contribuito paradossalmente a evitarla: anche loro nel fuoco incrociato dei complottisti.

SCENARIO SUPERFICIALE (MA CON FINALE TRAGICO)

Gli scienziati vengono ignorati o ritenuti eccessivamente allarmistici, le preoccupazioni dei virologi vengono ritenute eccessive, le misure identificate sono valutate troppo costose e non strettamente indispensabili almeno da subito, lo scenario viene sottovalutato in maniera superficiale e il virus non sembra così devastante, almeno inizialmente. 

I casi però cominciano ad aumentare esponenzialmente, ci sono pazienti gravi che non trovano posto negli ospedali affollati, la Sanità va in tilt e le misure inefficaci come il famoso recinto chiuso solo dopo che i buoi sono scappati. 

RISULTATO: tragico. Ovviamente, il nostro Ministro verrà crocifisso da chiunque nella pubblica piazza e valutato per l’eternità come incompetente, inefficace, eccessivamente prudente nel contrastare l’avanzata del morbo e colpevole di aver creato una epidemia. Un altro disastro che porterà alla prossima occasione all’eccesso di prudenza che ci ricondurrà nel caso 1.

La brutta fine del povero Ministro

Capite come essere un Ministro della Sanità o altra organizzazione governativa o meno in momenti come questi, sia la cosa peggiore che si possa augurare a qualcuno? Una poltrona infuocata, ricoperta di chiodi e poggiata su una polveriera. 

Qualunque azione, non ti darà scampo: tranne pochi veramente razionali, quasi tutti gli altri ti daranno contro, indipendentemente dalle scelte che farai e ancora peggio dai risultati, anche buoni, che otterrai in termini di prevenzione.

Il Software ai tempi del Coronavirus

Bene, abbandoniamo per un attimo questo scenario… e torniamo nel mondo del Software:

un mondo in cui sono stato gettato fin da bambino, quando a 11 anni mi hanno regalato un Apple II, un piccolo gioiellino di quei tempi, un computer “serio” rispetto a quello dei coetanei col Commodore 64.

Ma soprattutto, quando a 12 anni ho imparato il Basic e pochissimi mesi dopo, ho comprato il libro sull’Assembly del Motorola 6502. Bei tempi.

Comunque: lo vedete il parallelo, immaginandovi seduti per un attimo (se non lo siete già) sulla altrettanto scomoda poltrona del Software Quality Assurance (QA) Manager? Ossia, colui che si occupa della Qualità, della “Sanità” del processo di Sviluppo Software?

Il parallelo tra i due casi, se ci pensi, è fin troppo inquietante.

SCENARIO SEVERO (MA A LIETO FINE)

Il QA Manager attento legge i KPI, interpreta le metriche, si consulta con i Manager e identifica una imminente situazione esplosiva, pericolosa: il Software che si sta producendo è instabile, di bassa Qualità, pieno di bug, la consegna al cliente o l’entrata sul mercato è a rischio, il rischio di problemi dal campo è altissimo e la preoccupazione è alle stelle

Convince a fatica con numeri e previsioni il resto del Management a mettere in campo misure drastiche: Task Force dedicate alla soluzione dei problemi urgenti, tool speciali per identificare e correggere problematiche, nuove assunzioni per identificare e correggere più problemi possibili, budget allocato a fornitori esterni per gestire l’emergenza. 

Con tanti sforzi e tanta fatica si sistemano le cose urgenti, si delegano le attività, si isolano i problemi e si riporta la situazione a una certa stabilità. Si va finalmente in campo, si incrociano le dita e… va tutto bene. Problemi grossi non ce sono, i clienti sono contenti, il Software è stabile. 

E ovviamente, i Manager del piano di sopra diranno al povero QA Manager: 

“E cos’era tutta quella tragedia? Sembrava dovesse esplodere tutto, ci hai fatto spendere un capitale in tool e persone e alla fine non è successo niente!”. 

Se non addirittura il nostro QA verrà accusato di aver favorito propri fornitori collusi, senza aver portato nessun vantaggio concreto alla propria azienda e avendo comunque bruciato il budget. 

E alla volta successiva,nella sua azienda si ritroveranno ad allentare le misure e a finire nel caso …

SCENARIO SUPERFICIALE (MA CON FINALE TRAGICO)

Le Cassandre aziendali vengono ignorate, i toni allarmistici smorzati, le previsioni di tragedia minimizzate… non si fa correttamente opera di prevenzione dei problemi, validazione e verifica adeguate, test esaustivo e il software esce lo stesso, a tutti i costi, pure in ritardo. 

Ma, come volevasi dimostrare, è un disastro: tutto quello che di brutto poteva succedere, succede… gravi problemi dal campo, perdita di dati da parte dei clienti, programmi bloccati e tutti quanti furenti, dentro e fuori. E la poltrona del nostro amico QA Manager che salta in aria tipo polveriera.

La brutta fine del povero QA Manager

Già, temo che tu possa averlo vissuto in prima persona come me: 

le figure aziendali (e politiche) che si occupano di “prevenzione”, di “monitoraggio qualità”, di “miglioramento del processo” sono scomode, brontolone, pessimiste e si dice portino pure sfiga. 

Difficile veramente farsi ascoltare, denunciare una situazione critica, mettere in atto contro-misure in tempo, perché a parte che ora che si convincono tutti si rischia di fare tardi, ma alla fine anche portare a casa il risultato di migliorare la Qualità ed evitare il peggio, la vittoria potrebbe essere gravemente fraintesa.

Come ne sono uscito da questo profondo trauma psicologico, questa sensazione di impotenza, nonostante la passione da sviluppatore di software 12enne mi abbia scaraventato poi per tutto il resto della mia vita in un lavoro e in una carriera tutta dedicata all’arte dello sviluppo del codice?

Consigli pratici per aspiranti Ministri e QA Manager

Che conclusione possiamo trarre da tutto questo? Come potrebbero il nostro Ministro o il nostro QA Manager cercare di sfangarsela un po’ meglio rispetto alla media dei loro predecessori? Come condurre una battaglia che sia veramente efficace e nello stesso tempo apprezzata dentro e fuori alla tua azienda?

Ci sono varie aree di intervento dove si può veramente fare la differenza, mi limito a raccontarti le opportunità che ho scoperto per poter fare sempre meglio nel campo Software, che è il dominio che conosco meglio vista la mia esperienza nata addirittura da ragazzino, grazie alla quale ho poi affrontato decine e decine di “epidemie”, di varia gravità. E anche perché il povero Ministro della Sanità, ancora, non riesco ad aiutarlo. 

Il M.E.D.S. (Method for Efficient Development of Software), come dice il nome stesso (MEDS=Medicine in inglese), è nato nel corso di questi lunghi anni, grazie alla mia esperienza personale e all’influenza positiva di colleghi, maestri ispiratori che mi hanno aiutato a costruire la miglior cura per il “virus” del cattivo codice, per prevenire i problemi più gravi e curare, nella peggiore delle ipotesi, un processo software nato già malato.

Sono 5 le aree di intervento, 5 i fattori di prevenzione che è possibile applicare tutti i giorni nella propria azienda per evitare disastri futuri: 

STRATEGIA: non è possibile costruire, immaginare, prevedere nulla senza costruire degli adeguati piani, senza analizzare la concorrenza, il mercato, i fornitori e gli stessi clienti. Altrimenti, rischi di iniziare una guerra dove ti troverai a combattere in un campo di battaglia che ignori completamente, contro un nemico che non conosci e con armi che nel momento del bisogno si rivelano inefficaci e spuntate. Per ottenere la fiducia dei tuoi manager, investitori e clienti, devi mostrare una totale trasparenza, devi far capire subito che sai come affrontare sia l’emergenza che la quotidianità, così come le eventuali “mutazioni”. Questo webinar che ho preparato potrebbe aiutarti a capire qualche aspetto strategico: Focus & Positioning per aziende Software

ECONOMIA: devi saper analizzare i modelli predittivi, fare dei bilanci preventivi e consuntivi, guardare i numeri e decidere se la strategia che stai usando sta funzionando o no, monitorare i costi e intraprendere delle azioni correttive. Altrimenti il “virus” si espande senza controllo e ti brucia il budget, prima che tu ti sia ripreso… mentre tu devi saper lavorare con un budget limitato e con dei risultati evidenti e misurabili, nella massima trasparenza nei confronti di chi ti dà fiducia. Questo corso potrebbe aiutarti: Presentazione M.E.D.S.

MANAGEMENT: tutto il resto del “Governo”, dell’azienda nel tuo caso, ti deve saper venire dietro: le persone devono essere correttamente gestite fuori e dentro l’emergenza, i rischi analizzati, previsti e gestiti, la corretta cultura di prevenzione e gestione deve pervadere il gruppo. E le metriche, le statistiche, i KPI devono illuminare la tua strada. Non puoi rischiare di avere persone contro, franchi tiratori, fuoco incrociato di complottisti: qua deve venire fuori il vero condottiero. Qui trovi un altro webinar su questa tematica: KPI & Metriche per Software di Qualità

SUPPORTO: devi essere continuamente pronto a supportare tutte le attività, le persone, i clienti dentro e fuori dalla tua azienda. Il virus muta: sei pronto a gestire il cambiamento della tua strategia? Il cliente/paziente si aggrava: cosa fai nel breve e nel medio termine per aiutarlo? Come tieni sotto controllo le procedure e le scorte? Tutto il mondo, esterno ed interno, ti guarda: sarai sempre capace di gestire tanto la normalità che gli imprevisti rispetto ai piani? A questo link trovi maggiori informazioni: Modellazione e Simulazione

PROCESSO: il processo di prevenzione, cura e guarigione del tuo ciclo produttivo del software è lungo e attraversa varie fasi. Le fasi vanno identificate, analizzate, le procedure create e controllate, le persone coinvolte, formate e monitorate. Stai dimenticanto qualche “farmaco” salvavita? Stai trascurando qualche particolare che con un effetto a catena ti si ritorcerà contro amplificato? Il tuo ciclo di lavoro deve essere sempre allo stato dell’arte, un’eccellenza che gli altri devono ammirare e studiare, devi essere il caso di studio per tutti, dentro e fuori dalla tua azienda. Per approfondire, guarda qua: I 10 Comandamenti del Requisito Perfetto

Il Software malato ha bisogno di M.E.D.S. 

  • Ti è piaciuto questo articolo?
  • Anche tu hai problematiche che ti sembrano minacciose da qualunque punto di vista?
  • Ci sono degli aspetti che vorresti migliorare nella tua azienda e non sai da che parte iniziare?
  • Vuoi saperne di più?

Per capire meglio come possiamo aiutarti nel tuo difficile lavoro quotidiano da “Ministro del Software”, contattaci a questo indirizzo:

ASSISTENZA@SOFTWARESICURO.IT

e scoprirai come far guarire un processo di sviluppo software malato, estirpare ogni “virus” e dare ai tuoi clienti un software sano e senza “bug”.

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