Credito:MIT Sloan School of Management
Quanto sei sicuro che il tuo software funzionerà nel modo previsto nel momento della verità? Quanto sei sicuro che un sistema che va giù da qualche altra parte nel tuo settore non ti toglierà, pure, o vice versa?
Rendere il tuo software "sicuro e sano" richiede un mix di iper-consapevolezza, buona pianificazione e lungimiranza, e imparando velocemente dagli errori, secondo Frédéric Véron, il responsabile delle informazioni e responsabile della sicurezza e della solidità di Deutsche Bank.
"Sicurezza e solidità riguardano 'Come possiamo rendere l'azienda più sicura e solida, fin dall'inizio?" Véron ha dichiarato il 23 maggio al MIT Sloan CIO Symposium. "Non solo quando accadono le cose, ma prima che le cose accadano."
Ha detto che arrivare a quel punto significa conoscere il tuo software meglio che mai.
Sii iper-consapevole
Primo, Veron ha detto, molte organizzazioni non sanno esattamente come gli utenti finali utilizzano il loro software:quali funzionalità utilizzano o non utilizzano, per cosa li usano, e se stanno utilizzando il software per scopi per i quali non era originariamente previsto.
Ha sostenuto l'adozione di una posizione di "iper-consapevolezza" che implica sapere come tutto il tuo software viene effettivamente utilizzato giorno per giorno, garantire che tutte le parti interessate allo sviluppo comprendano l'intera portata del prodotto, e prendendo continuamente metriche di base per capire quali possono essere considerate condizioni operative normali per un sistema.
"La connessione dei diversi contesti, non solo persone IT, ma operazioni e affari, anche tu stai collegando tutto questo insieme, in modo che quando devi occuparti di un sistema, saprai cosa è normale, " disse Veron.
Per ottenere quella prospettiva dell'utente finale, inviare gli sviluppatori a osservare gli utenti del software in azione.
Conoscere e comprendere ogni aspetto del software e dei sistemi con cui dovrà interagire, dalla progettazione alla costruzione, alla produzione e alle operazioni consente all'azienda di "andare oltre DevOps per vedere l'intero stack, concentrarsi sull'esperienza del cliente, " Egli ha detto.
Garantire la prontezza operativa
Lo sviluppo di software sicuro e solido non riguarda solo la codifica e l'invio del prodotto finito alla produzione, ha detto Veron. Per garantire che un sistema sia pronto operativamente, coinvolgere tutti nelle prime fasi del processo di pianificazione. Véron chiama questo approccio al processo di progettazione "spostandosi a sinistra".
"Tutte le diverse procedure che saranno necessarie per mantenere il sistema in modalità di produzione devono essere pensate in anticipo. Puoi sempre avvitare tutto in un secondo momento, ma ti costerà più soldi e non sarà nativo né funzionerà altrettanto bene, " disse Véron. "Nel frattempo, corri il rischio che il tuo sistema non funzioni."
Véron misura costantemente la disponibilità di nuove versioni software, e ha detto che rifiuterà le modifiche che non ottengono un punteggio superiore alla versione precedente.
fallire velocemente, adattarsi velocemente
Adottando Agile e DevOps, progettati per consentire flessibilità iterativa nello sviluppo del software e una più stretta collaborazione con i clienti, ti permette di assumere una posizione che valorizzi "fallire e adattarsi velocemente".
Lo sviluppo e il rilascio di prodotti minimi praticabili aiuta un'azienda a confermare che il suo prodotto è sulla strada giusta, imparare da quello, e adattare il concetto e il design al modo in cui le persone lo utilizzano. All'inizio il processo può sembrare più lento rispetto ai metodi di sviluppo tradizionali, Veron ha detto, ma alla fine accelera il processo.
"Il punto centrale dell'agile consiste nell'adottare la filosofia in cui si suddividono gli sforzi maggiori in sforzi più piccoli, permettendoti di fare rilasci incrementali in modo da poter apportare una piccola modifica, e se non funziona puoi estrarlo rapidamente dalla produzione senza influire sull'intera faccenda, " disse Veron.