La generazione di intelligenza artificiale potrebbe accelerare la codifica, ma le aziende dovrebbero comunque considerare i rischi
Le organizzazioni desiderose di finanziare lo sviluppo di software basato sull’intelligenza artificiale per i vantaggi attesi dovrebbero anche comprendere che ciò potrebbe comportare effetti negativi.
Gli sviluppatori possono ora rivolgersi all’intelligenza artificiale generativa (Gen AI) per codificare in modo più rapido ed efficiente, ma dovrebbero farlo con cautela e non meno attenzione di prima.
Anche se l'uso dell'intelligenza artificiale nello sviluppo di software potrebbe non essere una novità, esiste almeno dal 2019 e la Gen AI apporta miglioramenti significativi nella generazione di linguaggio naturale, immagini e, più recentemente, video e altre risorse, incluso il codice. , ha detto a ZDNET Diego Lo Giudice, vicepresidente e principale analista di Forrester.
Le precedenti iterazioni dell'intelligenza artificiale venivano utilizzate principalmente nei test del codice, con l'apprendimento automatico sfruttato per ottimizzare i modelli per le strategie di test, ha detto Lo Giudice a ZDNET. La Gen AI va oltre questi casi d'uso, offrendo l'accesso a un programmatore esperto o uno specialista (come un tester o un analista aziendale) a cui è possibile interrogare in modo interattivo per trovare rapidamente informazioni. La Gen AI può anche suggerire soluzioni e casi di test.
“Per la prima volta stiamo assistendo a significativi guadagni di produttività che l’intelligenza artificiale tradizionale e altre tecnologie non ci hanno fornito”, ha affermato.
Entro il 2026, l’IDC prevede che il 40% delle nuove applicazioni nell’Asia-Pacifico saranno “app intelligenti”, che integreranno la generazione AI per migliorare l’esperienza dell’utente e fornire nuovi casi d’uso.
Nello specifico, secondo lo studio IDC, commissionato dalla piattaforma di sviluppo low-code OutSystems, l’impatto principale dell’utilizzo della Gen AI nello sviluppo e nella progettazione di software sarà un aumento della produttività e della velocità degli sviluppatori.
Tali potenziali vantaggi aziendali spingeranno il 30% delle organizzazioni dell’Asia-Pacifico a pagare un premio compreso tra l’11% e il 20% per le funzionalità Gen AI nello sviluppo di app, secondo i progetti di studio IDC.
La società di ricerca prevede inoltre che, entro il 2025, oltre il 60% delle aziende in tutto il mondo adotterà tecnologie low-code per facilitare una distribuzione più rapida delle applicazioni e migliorare l’efficienza operativa.
Gli sviluppatori possono sfruttare l’intelligenza artificiale durante l’intero ciclo di vita dello sviluppo del software, con un “TuringBot” dedicato in ogni fase per migliorare gli stack tecnologici e le piattaforme, ha osservato Lo Giudice.
Forrester ha coniato TuringBots per descrivere gli strumenti basati sull'intelligenza artificiale che aiutano gli sviluppatori a creare, testare e distribuire codice. La società di ricerca ritiene che TuringBots guiderà una nuova generazione di sviluppo software, assistendo in ogni fase del ciclo di vita dello sviluppo, compresa la ricerca della documentazione tecnica e il completamento automatico del codice.
"Analizzare/pianificare i TuringBots", ad esempio, può facilitare la fase di analisi e pianificazione dello sviluppo del software, ha spiegato Lo Giudice, indicando ChatGPT e Atlassian Intelligence di OpenAI come esempi di tali prodotti di intelligenza artificiale. Altri, come Gemini Advanced di Google Cloud, possono generare progetti di microservizi e API con la relativa implementazione del codice, mentre Microsoft Sketch2Code può generare codice funzionante da un'interfaccia utente abbozzata scritta a mano, ha affermato.
Lo Giudice ha aggiunto che i "coder TuringBots" sono attualmente il caso d'uso più popolare per la Gen AI nello sviluppo di software, generando codice da prompt nonché dal contesto del codice e commenti tramite completamento automatico per ambienti di sviluppo integrati (IDE) popolari. Questi includono linguaggi comuni come JavaScript, C++, Python e Rust.
Una grande attrazione dei modelli generativi è che possono scrivere codice in molti linguaggi, consentendo agli sviluppatori di inserire un prompt per generare, rifattorizzare o eseguire il debug di righe di codice, ha affermato Michael Bachman, responsabile dell'architettura e della strategia AI di Boomi. "Essenzialmente tutti gli esseri umani che interagiscono con la Gen AI sono sviluppatori quasi e senior", ha affermato.
Il fornitore di software integra la Gen AI in alcuni dei suoi prodotti, tra cui Boomi AI, che traduce le richieste del linguaggio naturale in azioni. Secondo Boomi, gli sviluppatori possono utilizzare Boomi AI per progettare processi di integrazione, API e modelli di dati per connettere applicazioni, dati e processi.
L'azienda utilizza la Gen AI per supportare i propri sviluppatori di software, che osservano attentamente il codice che gestisce la sua piattaforma.
"E questa è la chiave", ha detto Bachman. "Se utilizzi la Gen AI come fonte primaria per creare l'intera applicazione, probabilmente rimarrai deluso. I bravi sviluppatori utilizzano la Gen AI come punto di partenza o per testare a fondo gli scenari di fallimento, prima di mettere il codice in produzione. Questo è così che affrontiamo la cosa internamente."
Il suo team lavora anche per creare funzionalità in grado di soddisfare gli "obiettivi pratici di intelligenza artificiale" dei propri clienti. Boomi, ad esempio, sta creando un sistema di recupero perché molti dei suoi clienti vogliono sostituire la ricerca per parole chiave con la possibilità di cercare contenuti, come i cataloghi sui loro siti web, in linguaggio naturale.
Gli sviluppatori possono anche utilizzare la Gen AI per correggere la sicurezza, ha affermato Lo Giudice, cercando vulnerabilità nel codice generato dall’intelligenza artificiale e offrendo suggerimenti per aiutare gli sviluppatori a risolvere determinate vulnerabilità.
Rispetto alla codifica tradizionale, una strategia di sviluppo con codice basso o assente può offrire velocità, qualità integrata e adattabilità, ha affermato John Bratincevic, analista principale di Forrester.
Fornisce inoltre una toolchain integrata per il ciclo di vita dello sviluppo software e l'accesso a un bacino di talenti ampliato che include non programmatori e "sviluppatori cittadini" al di fuori della comunità IT, ha affermato Bratincevic.
Tuttavia, le organizzazioni potrebbero dover affrontare sfide legate alla governance dell’implementazione su larga scala, in particolare con la gestione degli sviluppatori cittadini che possono essere migliaia, ha avvertito. Anche i prezzi possono costituire un ostacolo, poiché in genere si basano sul numero di utenti finali, ha affermato.
Sebbene la Gen AI o gli assistenti software basati sull’intelligenza artificiale possano consentire ai professionisti junior di colmare le lacune di talento, anche nel campo della sicurezza informatica, Lo Giudice ha affermato che per tutti questi compiti è ancora necessaria una revisione oculistica da parte di un esperto.
Bratincevic è d'accordo, sottolineando la necessità che gli sviluppatori e gli altri dipendenti coinvolti nel ciclo di vita dello sviluppo del software rivedano tutto ciò che la piattaforma genera o auto-configura utilizzando l'intelligenza artificiale.
"Non siamo ancora, e probabilmente non lo saremo mai, al punto di fidarci ciecamente dell'intelligenza artificiale per lo sviluppo del software", ha affermato.
Innanzitutto, ci sono requisiti di sicurezza da considerare, secondo Scott Shaw, CTO per l'area Asia-Pacifico di Thoughtworks. La società di consulenza tecnologica testa regolarmente nuovi strumenti per migliorare la propria efficienza, sia nell'IDE che per supportare il lavoro degli sviluppatori. L’azienda lo fa dove è appropriato per i suoi clienti e solo con il loro consenso, ha detto Shaw a ZDNET, sottolineando che alcune aziende sono ancora nervose all’idea di utilizzare la Gen AI.
"La nostra esperienza è che gli strumenti di codifica software [basati sull'intelligenza artificiale] non sono così attenti alla sicurezza e [in sintonia con] le pratiche di codifica di sicurezza", ha affermato. Ad esempio, gli sviluppatori che lavorano per organizzazioni in un ambiente regolamentato o sensibile ai dati potrebbero dover aderire a pratiche e controlli di sicurezza aggiuntivi come parte dei processi di distribuzione del software.
L'utilizzo di un assistente di codifica può raddoppiare la produttività, ma gli sviluppatori devono chiedersi se possono testare adeguatamente il codice e soddisfare i requisiti di qualità lungo la pipeline, ha osservato.
È un’arma a doppio taglio: le organizzazioni devono considerare come la Gen AI può aumentare le loro pratiche di codifica in modo che i prodotti che sviluppano siano più sicuri e, allo stesso tempo, come l’AI comporta ulteriori rischi per la sicurezza con nuovi vettori di attacco e vulnerabilità.
Poiché offre una scala significativa, la Gen AI amplifica tutto ciò che fa un’organizzazione, compresi i rischi associati, ha osservato Shaw. Con esso è possibile generare molto più codice, il che significa anche che il numero di potenziali rischi aumenta in modo esponenziale.
Conosci i tuoi modelli di intelligenza artificiale
Sebbene le piattaforme low-code possano rappresentare una buona base per i Turingbots della Gen AI per aiutare lo sviluppo del software, Bratincevic ha osservato che le organizzazioni dovrebbero sapere quali modelli linguistici di grandi dimensioni (LLM) vengono utilizzati e assicurarsi che siano in linea con le loro politiche aziendali.
Ha affermato che i giocatori della Gen AI "variano molto" in questo senso e ha esortato le aziende a verificare la versione e il contratto di licenza se utilizzano LLM pubblici come ChatGPT di OpenAI.
Ha aggiunto che le funzionalità basate sull’intelligenza artificiale della generazione per la generazione di codici o configurazioni di componenti dal linguaggio naturale devono ancora maturare. Potrebbero vedere una maggiore adozione tra gli sviluppatori cittadini, ma è improbabile che impressionino gli sviluppatori professionisti.
Bratincevic ha dichiarato: "Al momento, una piattaforma low-code collaudata e ben integrata, oltre alla Gen AI, è un approccio più sensato rispetto a una piattaforma non provata o leggera che parla bene di intelligenza artificiale".
Mentre gli LLM svolgono il pesante lavoro di scrittura del codice, gli esseri umani devono comunque sapere cosa è richiesto e fornire il contesto, le competenze e il debug pertinenti per garantire che l'output sia accurato, ha aggiunto Bachman.
Gli sviluppatori devono anche essere attenti a condividere i dati proprietari e la proprietà intellettuale (IP), in particolare con strumenti open source, ha affermato. Dovrebbero evitare di utilizzare IP privati, come codici e dati finanziari, per assicurarsi di non addestrare i propri modelli Gen AI utilizzando l'IP di un'altra organizzazione o viceversa. "E se scegli di utilizzare un LLM open source, assicurati che sia ben testato prima di metterlo in produzione", ha aggiunto.
"Sarei estremamente cauto riguardo ai modelli su cui vengono addestrati gli strumenti della Gen AI. Se vuoi che questi modelli siano preziosi, devi impostare pipeline adeguate. Se non lo fai, la Gen AI potrebbe causare molti più problemi", ha avvertito.
Siamo agli inizi e la tecnologia continua ad evolversi; il suo impatto sul modo in cui i ruoli, compresi gli sviluppatori di software, cambieranno rimane tutt’altro che certo.
Ad esempio, gli assistenti di codifica basati sull’intelligenza artificiale possono cambiare il modo in cui vengono valutate le competenze. Shaw ha scherzato: gli sviluppatori saranno ritenuti migliori perché hanno più esperienza o perché riescono a ricordare tutte le sequenze di codifica?
Per ora, ritiene che il più grande caso d’uso potenziale sia la capacità della Gen AI di riassumere le informazioni, offrendo una buona base di conoscenza agli sviluppatori per comprendere meglio il business. Quindi, possono tradurre tale conoscenza in istruzioni specifiche, in modo che i sistemi possano eseguire le attività e creare i prodotti e le funzionalità desiderati dai clienti.
