Le organizzazioni It hanno da tempo modificato il loro approccio verso le applicazioni aziendali; sono passate dalle grandi implementazioni monolitiche ad un approccio più dinamico, distribuito ed eterogeneo. Questo ha portato ad avere all'interno dei propri sistemi applicazioni complesse, molto spesso 'assemblate' da team diversi provenienti anche dall'esterno (quando, per esempio, si ricorre all'outsourcing applicativo per lo sviluppo di soluzioni o di parti di software/codice che necessitano poi di essere integrate tra loro). Se poi pensiamo all'impatto che i nuovi trend hanno e stanno generando a livello applicativo, dalla Soa alla virtualizzazione, fino al cloud e al mobile, è facile capire le conseguenze nell'ambito dello sviluppo applicativo. Una complessità che genera una forte crescita dei costi nonché un aumento dei rischi legati alla scarsa qualità del software e al frequente cambiamento cui sono ormai soggette le applicazioni che devono evolvere verso nuove release o nuove funzionalità in tempi sempre più rapidi per rispondere alle esigenze del business.
L'articolo continua alla pagina seguente
*BRPAGE*
(segue dalla pagina precedente)
“Stiamo parlando di scenari in cui si trovano ormai quasi tutte le aziende che però è proprio dalle applicazioni che traggono il supporto It principale alla realizzazione degli obiettivi di business”, riflette Stefano Uberti Foppa, direttore di ZeroUno aprendo il tavolo di lavoro di un Executive Dinner tenutosi l’altro ieri a Milano, organizzato in collaborazione con Ca Technologies. “È proprio in contesti economici dove è richiesta dinamicità e flessibilità nella capacità di reazione (se non addirittura proattività) che le applicazioni assumono un ruolo ‘vitale’ per le organizzazioni. Un ruolo che può assumere valore per il business solamente se i processi di application lifecycle sono governati da efficaci ed efficienti cicli di sviluppo, testing, collaudo e rilascio delle soluzioni” continua Uberti Foppa.
È su questi temi, infatti, che abbiamo dibattuto insieme ai rappresentati di alcune importanti realtà aziendali italiane con l’intento di indagare e analizzare le vie dell'ottimizzazione applicativa per capire quali sono i percorsi possibili, e le tecnologie a supporto, verso una più efficace strategia di application development and transformation.
“I dipartimenti It aziendali, oggi, si scontrano con la complessità ed eterogeneità delle applicazioni che però devono evolvere in funzione dei nuovi business requirement sempre più stringenti in termini di tempo e costi e che impongono piuttosto frequentemente interventi di revisione, ammodernamento, trasformazione delle soluzioni”, spiega Eugenio Capra, docente di Sistemi Informativi Politecnico di Milano. “In scenari aziendali di questo tipo, il ricorso all'outsourcing per lo sviluppo applicativo (di intere soluzioni ma anche di parti applicative, funzionalità o release singole, parti di codice, ecc.) è sempre più frequente; spesso, per mancanza di risorse, skill adeguati o per la necessità di accelerare i processi di sviluppo. Una dinamica che, seppur porti risparmi di costi e time-to-market, ha ulteriormente aumentato la complessità della governance applicativa e dei sistemi It”.
Qualunque sia il sourcing applicativo, serve una strategia
“Per un sourcing di successo – prosegue Capra – bisogna tenere conto di aspetti economici quali l’efficienza dei costi dei servizi, le economie di scala, la trasformazione dei costi fissi in variabili, l’eventuale flusso di cassa positivo sui disinvestimenti, valutare la leva finanziaria per l’innovazione, ma serve anche considerare aspetti operativi quali risorse e competenze (che devono essere qualificate), il riposizionamento strategico dell’Ict, la focalizzazione della funzione Ict su attività a maggior valore aggiunto, la realizzazione di processi Ict innovativi, ecc. Tutti impatti non banali.”
E una volta definito che l’outsourcing applicativo può rappresentare la via ottimale, l’attenzione non può e non deve calare. “È fondamentale riuscire a identificare i fornitori più idonei, definire i requisiti della fornitura e i criteri di valutazione dei provider, definire e negoziare il contratto (descrizione e regolamentazione dei servizi, definizione dei Kpi e degli Sla, regolamentazione di bonus e penali, ecc.) e, cosa ancor più importante, governare il cambiamento in modo da controllare gli impatti sull’organizzazione interna”.
E come sempre, va ricordato che non esiste una ‘ricetta’ per stabilire quando l’outsourcing del ciclo di vita del software sia conveniente, “ma un’organizzazione può usare con successo l’outsourcing come una leva di governance per raggiungere gli obiettivi di servizio e di economicità con modalità che dipendono dalla situazione di partenza e dalle peculiarità del segmento di mercato in cui opera”, puntualizza Capra.
Riflessione condivisa dai partecipanti alla tavola rotonda; sembra infatti che siano molte le realtà che hanno adottato l’outsourcing come leva strategica per un time-to-market più veloce ma che evidenziano le criticità legate al monitoring attraverso Kpi e Sla, alla governance dei progetti nonché le difficoltà legate all’integrazione tecnologica tra le soluzioni sviluppate in house e quelle che provengono da terze parti. “In questo momento noi abbiamo due esigenze primarie – descrive, per esempio, Ettore Galasso, responsabile area Business Applications di Expopage -: velocizzare il time-to-market e creare valore per il business. La riduzione dei costi è implicita, ma è ormai un’esigenza trasversale. Per riuscire a raggiungere tali obiettivi abbiamo optato per un modello che si basa su risorse interne per la parte di demand management e per il presidio di applicazioni core affiancato da una serie di ‘fabbriche esterne’ cui chiediamo supporto per lo sviluppo di nuove applicazioni o per l’evoluzione di quelle già in produzione. Il modello ci consente di essere veloci ma da parte nostra è stato fondamentale alzare il livello di attenzione e definire una governance molto rigida che ci aiuta ad avere un controllo adeguato anche sui partner esterni”.
“Nel nostro caso – spiega invece Sergio Caucino, responsabile Architetture Applicative, BI e Integrazione di Sorgenia – il primo passo è stato definire un software lifecycle development più organizzato e strutturato che, inevitabilmente, ha comportato un time-to-market più lungo. Gli aspetti su cui ci siamo concentrati sono stati quelli del metodo di lavoro, con l’obiettivo di identificare e definire processi condivisi; un cambio non banale con impatti molto forti sulle persone e i team di lavoro che, però, ci consente oggi di avere un maggior e miglior controllo sui fornitori ai quali possiamo chiedere che siano loro ad adeguarsi ai nostri processi. Definita la governance, a mio avviso tassello imprescindibile e che ben presidiamo, anche nel rapporto con i provider, con indicatori e Sla precisi, la focalizzazione è ora sugli aspetti tecnologici per identificare gli strumenti più idonei ad accelerare il time-to-market”.
Niente ricette, nemmeno per le metodologie
L’inesistenza di una ricetta univoca vale anche nella scelta delle metodologie di sviluppo. Sebbene la velocità con cui è oggi richiesto il rilascio in produzione delle applicazioni abbia contribuito al consolidamento di approcci metodologici quali Agile, Scrum, XP, Crystal, ecc., non è detto che siano i metodi ‘giusti’. “Sia i metodi agili sia quelli tradizionali hanno punti di forza e punti di debolezza – osserva Capra -. La metodologia corretta va definita in base al contesto in cui si opera e va ‘costruita’ di volta in volta. Spesso conviene temperare insieme aspetti più agili con altri più tradizionali. Spesso serve un bilanciamento non facile da ottenere. Occorre in ogni caso un nuovo approccio modulare e dinamico al ciclo di vita del software”.
“La criticità maggiore, a mio avviso, oggi, sta nel riuscire a pensare a qualcosa di differenziante, sia in termini di soluzioni sia in termini di processi e metodologie, e nel poterlo calare in un contesto esistente fatto di processi consolidati e di persone – riflette Graziano Tosi, head of SL It Application Government di Unicredit Business Integrated Solutions -. Pensando al ciclo di vita del software ‘tradizionale’, per esempio, le nostre competenze sono collaudate; l’introduzione di metodologie innovative come Agile, sebbene possano risultare molto utili in determinati ambiti e per lo sviluppo di applicazioni di nuova generazione, richiede un importante investimento in termini organizzativi e sul piano delle competenze per riuscire a goderne a pieno i benefici. È chiaro, tuttavia, che i contesti evolutivi in cui si muovono oggi le Banche ci portano ad avere queste tematiche all’interno degli ordini del giorno di tutte le discussioni rivolte alla ricerca di innovazione ai fini competitivi”.
“Non è detto che tutte le applicazioni debbano essere trattate alla stessa maniera – interviene Stefano Perfetti, Ict Service Line Corporate e Vendita di A2A -. Più che confrontarsi su quale sia la metodologia migliore, credo sia più efficace trovare il giusto mix. Alcune applicazioni potrebbero richiedere un approccio diverso da altre; addirittura la stessa soluzione, a seconda della fase di sviluppo, potrebbe vedere la sua evoluzione gestita attraverso un bilanciamento di più metodologie, regole e approcci. La prima criticità, a mio avviso, sta negli skill: servono le persone e le competenze giuste; e, anche in questo caso, non è affatto scontato che uno skill vada bene per lo sviluppo di qualsiasi applicazione, anzi, tutt’altro. Proprio per questo diventano allora fondamentali la condivisione e lo scambio di informazioni che accelerano alcuni processi e, cosa ancor più importante, la focalizzazione sulla parte di demand management per riuscire a presidiare in modo efficace i business requirement”.
“I metodi sono importanti, ma i veri silver bullet vanno cercati in valori trasversali – interviene Capra – quali lo spirito di collaborazione dei team, la motivazione e la mentalità creativa delle persone, la condivisione della conoscenza e la discussione comune delle problematiche nonché un più efficace approccio al demand management”.
“Avere all’interno dei team di sviluppo persone che conoscono bene i processi di business è per noi fondamentale – racconta Laura Milano, responsabile dello Sviluppo Applicativo dei Sistemi Informativi di Edipower -. La nostra strategia è stata fin dall’inizio improntata sulla centralità delle informazioni con l’obiettivo di minimizzare le rielaborazioni applicative ed accelerare così il rilascio in produzione, grazie anche al fatto che la condivisione delle informazioni aiuta ad avere requisiti chiari e obiettivi trasparenti. La scelta di infrastrutture a supporto di tipo standard, senza eccessive stratificazioni, è poi un innegabile plus”.
Virtualizzare i servizi per essere più rapidi ed efficaci
“Una delle preoccupazioni principali dei team It dedicati allo sviluppo applicativo – spiega Gabriele Provinciali, Principal Architect Ca Technologies – riguarda la possibilità di sperimentare il funzionamento del software in condizioni molto prossime a quelle reali (ossia lavorare in ambienti di sviluppo, test e collaudo il più simile possibile a quelli di produzione su cui verranno poi migrate le soluzioni in fase di rilascio), per riuscire a definire un quadro attendibile del comportamento delle applicazioni in modo preventivo. Preoccupazione che non sempre trova rassicurazioni negli ambienti It a causa dei limiti posti alle risorse di infrastruttura disponibili per le prove (non sempre i mainframe o le architetture It su cui girano le applicazioni sono utilizzabili dai team di sviluppatori perché necessarie a supportare soluzioni già in produzione e perché l’upgrade tecnologico ai fini del testing risulta quasi sempre un costo non sostenibile o non necessario)”.
“Una risposta efficace sul piano tecnologico può arrivare dalla cosiddetta virtualizzazione dei servizi – prosegue Provinciali -, un metodo che consente di emulare il comportamento di specifiche componenti interne ad applicazioni eterogenee tipicamente in architetture service-oriented”. In altri termini, la tecnologia di cui parla Provinciali consente ai team di sviluppo di accedere a quei servizi infrastrutturali necessari al corretto funzionamento delle applicazioni in fase di sviluppo, test e collaudo in modo virtualizzato: la tecnologia emula il comportamento del componente infrastrutturale necessario all’applicazione e questa funziona come se tale componente fosse realmente disponibile ‘dal vivo’ (in realtà tale componente sta regolarmente ‘servendo’ le soluzioni già in produzione).
“Parliamo di tecnologie decisamente all’avanguardia – ci tiene a sottolineare Provinciali – ma crediamo abbiano un enorme potenziale soprattutto in virtù delle criticità che vivono oggi i dipartimenti preposti allo sviluppo applicativo, che stanno diventando sempre più degli ‘assemblatori’ di componenti provenienti di più parti”.
Da sviluppatori ad assemblatori: l’automazione aiuta
I team di sviluppo, interni alle aziende ma anche esterni, non sono più gruppi di programmatori che implementano soluzioni tecnologiche; sono sempre più ‘assemblatori’ e ‘configuratori’ di soluzioni che seguono cicli di sviluppo completamente diversi dal passato e che richiedono, dunque, nuove competenze. Nel corso del dibattito è emersa più volte, come abbiamo visto, la necessità di una governance strutturata a sostegno di processi anche molto dinamici e flessibili, che richiedono competenze di demand management, da un lato, ma anche di integrazione. Su questo fronte, l’automazione di determinati processi rappresenta un aiuto importante: “Gli strumenti di automazione consentono di cristallizzare la conoscenza di alcuni processi e capitalizzarla rendendo più fluidi, veloci e sicuramente meno costosi alcune fasi del ciclo di vita del software”, osserva Roberto Zanatta, Sales director di CapGemini. “Tutti risultati che si traducono in rilasci applicativi più veloci, a minor costo e più efficaci grazie anche alla riduzione degli errori umani”.
“L’automazione aiuta a misurare ciò che prima si percepiva soltanto – interviene Romano Brida, vice president di NTTData – offrendo una vista chiara delle problematiche riscontrate durante le fasi di sviluppo; gli strumenti tecnologici che automatizzano, per esempio, i processi di testing e collaudo, non solo possono essere, ovviamente, riutilizzati per più progetti differenti (ottimizzandone i costi) ma consentono anche i intervenire in tempi rapidi nella risoluzione dei problemi e questo è un enorme vantaggio soprattutto laddove si opta per modelli misti, dove le parti di codice delle soluzioni sono sviluppati sia in house sia ricorrendo all’outsourcing”.
Se è vero allora che i punti focali dell’application lifecycle optimization riguardano skill, metodologie, modelli di lavoro e governance, è vero anche che le tecnologie rappresentano un tassello indispensabile per fare quel ‘salto di qualità’ che consenta all’It di creare valore per il business. “Un salto che i Ceo e i top manager si aspettano dato che, secondo una recente indagine di livello internazionale (Ibm Global Ceo Study 2012), ritengono la tecnologia il driver di business primario”, conclude Uberti Foppa.