La necessità di uno sviluppo software efficiente ha assunto un’importanza sempre maggiore man mano che le aziende introducono sempre più servizi digitali e aggiungono funzionalità di automazione per migliorare i processi aziendali. La gestione dei progetti software potrebbe non essere in cima alla lista delle priorità dei CIO, ma è qualcosa che i leader IT dovranno imparare a fare.

La gestione dei progetti software presenta numerose sfide e i dirigenti IT che imparano ad affrontarle possono aiutare le loro organizzazioni a creare applicazioni migliori per favorire la crescita del business e migliorare l’esperienza dei clienti. Ecco alcune delle sfide più probabili che i leader e i team IT devono affrontare con i progetti software e come possono vincerle.

Rispettare tempi e budget

Completare i progetti software in modo tempestivo e rispettando il budget è una sfida primaria per lo sviluppo del software, visto che possono accadere diverse cose che causano ritardi e fanno lievitare i costi. Una possibile soluzione è quella di adottare la metodologia agile di sviluppo del software, che richiede la collaborazione tra team interfunzionali e utenti finali e promuove la pianificazione adattiva, lo sviluppo evolutivo, il miglioramento continuo, la flessibilità nel rispondere ai cambiamenti dei requisiti e la consegna anticipata dei prodotti.

“I progetti di sviluppo software agili iterano il ciclo di pianificazione, esecuzione, verifica, aggiustamento e l’utente finale o il rappresentante che sponsorizza il progetto è fondamentale in tutte queste fasi” afferma Ola Chowning, partner della società di consulenza e ricerca tecnologica globale ISG.

Il metodo a cascata che prevede la raccolta di tutti i requisiti, la progettazione dell’intera funzionalità software per soddisfare tutti i requisiti, la realizzazione di tutte le funzionalità necessarie, la revisione e l’ottenimento dell’approvazione da parte degli utenti finali è oggi raramente utilizzato, afferma Chowning. “Questo vecchio metodo, tra l’altro, è quello in cui le sfide per il rispetto dei tempi e del budget erano più onerose, a causa delle incertezze che si creavano quando il team di software doveva stimare grandi quantità di lavoro e ipotizzare un certo livello di accettazione o di rielaborazione da parte degli utenti finali”, spiega Chowning.

La metodologia agile consente al team software e agli utenti finali di “imparare collettivamente a pianificare meglio, lavorare meglio e adattarsi più rapidamente, e i risultati diventano molto più prevedibili perché il modo in cui il team lavora diventa più prevedibile”, afferma Chowning. “È molto più facile valutare il rispetto dei tempi e del budget con il dito puntato sulle aspettative degli utenti e degli sviluppatori”.

Creare e mantenere una cultura agile

Sebbene l’adozione del modello agile abbia senso per lo sviluppo del software in molte organizzazioni, può comportare anche degli ostacoli. Inoltre, molti leader IT che pensano che le loro organizzazioni abbiano adottato pratiche agili non riescono a capire che ciò che i loro team stanno facendo non è, di fatto, agile. “L’intersezione tra le pratiche agili di sviluppo del software e la gestione “tradizionale” dei progetti rimane una sfida per molte organizzazioni”, continua Chowning. “Mentre lo sviluppo del software viene affrontato con un metodo di lavoro rigorosamente agile, molte organizzazioni continuano a gestire i progetti con il meno efficace metodo a cascata”.

Questo spesso succede per il finanziamento di un progetto, quando di solito viene chiesto di stimare l’esborso totale a fronte di una tradizionale struttura a cascata di requisiti, progettazione, realizzazione, test e distribuzione. Le organizzazioni più mature si stanno orientando verso un approccio di gestione del progetto che prevede invece una stima del costo complessivo rispetto al valore complessivo con un approccio più costante nel tempo. “Coloro che utilizzano questo approccio di gestione agile dei progetti sono in grado di cogliere alcuni dei vantaggi chiave dell’agilità, ma ciò potrebbe richiedere un adeguamento delle decisioni di investimento o persino delle pratiche finanziarie in termini di spesa per i progetti”.

Un’enorme sfida per le organizzazioni IT è promuovere il modello agile a livello aziendale, afferma Christian Kelly, amministratore delegato della società di consulenza e servizi tecnologici Accenture. “L’agilità a livello di team è ormai diffusa, ma i dati recenti suggeriscono che non sta andando altrettanto bene a livello aziendale, poiché la maggior parte delle organizzazioni fatica a collegare le strategie al lavoro svolto dai team”. Questo limita la capacità delle organizzazioni di pianificare le capacità, di gestire le dipendenze e di collegare gli obiettivi ai risultati. “Per mantenere le promesse dell’agilità, le organizzazioni devono implementare la cultura agile, i sistemi e gli strumenti migliori della categoria necessari per collegare meglio le strategie ai risultati”.

design thinking

Allineare i progetti agli obiettivi organizzativi generali

“I progetti IT non possono essere realizzati in una bolla di sapone” afferma Chetna Mahajan, Chief Digital and Information Officer di Amplitude. “Se la vostra iniziativa non è allineata con le priorità aziendali, siete destinati a incontrare sfide e difficoltà fin dall’inizio e vi troverete a nuotare sempre controcorrente”. Per garantire l’allineamento e l’accettazione da parte dell’azienda, tutti i progetti software dovrebbero avere uno sponsor esecutivo, afferma Mahajan. Quando la sua precedente azienda stava implementando un software CPQ (Configure, Price, Quote), tra gli executive sponsor c’erano Mahajan e il Chief Revenue Office.

