La qualità strutturale del software applicativo, quella cioè che riguarda gli aspetti ‘interni’, architetturali e di codifica, ha grande importanza nell’esecuzione dei processi aziendali, così come influisce parecchio sulla facilità con la quale il software può essere mantenuto e modificato in funzione di nuove esigenze. Sebbene questi concetti siano ben compresi dai responsabili It, la qualità strutturale delle applicazioni è però spesso trascurata per colpa di tre cause concomitanti: la prima è, banalmente, la mancanza del tempo e del denaro per occuparsene (tempo e denaro che, paradossalmente, mancano proprio perché assorbiti dalla manutenzione del software stesso); la seconda è la scarsità di persone capaci di farlo (e ciò vale soprattutto per le applicazioni legacy, sulle quali poggiano tuttora molti processi vitali per l’impresa); la terza è il fatto che non esistono né regole standardizzate di valutazione della qualità strutturale né metodologie di intervento alle quali attenersi.
Di questi problemi, complessi per il coinvolgimento di fattori tecnologici, economici e umani, si è ampiamente discusso in occasione dell’Executive Dinner “Application Quality Analysis e performance aziendali”, svoltosi recentemente a Milano e organizzato da ZeroUno in collaborazione con Cast. L’indubbio interesse del tema proposto, che riguarda problemi relativamente poco indagati, ha contribuito a creare un evento ricco di partecipanti (più di venti tra Cio, It Manager e altri professionisti aventi diverse aree di competenza e responsabilità) che hanno dato vita a uno stimolante
dibattito.
Come di regola, l’incontro è stato aperto da Stefano Uberti Foppa (nella foto a sinistra), direttore di ZeroUno e moderatore della serata, che ha focalizzato il punto d’interesse dell’Application Analysis nei confronti delle imprese. Questo nasce dalla complessità competitiva che le aziende si trovano a dover gestire nel momento in cui, passata la ‘fase acuta’ della crisi economica, ci si deve preparare a un recupero che, comunque si evolva, si svolgerà in un quadro che non sarà più quello di prima. Basti pensare, per dire, a quelli che ancora si chiamano ‘paesi emergenti’, ma che già condizionano l’economia globale. In questa fase l’It ha il ruolo chiave di strumento abilitante della flessibilità strategica e operativa richiesta dalla situazione. È quindi importante che tale strumento sia a sua volta flessibile e ‘snello’, facile da adeguare a improvvise necessità. Migliorare la qualità del software avvantaggia l’It come il business: la prima nell’accelerare la delivery delle applicazioni e ridurre i costi di sviluppo e manutenzione; il secondo nel garantire un alto livello di servizio ai processi aziendali e quindi, in ultima analisi, nel ridurre il rischio operativo.
Come è cambiata la qualità del software
Ruolo e importanza della qualità del software sono stati esposti in dettaglio da Eugenio Capra (nella foto a destra), docente di Sistemi Informativi presso il Politecnico di Milano. Dopo aver osservato come la “proletarizzazione”, così l’ha definita, del ruolo dei programmatori (dovuta anche a una grossolana concezione della riduzione dei costi a seguito della compressione dei budget) abbia portato a uno scadimento della qualità intrinseca dei prodotti, Capra ha esposto i dati emersi da due ricerche svolte dal Politecnico sul tema. Una prima ricerca, interessante ai fini appunto della considerazione del fattore umano e organizzativo, è stata svolta su applicazioni scritte in codice Open Source (prevalentemente Java). Ne è emerso che quanto più il software viene sviluppato da persone agenti sul modello della comunità, con processi di comunicazione e collaborazione non formalizzati, tanto più è alta la qualità intrinseca del prodotto, dovuta al fatto che per poter lavorare in modo distribuito e non coordinato il codice deve essere ben descritto, strutturato e commentato. La contropartita è la bassa efficienza del modello, con costi elevati in termini di giornate/uomo, che lo rende poco applicabile a realtà dove il time-to-market è determinante. Occorre quindi che l’efficienza produttiva del modello formalizzato e per così dire industrializzato, “sia sostenuta da metodologie di sviluppo che ne limitino gli errori senza però ‘burocratizzare’ il processo”. La seconda ricerca, più tecnologica, ha studiato l’efficienza energetica, cioè il peso dell’applicazione sul server in termini di consumo di risorse di calcolo e quindi di energia (vedi a questo proposito gli articoli pubblicati nell’area Green Economy del sito www.zerounoweb.it). È dimostrato come vi sia un rapporto diretto tra la qualità del software e la sua performance energetica e, altresì, come vi sia un forte divario a favore dei prodotti scritti ad hoc rispetto a quelli costruiti assemblando elementi forniti da framework applicativi, divario che cresce con la dimensione dell’applicazione stessa.
L’intervento di Capra si è concluso con la proposta di un approccio sistemico allo sviluppo che ne consideri cinque dimensioni: il numero di persone coinvolte; la loro cultura e attitudine al lavoro di gruppo; il numero di cambiamenti atteso per il prodotto; la sua criticità per il business; le competenze tecnologiche disponibili. Lo scopo è trovare un bilanciamento tra rigidità e agilità del modello di sviluppo che consenta un governo adeguato al singolo progetto e introduca metriche di controllo riferibili a tre tipi di qualità: interna, o strutturale; esterna, che impatta sull’utente, e d’uso, che Capra definisce come “il bilanciamento di qualità interna ed esterna in rapporto al contesto nel quale l’applicazione viene utilizzata”.
Attenzione alle caratteristiche interne
La serata è proseguita quindi con l’intervento probabilmente più atteso e stimolante in agenda, e cioè quello di Bill Curtis (nella foto a sinistra), che oltre ad essere Senior Vp e Chief Scientist di Cast è anche direttore del Cisq (Consortium for It Software Quality) e coautore del Capability Maturity Model (Cmm), un vero ‘guru’, quindi, del settore. Con il supporto dei risultati di uno studio realizzato ad hoc, Curtis ha dimostrato come la crescente complessità delle applicazioni faccia sì che l’anello debole della catena non sia tanto la correttezza del codice quanto la funzionalità delle interazioni tra i diversi livelli applicativi (dal nucleo logico all’interfaccia ) e tra le componenti funzionali. Occorre quindi un’analisi qualitativa che valuti in che misura i singoli componenti collaborino nella delivery delle funzioni di business. Ciò comporta il superamento del concetto classico di qualità misurata sulla risposta alle specifiche per dare più attenzione alle caratteristiche interne, non funzionali, del prodotto, anche perché, ha osservato Curtis, “una scarsa qualità strutturale rende più difficile apportare miglioramenti e modifiche alle applicazioni limitando di fatto le esigenze di agilità dell’impresa”. Questo concetto inizia a diffondersi e ci si sta quindi avviando verso quella che Curtis chiama “la quarta ondata del software engineering”, che dopo l’evoluzione dei linguaggi, dei metodi e dei processi incomincia a concentrarsi sul prodotto: “L’ingegnerizzazione della qualità strutturale (Software Quality Enginnering – Sqe) supplementa il Cmmi (Capabily Maturity Model Integration) nell’estrarre dalle applicazioni maggior valore per il business. Il Cmmi – ha proseguito Curtis – sta al miglioramento dei processi come la Sqe sta al miglioramento del prodotto e fa dello stesso Cmmi una solida base per la costruzione di un programma di application quality”.
Curtis ha quindi brevemente tratteggiato la metodologia Cast per la misura della qualità strutturale che parte dall’analisi dei linguaggi per giungere, attraverso la costruzione di una vasta base informativa (Application Knowledge Base), a metriche in grado di dare un “indice di salute” del prodotto in oggetto. Queste indicazioni sono utilizzabili sia dai Project Manager e dagli sviluppatori sia, nei loro valori di sintesi, dagli It executive, mancando oggi – ha sottolineato Curtis – dei benchmark standardizzati e riconosciuti sulla qualità del prodotto. Il lungo intervento del direttore del Cisp e chief scientist di Cast (circa 40 minuti) si è infine concluso con la presentazione e il commento dello studio internazionale sulla qualità del software svolto dalla sua società, del quale ZeroUno pubblicherà prossimamente un ampio estratto.
Il confronto
Il dibattito tra gli intervenuti è stato introdotto da Giuseppe Salomoni (nella foto a destra), Head of Architecture, Innovation & Strategic Projects di Ugis, il quale ha esposto la propria esperienza sull’uso di strumenti di analisi e misura della qualità del software, il cui impiego era finalizzato a quattro obiettivi: “Il primo era capire con quali metodologie si potessero modernizzare le applicazioni per aumentarne la flessibilità”. Il secondo punto era quello dei consumi (“i Mips di un mainframe costano cari, se abbiamo controlli puntuali sulla qualità possiamo ridurre la spesa“); seguiva quindi il controllo degli asset applicativi e dei relativi costi e, infine, la valutazione del dimensionamento della stessa struttura It. Si tratta, pertanto, di problemi che investivano aspetti sia tecnologici sia organizzativi e le analisi di qualità condotte periodicamente sul lavoro svolto e in corso di svolgimento hanno fornito un importante supporto alla gestione operativa della funzione It.
L’esperienza descritta ha stimolato una serie d’interventi che hanno dato vita a un dibattito molto vivace, con un continuo coinvolgimento degli speaker (Capra e Curtis), ai quali si è aggiunto Massimo Crubellati (nella foto a sinistra), Country Manager di Cast. Per dare una sintesi, sia pure incompleta, di quanto si è detto citeremo gli argomenti che sono stati più discussi, riportandoli nell’ordine con il quale sono emersi nel corso del dibattito.
Un primo punto introdotto da Alessandro Campanini (nella foto a destra), Cio di Banca Fideuram, è stato l’utilità, anzi la necessità, di disporre di strumenti di misura ex-ante, tali da poter inserire precise clausole sulla qualità del software sviluppato in outsourcing. “La cosa più importante – dice Campanini – è pagare il giusto prezzo per la qualità che si ha”, ma in difetto di benchmark riconosciuti è difficile inserire nei contratti, come sarebbe auspicabile, dei vincoli sulla qualità del prodotto realizzato. La problematica toccata da Campanini ha innescato un discorso sul ritorno dell’investimento in strumenti di qualità. “Se
uso questi tool – si è chiesto Riccardo Amidei (nella foto a sinistra), Direttore Quality Informatica di Fiat Group Automobiles – di quanto si può ridurre il costo del contratto di manutenzione?”. Per Amidei non si sa. Ma, aggiunge, “è una valutazione che spetterebbe ai fornitori di Maintenance Service”, in modo da calibrare costo e qualità della propria offerta. Sul problema costo/qualità intervengono Crubellati, per il quale la questione va ribaltata stimando il danno economico che il rischio dato dalla scarsa qualità del
software può infliggere all’impresa, e Mario Giovanni Ferrario (nella foto a destra), responsabile sviluppo applicazioni gestionali di Fiditalia, che osserva come esista e sia calcolabile un “technical debt” dato dal costo del lavoro necessario per rimediare ai difetti di un’applicazione rilasciata e operativa.
Si è poi discusso della metodologia Agile, della quale Capra, nel suo intervento, aveva mostrato i vantaggi ma anche i limiti, specie
nell’applicazione a gruppi di sviluppo numerosi. Nel caso di Alberto Alberini (nella foto a sinistra), It manager di Aviva Italia, che ne ha fatto esperienza diretta, questo metodo ha dato eccellenti risultati e il suo uso ha mostrato un rapporto diretto con la qualità del prodotto, ma ammette che esistano casi
in cui convenga un approccio più strutturato, tesi condivisa, in nome della solidità di applicazioni critiche, da Barry Groenewald (nella foto a destra), It Internal Projects & Special Initiatives di Sky Italia.
Un problema delicato viene infine sollevato da
Fabrizio Albini (nella foto a sinistra), It Manager di The Walt Disney Company Italia, e cioè la difficoltà che s’incontra talvolta nel presentare e negoziare gli aspetti di qualità con gli utenti interni e con responsabili del business che non siano già sensibilizzati al problema. È come sempre una questione di cultura, che va creata e stimolata anche da parte dei fornitori. Come conclude Bill Curtis: “Dobbiamo far capire che la qualità è un modo per semplificare il business e condurlo in modo più efficiente”.
Cast: analisi, controllo e misura della qualità del software
Fondata in Francia nel 1995 e presente in Italia, con sede a Milano e uffici a Roma, dal 1998, Cast è una società a dimensione multinazionale specializzata nell’analisi scientifica del software applicativo e nella realizzazione di strumenti tecnologici per misurarne caratteristiche e prestazioni e migliorarne la qualità. Cast fornisce strumenti di benchmark agli sviluppatori e alle comunità accademiche e scientifiche interessate agli aspetti che possono migliorare la qualità strutturale delle applicazioni. La sua Application Intelligence Platform è una piattaforma tecnologica, concepita a uso dei responsabili dell’It come del business, che analizza, controlla e misura i parametri che determinano la qualità di un’applicazione in modo da ottimizzarne le prestazioni all’utente finale. Nel 2007 ha avviato un programma di raccolta e studio delle caratteristiche strutturali relative ad applicazioni custom implementate da organizzazioni in Nord America, Europa e India, realizzando un data-set che forma la base di conoscenza delle sue analisi.
I protagonisti dell’evento ZeroUno
Questi i nominativi dei manager che hanno partecipato all’Executive Dinner di ZeroUno:
• Alberto Alberini, It manager di Aviva Italia
• Fabrizio Albini, It manager di The Walt Disney Company Italia
• Riccardo Amidei, direttore Quality Informatica di Fiat Group Automobiles
• Marco Andolfi, Direzione Generale di Disignum
• Bruno Annunziata, responsabile Monitoraggio e controllo qualità di Insiel
• Stefano Brambilla, Technical Manager Direzione Risk Management di Banca Intesa Sanpaolo
• Alessandro Campanini, Cio di Banca Fideuram
• Eugenio Capra, docente Sistemi Informativi del Politecnico di Milano
• Massimo Crubellati, Country manager di Cast
• Bill Curtis, Cisq Director, Co-author of Cmm, Cast Senior Vice President and Chief Scientist di Cast
• Guido Di Dario, al momento dell’evento Cio di De Agostini Editore
• Mario Giovanni Ferrario, responsabile Sviluppo applicazioni gestionali di Fiditalia
• Fabio Furgiuele, Technical Manager di Cast
• Marco Geraci, Senior Consultant di Cast
• Carlo Grimoldi, It manager di Dussmann Service
• Barry Groenewald, It International Projects & Special Initiatives di Sky Italia
• Ferruccio Maccarini, responsabile Processi Interni di Ubi Sistemi e Servizi
• Sergio Martina, consulente di Martina Team
• Giuseppe Omodei Salè, direttore Sistemi Informativi di Messaggerie Libri
• Farhad Sabzevari, Cio di Directline
• Giuseppe Salomoni, Head of Architectures, Innovation & Strategic Projects – Eurosig CB, Global Business & Ges di Ugis
• Marco Tacchetti, Head of IT Innovation di Ugis
• Alessandro Volpato, direttore Sistemi Informativi di Bennet
Leggi anche il White Paper: “Application Management Services”