Da una recente ricerca condotta dalla società Technavio (report “Global Software Testing Service Market”) emerge una crescita media del mercato dei servizi e degli strumenti di software testing di circa il 9-10% (dal 2010 ad oggi, con previsioni di crescita della stessa grandezza anche per i prossimi anni). Benché tale crescita non sia uniformemente distribuita nei vari Paesi, il segnale è da leggere positivamente sul fronte degli impegni volti a migliorare la qualità del software. “Il dato è sicuramente incoraggiante – commenta Gualtiero Bazzana, presidente ITA-STQB e amministratore delegato di Alten Italia, aprendo i lavori a Milano, della terza edizione dell’Italian Software Testing Forum – e rappresenta un segnale importante del fatto che le attività di assicurazione e controllo della qualità continuano ad avere e sempre più avranno rilevanza nelle strategie dell’It, in conseguenza della pervasività del software nei sistemi e nei servizi che ogni giorno, come utenti, utilizziamo”.
Trend che trova conferma anche dalla progressiva crescita della cultura legata alla certificazione delle competenze. “A due anni di distanza da quando abbiamo iniziato a lavorare portando in Italia lo schema internazionale di certificazione delle competenze di software engineering, delineato dall’organizzazione internazionale Istqb (International Software Testing Qualifications Board), possiamo ‘celebrare’ le mille certificazioni raggiunte – osserva Bazzana -. Una massa critica significativa a livello nazionale che si confronta con un trend di crescita a livello mondiale molto marcato (oltre 300 mila le certificazioni mondiali con una crescita media, su base trimestrale, di circa 12 mila certificazioni a livello globale)”.
“Tuttavia, la qualità di servizi, prodotti e soluzioni software intensive non si raggiunge soltanto con la verifica delle applicazioni prima del rilascio in produzione con le attività di testing, ma si imposta fin dall’inizio, ossia fin dall’attività di definizione dei requisiti – commenta ancora Bazzana -. Riconoscendo questa esigenza da parte del mercato, Ita-Stqb ha lanciato quest’anno la certificazione anche in ambito requirements engineering”.
Visione confermata anche da Werner Henschelchen, general manager della Global Association for Software Quality (Gasq): “Il software sta diventando molto complesso, ma anche pervasivo in contesti nuovi. Pensiamo, ad esempio, ai sistemi di controllo delle autovetture, ormai tutte basate su software, ma anche all’infotainment e ai servizi dedicati all’automobilista. La qualità del servizio dipende interamente dal software e se pensiamo ai dati di un report condotto da Standish Group, secondo il quale il 46% dei progetti software risulta sempre più costoso rispetto alle previsioni iniziali e il 19% dei progetti addirittura fallisce [Chaos Report – indagine annuale condotta su 365 aziende americane analizzando oltre 8000 progetti applicativi – ndr], è evidente che la gestione dei requisiti diventa sempre più strategica ai fini di una migliore qualità del software”.
Lavorare su requisiti e analisi del rischio
Migliorare la qualità delle applicazioni lungo tutto il loro ciclo di sviluppo e vita è stato il ‘mantra’ del Software Testing Forum 2013, ripreso più volte anche dai vari interventi che si sono susseguiti nella giornata.
Il “file rouge” che ha caratterizzato le presentazioni dei vendor (Alten, Ca Technologies, Ibm, Micro Focus, Microsoft, Hp) riguarda la governance dell’interno ciclo di vita applicativo e del Software Development Lifecycle Management (Sdlm), a partire dalla definizione dei requisiti e dall’analisi dei rischi, attività tipicamente “di business”, ma che applicata al mondo dello sviluppo software e del testing consente di identificare le vulnerabilità, ossia valutare probabilità e impatti di ciò che può influire sul servizio applicativo e, quindi, sulla sua qualità.
Ritorna su questo concetto anche Bill Curtis, director Cisq-Consortium for It Software Quality e senior Vp & Chief Scientist dei Research Labs di Cast, che partendo dalla metafora del “technical debt” [termine utilizzato nell’ambito del software engineering per sottolineare le problematiche che possono sorgere da un approccio allo sviluppo del software “quick and dirty”, mirato a velocizzare il lavoro piuttosto che produrre codice di qualità – ndr] spiega come “una mancata visione alla qualità del software oggi ha conseguenze dirette sulla produttività del business aziendale”. “Gestire adeguatamente il ‘technical debt’ significa gestire la produttività aziendale: rilasciare in produzione una soluzione non sufficientemente testata e non rispondente a pieno ai requisiti di business genera un ‘debito tecnico’ che si traduce in perdita di redditività a causa della sua inefficacia rispetto alle necessità degli utenti e del mercato”.
Le esigenze di time-to-market e riduzione dei costi delle aziende non vanno però ignorate. Il testing applicativo richiede solide competenze e la qualità del servizio applicativo non può più prescindere da un’adeguata testing governance. In aiuto, però, vengono le metodologie Agile, la standardizzazione e l’automazione dei processi, gli approcci collaborativi tra team (DevOps in primis) e, naturalmente, le tecnologie di Alm (Application Lifecycle Management), software development, testing automation eccetera.
Alm per efficienza e produttività: i dati di una ricerca
“L’attuale e profonda trasformazione dell’It pone ancora l’Alm al centro della questione con oltre il 66% dei direttori It che considera oggi prioritari anche gli investimenti nel supporto al ciclo di vita delle applicazioni” sottolinea Alfredo Gatti, managing partner di Netxvalue presentando i dati di una recente ricerca condotta su 100 Cio di aziende italiane.
Efficienza e produttività dei team rimangono le ragioni principali per adottare strumenti Alm che si basano su ambienti e tecnologie completamente nuovi, come il cloud computing e gli sviluppi data driven, per non parlare delle app associate alla rapidissima diffusione di strumenti mobile e delle relative piattaforme.
In particolare, le motivazioni (di business) che spingono l’adozione di strumenti Alm sono da ricondurre a fattori organizzativi interni nel 63% dei casi, ai cambiamenti tecnologici in atto (53%) e alle richieste da parte del mercato e dei clienti (27%).
“Eppure – commenta Gatti – entrando nel merito delle strategie adottate dalle aziende, risulta che solo nel 39% dei casi esiste già un approccio consolidato di Alm e solo il 36% degli intervistati conferma l’adozione di metriche di misurazione della qualità e del valore del servizio applicativo”.
Non molto confortanti anche i risultati relativi all’adozione delle metodologie. Nel 76% delle aziende non è ancora stato adottato il framework Agile e questo per un problema di competenze (espresso dal 45% dei Cio). Eppure, l’offerta tecnologica è oggi trainata da Agile e cloud, anche se rimangono lacune soprattutto nelle aree di definizione e gestione dei requirements e in quelle per la gestione di elementi non conformi ai canoni di standard (come Agile).
Un’offerta che non tarderà ad arrivare nelle aziende, a giudicare dalle previsioni di budget dedicato in modo specifico all’Alm, in crescita (anche di oltre il 20%) per il 41% dei Cio interpellati. E le ragioni sono molteplici; a spingere, soprattutto, alcuni fattori esterni come la velocità di cambiamento fuori dall'impresa (77%). Tra i fattori interni, invece, la molteplicità di ambienti e infrastrutture (per il 43% dei Cio) che richiede un modello più strutturato di governo applicativo. Motivo per cui, analizzando la ripartizione delle spese specifiche per l’Alm, il 37% dei costi è da attribuire alle risorse umane (competenze), il 36% è dedicato agli in strumenti e soluzioni software, il 27% ai servizi It proposti dai vendor.
Ad ogni modo, l’Alm sta assumendo una nuova connotazione, uscendo dai ranghi dell’It, non tanto sul fronte della gestione, dei ruoli e delle risorse (che rimangono nell’80% dei casi di dominio del Cio) quanto sul suo impatto e valore per il business. Gli obiettivi da raggiungere attraverso l’Alm, infatti, sono: migliorare rispondenza delle applicazioni alle esigenze aziendali (65%), più velocità di risposta alle esigenze degli utenti e del business (49%), rispetto delle tempistiche concordate (61%), disponibilità e performance delle applicazioni in produzione (60%).