Il metodo di sviluppo Agile è tra le priorità delle direzioni It in molte delle Business Technology Agenda prese in esame da Forrester nel corso del 2015, ma molti faticano ancora a raggiungere in modo diffuso i reali benefici ‘promessi’ dalla metodologia; spesso rimangono ‘confinati’ all’esperienza di singoli team che la adottano per una parte minoritaria dei processi di sviluppo software e rilascio delle applicazioni. Per riuscire a trarre una fotografia concreta di ciò che in effetti sta accadendo all’interno delle organizzazioni It, in particolare sul fronte dello sviluppo applicativo con metodologie Agile, Forrester ha monitorato ed intervistato, in tutto il mondo, 215 ‘Agile pratictioner’ (cioè esperti della metodologia in quanto già applicata a vari livelli all’interno della propria azienda di riferimento) nel corso del 2015. Ad illustrarne le evidenze emerse in termini di metodi, organizzazione e pratiche in uso è Diego Lo Giudice, vice president e principal analyst (nell’ambito dell’application development & delivery) di Forrester.
La demografia della metodologia Agile
Se guardiamo alla fotografia demografica, il 61% degli intervistati [sul panel di 215 professionisti monitorati da Forrester nel corso del 2015 – prevalentemente direttori e manager, 48%, e top executives, 21% – che hanno mostrato di avere conoscenze abbastanza approfondite circa le pratiche Agile adottate dalla propria azienda – ndr] ammette di utilizzare la metodologia Agile all’interno di molteplici team di lavoro, sia a livello di dipartimento It sia a vari livelli aziendali. Solamente il 27% del panel utilizza Agile all’interno di un unico team.
Nonostante i partecipanti alle indagini di Forrester siano prevalentemente esponenti di grandi realtà aziendali (il 30% proviene da imprese con oltre 20mila dipendenti, il 23% fa parte di realtà con un numero di impiegati compreso tra 5mila e 20mila, il 22% rappresenta aziende tra i mille ed i 5mila dipendenti ed il restante 25% appartiene a realtà con meno di mille impiegati), sul fronte Agile sono le piccole realtà a muoversi con più dinamismo: “il 65% dei rispondenti che appartengono al gruppo delle piccole imprese – si legge nell’analisi di Lo Giudice – dichiara che ad utilizzare la metodologia Agile è il 100% dei team di sviluppo [fonte: Forrester’s 2015 Global Agile software application development online survey – ndr]”.
Andando poi ad analizzare la composizione dei team di sviluppo e test applicativo, le indagini del 2015 condotte da Forrester mostrano staff interni composti prevalentemente da un numero di sviluppatori tra 11 e 49 (nel 36% dei casi – figura 1), mentre le risorse esterne, fatto 100 il numero totale di riferimento, sono distribuite tra 1-10 addetti (29%) e 11-49 (29%); in entrambi i casi, sia che si tratti di risorse interne sia esterne, le percentuali di chi può contare su oltre 100 sviluppatori sono decisamente minori, 17% se si guardano i team esterni, 21% invece nei team interni, e si abbassano notevolmente se si guarda a team più corposi, oltre i 500 addetti (appannaggio probabilmente delle grandi multinazionali dell’Ict e delle grandi software house).
Quadro roseo su ‘pratiche e organizzazione’
Analizzando la struttura organizzativa dei team di sviluppo Agile [il panel dei rispondenti in questo caso scende a 184 perché poco più del 14% dei 215 intervistati iniziali dichiara di non utilizzare ancora la metodologia o quanto meno non in modo stabile e diffuso da poterne trarre evidenze da condividere in una survey sul tema – ndr], la scelta di fare affidamento su team distribuiti appare la norma (solo il 10% dei rispondenti dichiara di avere team situati nella medesima location – figura 2). Tuttavia, guardando in dettaglio le risposte, è bene evidenziare che in linea di massima prevalgono certamente team distribuiti ma dislocati all’interno della stessa location aziendale (nel 71% dei casi, più del 50% dei team di sviluppatori ‘risiede’ nella stessa location); solamente nel 29% dei casi prevalgono team dislocati in luoghi diversi.
La ‘lettura’ di dettaglio di questa fotografia la si evince da altri risultati emersi dall’indagine ed illustrati nel report di Lo Giudice: la porzione di professionisti con quattro o più anni di esperienza sul fronte della metodologia Agile sta crescendo significativamente all’interno delle aziende (erano il 18% nel 2013, hanno raggiunto il 40% nel 2015); questo evidenzia che a fronte di una superiore maturità nella conoscenza dell’Agile, nonché ad una scalabilità crescente nella sua adozione, le aziende preferiscono dotarsi di team interni ‘uniti’ anche dal punto di vista della location ai fini di una maggior collaboration. Scelta certamente comprensibile all’inizio dei percorsi di adozione delle pratiche Agile ma che potrebbe anche venir meno laddove i processi metodologici fossero pervasivi ed efficaci anche sul piano della governance e dell’automazione.
Una ulteriore risposta alla fotografia emersa circa la ‘morfologia’ dei team distribuiti si evince dall’analisi delle pratiche core in ottica Agile in uso nelle organizzazioni: iterazioni brevi (tra le 2 e le 4 settimane) e riunioni Scrum quotidiane sono infatti le due attività core maggiormente in uso (rispettivamente nell’86 e nell’84% dei casi – su un panel di 176 rispondenti), cui si aggiungono i rapidi e continui feedback (approcciati dal 78% dei rispondenti) che, evidentemente, richiedono a livello organizzativo una certa ‘vicinanza’ dei team.
Interessante notare, rispetto alle pratiche più in uso, le posizioni degli approcci di continuous integration e continuous delivery (figura 3), ancora ‘fermi’ ad una adozione limitata a poco più del 50% dei casi ma che, stima Forrester, già a partire dal 2016 vedranno una significativa crescita di interesse ed adozione, soprattutto a fronte dello sviluppo di servizi web e applicazioni mobile (stimate come aree di importanza critica per oltre il 90% dei 215 intervistati a livello globale).
Un ulteriore dato dal quale si deduce la crescita nei prossimi mesi/anni delle ‘prassi metodologiche’ sul tema del miglioramento continuo riguarda lo sviluppo di Api – Application Programming Interface – già oggi pratica core nell’85% dei casi ma destinata a crescere ulteriormente a fronte di modelli It sempre più ibridi.
Maglia ‘nera’ per il l'Agile testing
Se sul piano dell’organizzazione dei team e delle pratiche in uso il quadro è roseo sia per le situazioni analizzate nel presente sia per le valutazioni e le analisi future, al mondo del testing spetta una maglia nera che denota quanto ancora sia lungo e complesso il cammino verso l’Agile. “Benché l’Agile testing sia ormai maturo come metodologia e tecnologia, i processi di test rappresentano ancora per molte realtà il principale freno ad uno sviluppo applicativo realmente rapido”, scrive nel suo report Lo Giudice.
Il perché di una simile visione da parte dei team interpellati probabilmente risiede nel fatto che la maggior parte dei test ancora oggi è svolta manualmente (sempre nel 49%, spesso nel 33% dei casi, su un panel di 160 professionisti intervistati – figura 4). “L’automazione dei processi sta crescendo sia per i test di non regressione sia per i test funzionali, passando da un’adozione limitata al 10% delle aziende degli anni scorsi ad un livello che oggi oscilla tra il 30 e il 53%. Nonostante il miglioramento – commenta Lo Giudice – la crescita risulta ancora troppo lenta per non compromettere l’agilità”. Soprattutto se si guarda ai benefici, attesi dai più ed ottenuti da chi sta già adottando la metodologia in modo pervasivo, ‘promessi’ dall’Agile che proprio sul fronte del testing offre molteplici aree di intervento e miglioramento. Escludendo il primo vantaggio riconosciuto da quasi la totalità dei rispondenti, ossia il miglior allineamento tra It e business, non certo perché non importante ma perché di natura più generale, gli altri due benefici citati dagli esperti che meritano di salire sul podio sono infatti:
il rilascio più rapido delle applicazioni, garantito anche attraverso l’automazione dei processi di test (da notare come il testing automatizzato sia indicato quale vantaggio da chi ha già adottato pratiche Agile in modo diffuso mentre sia considerato un freno, laddove non automatizzato, da chi è ancora ai primi passi del percorso di adozione;
le maggiori opportunità di interventi di correzione lungo tutto il ciclo di sviluppo, anche in questo caso raggiungibili attraverso il testing continuo e non più lasciato alla fine del processo prima della messa in produzione dell’applicazione.
Per maggiori informazioni: Devops e agile nello sviluppo software