DevOps: approccio Agile e metodologie per il delivery

Lino Mari

Il percorso che inizia a partire dall’idea di un nuovo prodotto o servizio, fino alla sua realizzazione e alla disponibilità sul mercato, è diventato cruciale nelle attività moderne.

Soprattutto se parliamo di produzione di applicazioni software. Una nuova applicazione deve avere un vantaggio competitivo dato dall’innovazione, ma anche dal tempo di delivery e disponibilità pari alla velocità del mercato stesso.
Ogni lentezza in tutto il processo, dall’idea al prodotto finale, può significare l’arrivo sul mercato quando è ormai troppo tardi.

L’approccio waterfall, al quale molte aziende fanno ancora riferimento, rappresenta bene i grandi progetti monolitici, con lunghi tempi di delivery e requisiti funzionali statici che abbassano la velocità di esecuzione e quindi il valore e il vantaggio competitivo.

Al contrario le metodologie agili puntano a ridurre i tempi in tutto il processo attraverso l’iterazione continua di piccoli team di lavoro liberi da processi monolitici e burocratici. L’iterazione continua, fatta di piccoli step, consente di rivedere quello che si sta costruendo intorno al contesto dei bisogni del cliente, aumentando la velocità e riducendo la rielaborazione intensificando gli sforzi intorno all’idea.

Il percorso Agile
La metodologia Agile è entrata nei processi dello sviluppo software creando non poco scompiglio nell’ultimo decennio. Anche se la metodologia non è così recente – è stata introdotta negli anni ’70 – ha cominciato ad essere adottata solo dopo la diffusione del Manifesto Agile nel 2001. Agile intende contrapporsi alla logica waterfall, ovvero ai processi lineari, con l’introduzione di piccoli team denominati “scrums” che lavorano su diversi processi con durata di due settimane, denominati “sprint”, i quali consentono di valutare e rivalutare continuamente lo stato del progetto e la direzione stessa.

All’interno degli scrums è presente anche il cliente che ha la possibilità così di fornire il suo feedback a intervalli regolari. Questa è una componente fondamentale perché consente di adattare continuamente le scelte e, quindi, di ottenere miglioramenti continui.

Alla fine di ogni sprint c’è un momento dedicato alla retrospezione, ovvero all’analisi di cosa è andato bene e cosa è andato male, per consentire di evitare il ripetersi di errori e assicurarsi che quanto fatto offra effettivamente valore al prodotto. Agile si basa sulla costruzione di team orientati alla funzione ed estremamente collaborativi per assicurare la condivisione delle informazioni e dei feedback verso tutti, cliente compreso.

Questo consente all’organizzazione di prendere decisioni rapidamente per rispondere alle reali esigenze del cliente e anche di riorganizzarsi più velocemente per affrontare nuove esigenze di un mondo in veloce e costante trasformazione. Se la metodologia Agile ci può sembrare di facile attuazione, la sua adozione e la scalabilità all’interno delle organizzazioni non lo è, ma di questo ne parleremo un’altra volta.