Questo sito utilizza cookie per raccogliere informazioni sull'utilizzo. Cliccando su questo banner o navigando il sito, acconsenti all'uso dei cookie. Leggi la nostra cookie policy.OK

Agile: un vero ponte tra business e It

pittogramma Zerouno

Agile: un vero ponte tra business e It

29 Apr 2011

di Giampiero Carli Ballola

Grazie a un’impostazione che considera più importante soddisfare l’utente che rispettare il contratto e privilegia la comunicazione diretta tra chi ha bisogno di una soluzione e chi gliela procura (promuovendo quindi il dialogo tra business e It), la metodologia Agile sta diventando nel mondo il modello di riferimento del nuovo sviluppo software

La metodologia Agile è in realtà un insieme di metodi di sviluppo software caratterizzati dal fatto che le richieste del committente e le relative risposte della struttura di sviluppo evolvono tramite una continua e organizzata interazione tra gruppi di lavoro interfunzionali. Scopo di questo modo di procedere è avere il massimo coinvolgimento del committente nel processo di sviluppo stesso, in modo da dare la risposta migliore e più rapida alle sue richieste. Come esposto dall’Agile Manifesto, che nel 2001 ha introdotto il concetto, si tratta di metodologie che prevedono un modo di gestire i progetti di sviluppo applicativo che incoraggia e abilita il lavoro di gruppo auto-organizzato, con frequenti controlli e adattamenti di quanto viene fatto. Inoltre promuovono la registrazione (accountability) delle attività, la raccolta delle best practices di software engineering e, soprattutto, alimentano un approccio business-minded che mantiene allineato il lavoro del laboratorio di sviluppo con le richieste dell’utente e gli obiettivi della società, superando il gap comunicazionale che ha sempre contrapposto il mondo dell’It a quello del business.

Il metodo Agile non valuta la qualità del prodotto dal punto di vista della rispondenza al contratto, ma da quello della soddisfazione del cliente. Non solo: proponendo correzioni in corso d’opera, anziché a lavoro avanzato, l’uso delle metodologie “agili” si è dimostrato utile ad abbattere tempi e costi di sviluppo delle applicazioni. Per questo si stanno rapidamente imponendo nelle organizzazioni, tanto da essere oggi molto spesso la scelta d’elezione.

Le persone in primo piano
Di metodi Agile ne esistono parecchi. Molti sono nati già prima del citato Manifesto, come Scrum, Adaptive Software Developement, DSDM, Crystal Clear, Extreme Programming e altri ancora. Alcuni invece sono maturati poi, in seguito a tali esperienze. La Agile Alliance, organizzazione non-profit nata per diffonderne l’uso, riconosce e accetta tutti quelli che rispondono ai princìpi del ‘manifesto‘, che si possono ridurre a tre punti fondamentali:
– il rapporto tra le persone è più importante dei processi e degli strumenti tecnologici. Si deve quindi instaurare un meccanismo di collaborazione con il committente che superi il contratto, salvaguardando il valore del capitale umano;
– più che aderire al progetto di partenza bisogna poter rispondere ai cambiamenti. Si deve quindi fare in modo che in ogni momento il team di sviluppo possa proporre modifiche al progetto;
– conviene produrre software funzionante più che documenti. Si devono quindi rilasciare rapidamente le versioni modificate e usare linguaggi avanzati che mantengano il codice quanto più semplice possibile, riducendo la documentazione al minimo necessario.
Una metodologia “agile” comprende quindi aspetti operativi e organizzativi. Le operazioni prevedono lo spezzettamento dei compiti in porzioni incrementali, che non richiedano pianificazioni a lungo termine e permettano di ridurre i tempi per l’iterazione dei cicli di sviluppo a intervalli tipicamente da una a quattro settimane. Ogni ciclo però deve essere completo: requirement analysis, disegno, codificazione, prove funzionali e prova di accettazione (quando il pezzo di software funzionante viene mostrato agli stakeholder, ossia a quanti sono interessati alla sua qualità). Tutto ciò facilita l’adattabilità del progetto ai cambiamenti e riduce il rischio generale.
L’organizzazione prevede la costituzione di gruppi interfunzionali e strutturati in base alle operazioni, senza tener conto dei ruoli e delle gerarchie aziendali. Chi ne fa parte si fa carico di realizzare quanto richiesto e decide autonomamente come fare. Per privilegiare la comunicazione diretta, di solito i gruppi contano un massimo di 7-8 persone e lavorano fisicamente in uno stesso spazio. Un progetto complesso richiede quindi il coordinamento di più team da parte di una figura delegata che definisca le priorità. In ogni team, infine, dev’essere presente un rappresentante della committenza, in grado di assistere il gruppo sulla risposta agli obiettivi di business di quanto si sta facendo.

