Software development: la nuova “era” della qualità

In tempi di cloud, consumerizzazione It e mobile, la qualità del software è un concetto che deve evolvere: la capacità di risposta ai business requirement non è più un parametro sufficiente. Servono analisi specifiche sulle caratteristiche non funzionali del software che ne determinino la loro capacità evolutiva in risposta ai nuovi business model. È quanto afferma in questa intervista Bill Curtis, senior vice president e chief scientist di Cast

Pubblicato il 16 Mag 2012

Nelle ultime due decadi, lo sviluppo del software si è concentrato principalmente su un modello di tipo “reattivo”, finalizzato alla creazione di soluzioni che fornissero una risposta alle necessità espresse dalle line of business o dalle direzioni aziendali. Secondo Bill Curtis (nella foto), senior vice president e chief scientist di Cast nonché direttore del Cisq (Consortium for It Software Quality) e coautore del Capability Maturity Model (Cmm), l’ultimo quinquennio “Ha contribuito a modificare questo approccio accelerando nuovi modelli di sviluppo maggiormente proattivo, soprattutto in funzione del ‘nuovo ruolo’ attribuito alle applicazioni: da strumenti operativi a veri e propri tool strategici per la produttività e la competitività aziendale”.

“Velocità di cambiamento, rendimento delle prestazioni, accuratezza delle decisioni sono requirement nuovi, elementi determinanti per la capacità concorrenziale delle aziende; in alcuni settori come quello delle telecomunicazioni e dei Service Provider o il mondo finanziario sono addirittura vitali – osserva Curtis -. La maggior parte delle infrastrutture It, per la gran parte ancora legacy (soprattutto nelle grandi realtà), risultano ancora molto, troppo, rigide per rispondere a queste nuove necessità. Accanto ai nuovi business model dovrebbero quindi strutturarsi nuovi modelli It o meglio nuovi It business model”.

Sul piano dello sviluppo applicativo significa automatizzare significativamente tutti i processi: “Anche se questa non è l’unica via da percorrere – puntualizza Curtis – è certamente uno dei passi fondamentali”.

In moltissime realtà, ci racconta Curtis, sembra infatti che i processi del ciclo di vita del software, compreso lo sviluppo, siano ancora artigianali e manuali, supportati spesso da metodologie e approcci personalizzati e poco controllati. La somma di queste scelte porta ad applicativi non sicuri e, soprattutto, poco performanti, non del tutto in grado di supportare le necessità del business, soprattutto se queste cambiano ormai rapidamente. Uno dei temi su cui Curtis focalizza maggiormente la sua ricerca e analisi è la qualità strutturale del software, ossia la validità delle soluzioni sul piano del loro sviluppo (cioè sulla qualità dell’ingegneria e del codice). “Negli ultimi anni la qualità strutturale ha assunto un ruolo sempre maggiore perché ci si sta rendendo conto che se un’applicazione è ben ingegnerizzata, oltre ad essere sicura, robusta e performante, sarà anche di più facile utilizzo e, soprattutto, di più facile trasformazione/modernizzazione”, precisa Curtis.

Un aspetto non trascurabile oggi, nell’era del cloud computing, della consumerizzazione It e del mobile, dove il concetto di qualità non può più rimanere “confinato” alla capacità di risposta alle specifiche richieste ma deve passare dall’analisi di caratteristiche non-funzionali (quali robustezza, sicurezza, performance, trasferibilità e variabilità) grazie alle quali si può “Passare a un approccio al software development maggiormente proattivo, basato sulla facilità e capacità delle applicazioni di essere soggette a miglioramenti e modifiche, venendo così incontro alle nuove esigenze di dinamicità e agilità delle aziende”, sottolinea Curtis.

Sul piano del mobile, per esempio, Curtis evidenzia come la maggior parte delle applicazioni sfrutti oggi il linguaggio Java, “discretamente sicuro, forse, ma decisamente meno performante rispetto ad altri linguaggi” (questo è ciò che emerge dalle analisi specifiche di Cast condotte periodicamente su organizzazioni aziendali in Usa, Europa e India).

Ed è per questo motivo che, in assenza di regole standardizzate di valutazione della qualità strutturale e di metodologie condivise, Cast propone un sistema di misurazione “che parte dall’analisi dei singoli linguaggi [fino a svariate centinaia di milioni di righe di codice contenute nelle soluzioni – ndr] fino ad arrivare all’analisi delle interazioni tra layer tecnologici e a metriche in grado di delineare l’indice totale di ‘salute’, ossia la qualità strutturale delle applicazioni non solo in virtù della loro risposta al business, quanto della loro capacità di performare ed evolvere in modo facile e rapido”, conclude Curtis.

Valuta la qualità di questo articolo

La tua opinione è importante per noi!

Articoli correlati

Articolo 1 di 2