Qual è la posizione della tua azienda nella curva di adozione dell’AI? Partecipa al nostro sondaggio sull’intelligenza artificiale per scoprirlo.


I guasti del software sono costosi e in aumento. Si stima che dal 19% al 23% dei progetti di sviluppo software falliscano e Standish Group ha scoperto che i progetti “sfidati”, ovvero quelli che non soddisfano le aspettative di ambito, tempo o budget, rappresentano circa il 52% dei progetti software. Secondo un progetto congiunto di Undo e Cambridge Judge Business School, questi bug costano alle aziende circa 61 miliardi di dollari all’anno e circa 620 milioni di ore di sviluppo vengono sprecate per il debug.

Una soluzione parziale al problema della garanzia della qualità potrebbe essere l’apprendimento automatico, che potrebbe aumentare i flussi di lavoro degli sviluppatori per facilitare l’individuazione di bug critici nel software. Il servizio CodeGuru di Amazon adotta questo approccio, attingendo a modelli di apprendimento automatico addestrati con milioni di righe di codice per consigliare correzioni per gli sviluppatori, risolvere problemi di prestazioni e rilevare anomalie.

 
 
Per attirare l’attenzione su CodeGuru e strumenti basati sull’intelligenza artificiale come questo, Amazon ha lanciato oggi Amazon Web Services (AWS) BugBust, una sfida internazionale che invita gli sviluppatori a correggere 1 milione di bug software e realizzare $ 100 milioni di debito tecnico. Gli sviluppatori di tutto il mondo possono partecipare alla sfida creando eventi BugBust per la loro organizzazione utilizzando CodeGuru e competere per i premi su una classifica identificando e risolvendo i bug nelle loro basi di codice e app.

“BugBust ti consente di creare una sfida per la tua organizzazione per elaborare un elenco di potenziali problemi”, ha detto il CTO di Amazon Werner Vogels a VentureBeat in un’intervista telefonica questa settimana. “Rende un po’ un gioco la correzione dei bug: chi riesce a trovare il maggior numero di bug e a salire nelle classifiche. L’obiettivo è rendere l’eliminazione dei bug e la ricerca di problemi di prestazioni una cosa divertente da fare invece di un lavoro di routine”.

Sfide pandemiche
La pandemia ha dato origine a guasti del software che altrimenti non si sarebbero verificati. L’apprendimento a distanza, gli esami online e le esigenze di lavoro da casa hanno determinato un enorme afflusso di utenti online, esercitando pressione su software che non erano necessariamente progettati per gestire il volume. Secondo un rapporto McKinsey , a ottobre le interazioni tra clienti e aziende nordamericane sono per il 65% digitali rispetto al 41% pre-pandemia. E quasi due terzi dei lavoratori della conoscenza hanno aumentato il loro uso di strumenti di collaborazione dal momento che lavora da casa, un sondaggio Asana trovato .

A complicare le cose, c’è un’enorme carenza di talenti per sviluppatori. Si stima che solo il 2% della popolazione mondiale sappia come sviluppare software e si prevede che il fabbisogno globale crescerà del 24% nei prossimi sette anni.

CodeGuru può dare una mano qui, sostiene Vogels, liberando gli sviluppatori con un tempo limitato per concentrarsi su attività importanti. “Penso che in questi giorni, sicuramente con le trasformazioni digitali, ci sia una pressione per costruire le cose”, ha detto. “[Parliamo con molte organizzazioni] che vorrebbero rivedere il loro codice per capire dove stanno andando le risorse per una particolare app che hanno creato cinque anni fa, ad esempio colli di bottiglia della CPU, colli di bottiglia della memoria e perdite di memoria. Le organizzazioni di solito non riescono a trovare il tempo per farlo, quindi stiamo cercando di automatizzarlo ulteriormente”.

A tal fine, CodeGuru offre due strumenti progettati per l’ottimizzazione del codice: Profiler e Reviewer. Il revisore utilizza l’analisi del programma e l’apprendimento automatico per rilevare potenziali difetti nei repository di codice e offrire suggerimenti. Sebbene non segnali determinati errori, il revisore può identificare i problemi relativi alle migliori pratiche, alla convalida dell’input, all’analisi della sicurezza, alla qualità del codice e altro ancora.

Per quanto riguarda Profiler, raccoglie dati sulle prestazioni di runtime da un’app live e fornisce consigli che possono aiutare a ottimizzare le prestazioni dell’app. Utilizzando l’apprendimento automatico, Profiler cerca di trovare le righe di codice più costose e suggerisce modi in cui è possibile migliorare l’efficienza, eliminando i colli di bottiglia delle dipendenze o riducendo il gonfiore.

Amazon afferma che Reviewer, che può scansionare 1 milione di righe di codice in 30 minuti, ha già analizzato oltre 200 righe e prodotto 165.000 consigli sulle correzioni per gli sviluppatori, inclusi 25.000 sviluppatori Amazon. Inoltre, la società afferma che i suoi team interni hanno utilizzato Profiler su oltre 30.000 app distribuite in produzione.

L’idea alla base di BugBust è consentire alle organizzazioni di utilizzare CodeGuru per correggere i bug. Gli sviluppatori della regione AWS degli Stati Uniti orientali (Virginia settentrionale), con altre regioni in arrivo, possono rivendicare e eliminare i bug per competere all’interno delle loro organizzazioni e a livello internazionale per avere la possibilità di vincere premi; distintivi; e un viaggio ad AWS re:Invent, la conferenza annuale degli sviluppatori di Amazon, che ospiterà un evento BugBust dal vivo.

“[Stiamo cercando di] motivare le persone a utilizzare effettivamente questi strumenti non solo come parte del loro nuovo codice quotidiano, ma anche per iniziare a guardare al vecchio codice – codice che hanno da molto tempo – per vedere se effettivamente adottarlo e ottimizzarlo”, ha affermato Vogels. “Non succede abbastanza e non ha priorità in tutte le organizzazioni”.

Guardando avanti
Nonostante il loro potenziale, gli strumenti di assistenza alla codifica come CodeGuru hanno dei limiti. Il revisore supporta solo il codice scritto in Python o Java e non può individuare errori sintattici, ad esempio. E ricerche recenti suggeriscono che anche i migliori modelli non possono imparare a generare risposte a problemi di codifica difficili senza errori di sintassi.

Ma Vogels nota che CodeGuru è progettato per auto-migliorarsi dal feedback dei clienti, che funge da segnale nella riqualificazione dei modelli di individuazione dei bug. Questo è probabilmente superiore ai processi di revisione manuale del codice, di cui solo una minoranza di sviluppatori di software afferma di essere soddisfatta, secondo uno studio SmartBear .

“Si basa sia sull’estrazione di regole che sull’apprendimento automatico: è una combinazione di regressione logistica e reti neurali”, ha affermato Vogels. “[CodeGuru] migliorerà sempre di più nel tempo, in sempre più lingue… È una nuova serie di regole che vengono create ogni volta che lo eseguiamo.”

In definitiva, afferma Vogels, l’obiettivo di CodeGuru e BugBust è aumentare gli sviluppatori, non sostituirli. Sebbene funzioni semplici potrebbero essere gestite da motori di correzione del codice, la necessità di programmatori che scrivono app e API di livello superiore non scomparirà nel prossimo futuro.

“La programmazione è una professione artistica”, ha detto. “Tendiamo a creare cose nuove ogni giorno ed essere in grado di concentrarci sulle parti di creazione e automatizzare alcune delle parti più noiose ma molto importanti relative alle prestazioni e alla sicurezza è una cosa fondamentale”.

Di ihal