Una rivoluzione che diventa norma
Lo scorso maggio Forrester Research ha pubblicato un rapporto che si basa sui risultati di una ricerca a livello globale sulla diffusione e sull’impiego di metodologie Agile, svolta nell’ottobre 2009 su circa 1.300 professionisti It e integrata con una trentina di interviste di approfondimento a fornitori e aziende utenti.
Il primo e più evidente risultato è che il metodo Agile sta rapidamente diventando la regola: per il 35% degli intervistati è l’approccio allo sviluppo primario, superando di gran lunga (se si esclude il 30,6% che non usa nessun processo formale) i metodi di sviluppo iterativo (21%) e i più tradizionali processi ‘a cascata’ (13%). Agile vuol dire però parecchie cose: i metodi di sviluppo compresi dall’indagine in quest’area sono ben tredici e, a parte Scrum impiegato da quasi un terzo del 35% citato, nessuno sembra emergere veramente.



Figura 1 – Diffusione di metodologie Agile
(cliccare sull'immagine per visualizzarla correttamente)

A questo fatto si aggiunge quanto risulta da una diversa indagine, volta a indagare il livello al quale la metodologia Agile viene applicata, dalla quale emerge che ben il 39% degli intervistati considera la propria implementazione completata e un altro 31% sente di essere già a metà strada.


Figura 2 – Quanto è avanzata l'introduzione di Agile
(cliccare sull'immagine per visualizzarla correttamente)

Questo alto livello di adozione comporta, come osserva Forrester, un significativo impatto sulle organizzazioni, che si trovano a cambiare non solo gli strumenti e i modelli di processo seguiti, ma anche, per gli aspetti organizzativi inerenti all’Agile, il modo stesso di lavorare. Forrester non aggiunge altro, ma la conclusione non può essere che una: probabilmente il mercato ridisegnerà la mappa dei metodi Agile, facendone emergere alcuni mentre altri resteranno confinati a nicchie di utenza o di offerta, ma la metodologia, come si suol dire “è qui e ci resta”. D’altra parte, Forrester fa notare come uno dei punti di forza del metodo “agile” sia la libertà, anzi l’incoraggiamento, che questo lascia riguardo la scelta degli strumenti e delle pratiche d’implementazione. In base alle situazioni specifiche, i team di sviluppo possono usare pratiche diverse o anche combinare pratiche Agile con metodi tradizionali in un approccio ibrido. In tal caso però occorrerà un maggior rigore sui processi e sui controlli.

Automazione, chiave alla scalabilità
La maturità d’adozione di cui si è detto, ha rilevato un problema (o piuttosto un vantaggio) della metodologia Agile: il fatto che per portare il modello su larga scala, applicandolo ai molti progetti che una struttura di sviluppo si trova normalmente a gestire, occorrono degli strumenti di automazione. Soprattutto tre sono le cose che vanno automatizzate. La prima è, come intuibile, lo scambio d’informazioni sullo stato dei lavori. Il metodo “agile” prevede il frazionamento del progetto su piccoli gruppi che si organizzano il lavoro a seconda dei risultati ottenuti e dei cambiamenti derivanti dai lavori fatti. Coordinarne l’attività in modo che i problemi di una non ostacolino l’avanzamento delle altre è quindi cruciale, ma se i progetti sono complessi o sono più di uno, farlo ‘a mano’, con tabelloni e fogli Excel è semplicemente impossibile. Quindi…automazione! La seconda cosa da automatizzare è la registrazione e organizzazione dei commenti e delle osservazioni che si fanno, spesso in modo informale, all’interno dei team ma che risultano utili, in retrospettiva, a snellire i processi e risolvere nuovi problemi. Anche qui, senza un sistema di supporto, è difficile ricordare lo stato di un progetto a un dato punto o trarre conclusioni utili a migliorare il lavoro. Infine, con il maturare dell’impiego di Agile, i gruppi di lavoro adottano pratiche sempre più complesse, che associano interventi architetturali, di sviluppo e di testing. Per funzionare occorre che tali pratiche poggino su una solida base d’automazione in grado d’integrare questi diversi aspetti.

Giampiero Carli Ballola
Giornalista

Giampiero Carli-Ballola, nato nel 1942 e giornalista specialista in tecnologia, collabora con ZeroUno dal 1988. Segue i processi di digitalizzazione del business con particolare attenzione ai data center e alle architetture infrastrutturali, alle applicazioni big data e analitiche, alle soluzioni per l’automazione delle industrie e ai sistemi di sicurezza.

Articolo 1 di 5