“Questo ci ha fornito un canale di escalation per le decisioni e i risultati commerciali e tecnici”, afferma Mahajan. “Non è stata percepita come un’iniziativa tecnologica e ha ottenuto la visibilità e l’attenzione necessarie in tutta l’azienda. Non solo abbiamo rispettato il budget e i tempi, ma siamo anche riusciti ad aumentare l’automazione del 30% e a ridurre il ciclo di vendita di un paio di settimane”.

Secondo Mahajan, la maggior parte dei progetti tecnologici fallisce perché mancano indicatori chiave di prestazione (KPI) concreti. “Classifico le metriche di progetto principalmente in due categorie: una che monitora l’esecuzione del progetto e l’altra che misura i risultati aziendali”, continua Mahajan. “Se da un lato è importante rispettare il budget, la portata e la tempistica, dall’altro dobbiamo tenere costantemente d’occhio i KPI aziendali”. I KPI di un progetto devono essere specifici e collegati agli obiettivi aziendali. “Questo non solo aiuta a creare una cultura della responsabilità, ma consente alle aziende anche di convalidare il proprio business case per informare le future decisioni di investimento”.

Conquistare stakeholder e sponsor

Secondo Chowning, la cultura è spesso una sfida fondamentale nella capacità di gestire i progetti software in modo agile, perché gli sponsor e i principali stakeholder del progetto devono essere a proprio agio e disposti a lavorare nel modo più adatto alla metodologia agile. “Molti potrebbero invece voler lavorare in modo più tradizionale, ovvero creare tutti i requisiti, progettare l’intero stato finale e solo successivamente costruire e distribuire l’intero stato finale”, spiega Chowning. “Questo può rappresentare un problema, in quanto la pratica di sviluppo del software e la pratica di gestione del progetto cercano di procedere con due approcci completamente diversi e scollegati tra loro”.

Secondo Chowning, educare gli sponsor e i principali stakeholder a un approccio di gestione agile del progetto e aiutarli a modificare i loro comportamenti è fondamentale per gestire le aspettative e consentire allo sviluppo del software di procedere nel modo più efficace ed efficiente. È importante coinvolgere la rappresentanza degli utenti fin dall’inizio e poi continuamente durante le iterazioni dello sviluppo del software, indipendentemente dalla metodologia utilizzata, afferma Chowning.

“Sono finiti i tempi in cui era sufficiente parlare con gli utenti fin dall’inizio e poi non coinvolgerli più fino a qualche mistico test verso la fine del progetto. Gli utenti, o la loro rappresentanza, dovrebbero essere coinvolti in tutti gli aspetti dello sviluppo e della progettazione del software. Lo sviluppo di piccole funzionalità, i prototipi e le prove sono tutti mezzi utili per garantire il coinvolgimento degli utenti e l’ottenimento di un feedback costante”.

Necessità di nuove competenze di sviluppo e di gestione

“Una delle sfide più grandi che dobbiamo affrontare è quella di garantire un’esperienza forte agli sviluppatori e di gestire l’aggiornamento continuo dei nostri dipendenti in base all’evoluzione delle tecnologie” afferma Amit Sharma, CTO della società di tecnologia finanziaria Broadridge Financial Solutions ed ex CIO del fornitore di servizi finanziari Western Union. “Questo significa creare soluzioni automatizzate, fornire un ambiente sicuro e stabile per sviluppare e testare e dotare i nostri sviluppatori di strumenti che facilitino un’esperienza semplice e gestibile e che alleggeriscano le spese e gli oneri di un’amministrazione pesante”, continua Sharma.

Con il rapido ritmo di cambiamento nello sviluppo del software, le aziende devono formare gli ingegneri informatici e altri soggetti ad adattarsi a nuove tecnologie, linguaggi e processi di sviluppo. Secondo Sharma, i responsabili IT e di prodotto devono riconoscere il fatto che potrebbero esserci delle interruzioni nei progetti a causa della necessità di sviluppare nuove competenze. Devono anche dare valore alle persone coinvolte nello sviluppo del software.

“È fondamentale riconoscere che i nostri team tecnologici hanno costruito soluzioni nel corso di molti anni e, di conseguenza, sono diventati esperti della materia non solo del sistema, ma anche del prodotto. È fondamentale portarli con noi nella prossima generazione del nostro prodotto, indipendentemente dalla tecnologia su cui si basa”. Oltre alla necessità di nuove competenze per gli sviluppatori, molti leader IT devono affinare le proprie.

“Molti leader IT soffrono di un’enorme carenza di talenti nella capacità di comprendere le esigenze degli utenti, di creare roadmap software che soddisfino le esigenze aziendali, di determinare compromessi rispetto a queste roadmap e di passare da un pensiero basato sui processi a un pensiero basato sul valore del cliente e sul customer journey“, conclude Kelly di Accenture. “Questo è il motivo per cui concetti come la mappatura del flusso di valore, le proposte di lavoro/valore del cliente e il design thinking sono diventati così importanti”.