DevOps: comunicazione, collaborazione e integrazione
Il DevOps (Development Operations) è un insieme di pratiche che si ispira alle mentalità agile e lean e si basa sulla collaborazione attiva e la comunicazione fra tutti gli attori coinvolti nel business per rilasciare software in maniera continua.
Questo approccio serve a creare un ambiente lavorativo efficace e veloce, che permette alle aziende di ricevere feedback più velocemente e modificare di conseguenza i prodotti in modo più mirato ed efficace.
Inizialmente esso veniva adottato solamente dalle grandi aziende correlate al mondo del web (Netflix, Google e altri colossi del settore), ma ultimamente alcuni dei suoi princìpi sono stati introdotti in molte aziende tradizionali che desiderano adattarsi al mercato e rimanere al passo coi tempi.
Il DevOps è un universo molto variegato e ricco di sfaccettature, ma esistono degli assiomi di base riconosciuti da tutta la comunità:
- Continuous integration and testing: gli sviluppatori devono integrare il codice più volte al giorno. Esso viene poi controllato di volta in volta da un sistema di test automatico per individuare con anticipo eventuali problemi.
In questo modo, ogni volta che il team introdurrà una nuova feature avrà la certezza che essa non andrà in conflitto con l’ambiente precedente e non comprometterà l’utilizzo dell’applicativo. - Continuous delivery and deployment: gli sviluppatori devono buildare il software in modo che esso possa, potenzialmente, essere rilasciato in qualsiasi momento. Ciò è possibile standardizzando la configurazione delle varie infrastrutture.
- Continuous operations: gli sviluppatori devono gestire le modifiche del software in modo da non impedirne l’utilizzo agli utenti finali.
- Continuous assessment: gli sviluppatori devono lavorare al prodotto basandosi soprattutto su alcune tipologie di feedback in particolare:
– Feedback loops, ovvero la registrazione dell’esperienza degli utenti per tutto il ciclo di vita del prodotto.
– Planning priorization, ovvero l’assegnazione di diverse priorità ai feedback al momento della loro ricezione.
Adottando questo approccio di assemblamento flessibile, il flusso lavorativo diventerà più elastico e fluido, i rilasci saranno più piccoli e frequenti (e di conseguenza maggiormente controllabili), il time to market verrà migliorato e si potranno notare meno sprechi e costi minori sul lungo termine.