La rivoluzione dell’AI nello sviluppo software

Diversi nuovi tipi di tool basati su AI possono migliorare la varie fasi del ciclo di vita dello sviluppo software. L'offerta, per alcuni ambiti, è già ampia.

Autore: Andrea Chiarentin e Ciro Lucio Tecce

Era una delle grandi sfide dell'intelligenza artificiale: rivoluzionare il Software Development Life Cycle (più brevemente, SDLC). Nel corso degli anni, con l’obiettivo di automatizzare i compiti più ripetitivi, molti step del ciclo di vita dello sviluppo software sono stati potenziati grazie all’utilizzo di tecniche rule-based. Non sempre però questo approccio si è dimostrato efficace, per l’estrema complessità di alcune attività. Che quindi necessitano di un approccio diverso, con integrazioni e dipendenza tra i diversi layer di funzionalità.

Ed è qui che l’intelligenza artificiale si è dimostrata una soluzione efficace: l’apprendimento automatico a partire da grandi moli di dati e di esempi permette, infatti, di superare le difficoltà introdotte dalla complessità del problema, risultando vincente nei casi in cui l’approccio rule-based non fornisca i risultati sperati.

Il trend emergente nell’ambito del SDLC, come sottolineato anche nell’Osservatorio Reply sugli AI-powered Software Development Tools, è decisamente uno spostamento del lavoro dall’operatore umano a strumenti dedicati, ovviamente AI-Powered. Questa trasformazione, partita con la delega alla macchina dei task più ripetitivi grazie allo sfruttamento di tecniche rule-based, oggi permette di estendere l’insieme dei compiti delegabili all’AI che vedono l’impiego di tecniche automatizzate al posto di skill ed expertise umane.

Gli ambiti di applicazione dell’AI al SDLC stanno registrando un’evoluzione molto rapida, e nel mercato stanno nascendo sempre più tool mirati a vari ambiti: raccolta e analisi requisiti, studio di fattibilità, progettazione, codifica, test, manutenzione. Sapersi orientare fra le numerose possibilità offerte dagli strumenti di AI risulta decisivo all’interno di un panorama estremamente vasto e frammentato. Per farlo è necessario essere sempre aggiornati sulle evoluzioni del mercato e maturare una concreta esperienza sulle reali capacità che questi tool offrono. Per questo, ad esempio, al nostro interno abbiamo definito una metodologia che ci aiutasse a identificare l’insieme dei task delegabili all’AI anche per fasi del ciclo di vita dello sviluppo software.
In fase di analisi e gestione dei requisiti, gli strumenti cosiddetti di AI-Powered Requirements Management permettono di affrontare alcune sfide complesse. Come l’efficacia della comunicazione fra utenti e analisti, il coinvolgimento degli stakeholder e la gestione dell’evoluzione dei requisiti durante il processo di analisi.

Durante la pianificazione delle risorse e delle attività, poi, gli AI-Powered Project Management tool consentono di tracciare l’evoluzione delle singole attività ed estrapolare modelli predittivi sull’andamento del progetto in grado di supportare tutto il processo di decision making. Successivamente, permettono di automatizzare il planning delle attività ed eventualmente abilitare lo scaling automatico delle risorse da allocare.

Nel corso dell’attività di progettazione e creazione di User Interface si ricorre agli AI-Powered Design tool, che sono in grado di convertire schizzi, disegni su carta, istruzioni vocali o qualsiasi altro input umano in codice, creando veri e propri prototipi. Sebbene l’interesse per questo ambito di applicazione sia molto alto, ci sono ancora poche soluzioni sul mercato disponibili ed è indubbiamente un tema da tenere sotto osservazione per il prossimo futuro.

Al contrario, la fase della codifica è quello in cui allo stato dell’arte è possibile sfruttare al meglio le capacità caratterizzanti l’AI: il riconoscimento di schemi e l’autoapprendimento. Gli strumenti detti di MLonCode (Machine Learning on source Code) sfruttano l’intelligenza artificiale per eseguire automaticamente attività di scrittura del codice e supportare gli sviluppatori nella creazione di software di alta qualità in modo facile e veloce. Eliminando attività ripetitive, ottimizzando la fase di correzione dei bug, intercettando eventuali vulnerabilità già sul nascere.
Il quinto stadio è quello relativo alla fase di testing. Gli strumenti di AI-Powered Testing sono orientati all’automatizzazione delle fasi del test, con lo scopo di rendere tale attività più intelligente ed efficiente allo stesso tempo. Riducendo il tempo speso da operatori umani in attività ripetitive e quindi più inclini a subire errori, creando test più stabili e garantendo una release di software molto più veloce.

In ultimo, lo step di manutenzione è coperto dalla famiglia dei tool di AI-Powered Ops che, grazie all’intrinseca capacità di identificare i pattern e quindi potenziali problemi a fronte di sintomi non necessariamente evidenti per un operatore umano, possono essere sfruttati per il dimensionamento delle risorse, il troubleshooting o il monitoring.

In generale la metodologia customer-centric sviluppata da Reply consente un’efficace e concreta valutazione e pianificazione dell’adozione di un AI tool. L’avvento dell’intelligenza artificiale nel SDLC è certamente una soluzione efficace anche con il suo elevato grado di complessità. Ma solo se ci si saprà orientare tra le numerose soluzioni offerte si potranno cogliere appieno i vantaggi derivanti da tale rivoluzione.

Articolo a cura di Andrea Chiarentin e Ciro Lucio Tecce di Reply, AI Powerd Software Development Practice

Visualizza la versione completa sul sito

Informativa
Questo sito o gli strumenti terzi da questo utilizzati si avvalgono di cookie necessari al funzionamento ed utili alle finalità illustrate nella cookie policy. Se vuoi saperne di più o negare il consenso a tutti o ad alcuni cookie, consulta la cookie policy. Chiudendo questo banner, acconsenti all’uso dei cookie.