DevOps-sviluppo agile-AFB Net

Il DevOps come chiave del business agile

Il DevOps è un insieme di pratiche e di cambiamenti culturali, supportati da tool di automazione e processi Lean, attraverso i quali le organizzazioni possono offrire servizi di migliore qualità e applicazioni più veloci.

Ho considerato, nel mio precedente articolo, come la riduzione dei costi e l’ottimizzazione dei processi di automazione possano avvalersi di una metodologia basata sull’empatizzazione con le esigenze della domanda e sulla prototipazione continua.

Si tratta dello sviluppo incrementale che propone il Design Thinking, come modello agile con soluzioni spesso non preventivabili all’inizio del processo: trova applicazione anche nell’implementazione di nuovi software e prevede una collaborazione stretta tra chi sviluppa e chi utilizza il software.

I software sviluppati in questa ottica sono basati su moduli e microservizi facilmente riassemblabili e considerano un nuovo modello multidimensionale di connettività, che includa nelle attività quotidiane anche i clienti ed i fornitori.

DevOps deriva dalla contrazione di due termini fusi insieme, development e operations, e rappresenta il superamento di un processo IT verso quello che è un processo di business, grazie al tentativo di conciliare vedute differenti nell’organizzazione aziendale.

La veduta dello sviluppatore è finalizzata alla creazione di nuovi prodotti e risponde alla necessità di cambiamento, mentre la veduta del sistemista tende al mantenimento degli stessi prodotti e risponde alla necessità di consolidamento e stabilità.

Innovazioni tecnologiche quali il cloud computing e la virtualizzazione, così come gli strumenti di collaboration in campo enterprise, facilitano la possibilità di confronto in tempo reale fra chi si occupa di deployment e chi si occupa di development.

In questo modo aumenta la possibilità di confronto lungo tutto il processo e la velocità di verifica e gestione della complessità di un’applicazione, con testing ad ogni modifica e costruzione di molti prototipi, in un approccio di Continuous Delivery, ovvero di miglioramento continuo.

I tanti piccoli cambiamenti che possono avvenire in corso, grazie al dialogo fra sviluppatori e sistemisti, permettono di non dover validare un’intera applicazione soltanto alla fine del ciclo di sviluppo ed evitano, ancor peggio, di arrivare a proporre al cliente un prodotto di cui non si conoscano bug e qualità di funzionamento.

Il DevOps rende possibili cicli di release più rapidi, per soddisfare più prontamente l’utente finale ed abbattere gli alti costi di assistenza per i prodotti non adeguatamente testati.

Durante le fasi di lavoro le strategie DevOps permettono ai due team di lavorare sinergicamente, senza dover attendere l’uno il compimento delle attività dell’altro per poter procedere: questo approccio prevede a monte una scelta di comunicazione costante ed una mentalità di tipo sistemico, per ampliare il feedback interfunzionale e supportare lo sviluppo e la distribuzione agile.

Il cuore della strategia DevOps è l’attuazione del cambiamento che riguarda le fasi di sviluppo e creazione dell’automazione, testing, installazione, distribuzione, monitoraggio e valutazione dei riscontri da parte dell’utente finale.