L'AI generativa, nella forma di large language models (LLM), è spesso considerata un acceleratore della software delivery. È particolarmente utile per generare rapidamente codice standard e funzioni semplici e isolate. È anche sorprendentemente efficace nella revisione del codice: verifica che il nuovo codice sia conforme allo stile di codifica del progetto e raccomanda modifiche per risolvere i problemi individuati. In una certa misura, gli LLM possono persino eseguire il debug del codice, interpretare i messaggi di errore e suggerire soluzioni possibili. Inoltre, l'AI assiste gli sviluppatori nella gestione dei codici legacy fornendo preziose informazioni e documentazione, consentendo loro di partire con un vantaggio. Sfruttando gli LLM per queste attività, gli sviluppatori software possono migliorare significativamente la loro efficienza.
Quando si tratta di altre attività, però, le capacità dell'AI vengono spesso sopravvalutate. L'AI è in grado di generare bene piccole funzionalità isolate, ma utilizzarla per software di livello enterprise senza una forte governance e una supervisione architettonica può portare alla nascita di rischi strutturali. Senza l'esperienza umana necessaria per creare applicazioni estese e complesse, si rischia di creare un codice non strutturato e difficile da mantenere. Gli LLM richiedono anche un contesto adeguato per fornire un codice di qualità, il che significa che, sebbene si possa dedicare meno tempo alle attività di codifica pura, sarà necessario più tempo per articolare i requisiti funzionali e non funzionali. Anche uno sviluppatore umano ha bisogno di questo contesto, ma senza di esso un LLM può deviare molto più rapidamente dal percorso previsto.
"Senza una governance forte e linee guida chiare, la velocità dell'AI può portare altrettanto velocemente ad incompatibilità, debiti tecnici, funzionalità inutili e percorsi di codice ridondanti."
Change management
Senza fornire a un LLM il contesto di progetto adeguato e linee guida chiare, si rischia di creare ulteriori sprechi, con conseguenti implementazioni incoerenti, debiti tecnici, funzionalità inutili e percorsi di codice ridondanti. Con istruzioni accurate, gli LLM possono produrre buoni risultati. Tuttavia, la linea di demarcazione tra fornire un contesto sufficiente e non fornirlo è molto sottile, con differenze notevoli nei risultati. Si tratta di un'abilità che richiede esperienza e un piano di change management per la formazione delle persone.
"Affrettarsi ad adottare l'AI senza una formazione adeguata e un follow-up è uno degli errori più gravi che le aziende possono commettere. La gestione del cambiamento è fondamentale per andare oltre l'entusiasmo iniziale".
Sistemi di protezione
Dobbiamo anche tenere presente che questo ambito è in continua evoluzione e che c'è molto ancora da esplorare. Le best practice, gli strumenti e le tecniche cambiano rapidamente. Ecco perché sono essenziali delle linee guida, che si traducono in vincolo tecnici e processi strutturati.
Questa visione sta plasmando sempre più il modo in cui evolviamo la nostra Software Factory. Ci stiamo orientando verso un modello in cui i team possono avviare una fase di sviluppo per un progetto con il minimo sforzo, avvalendosi di sistemi di protezione supportati dall'intelligenza artificiale. I nostri clienti traggono vantaggio da questo modo di lavorare standardizzato, automatizzato e supportato dall'intelligenza artificiale per la distribuzione del software.
Stiamo sviluppando diversi agenti AI come componenti standard di questa “factory”, mentre i nostri team possono creare agenti specifici su misura per i loro progetti. Ad esempio, è possibile creare un agente che mantenga sincronizzati i diagrammi dell'architettura con il codice, uno che garantisca che gli sviluppatori utilizzino la corretta strategia di ramificazione nei loro repository di codice, un altro che verifichi il rispetto delle pratiche di versioning semantico, un agente che proponga test aggiuntivi per migliorare la copertura del codice e un agente che corregga automaticamente le vulnerabilità di sicurezza.
Alcune misure di protezione sono persino implementate come agenti AI, portando a uno scenario in cui l'AI controlla l'AI. In sostanza, i nostri team Cegeka integrano questi agenti AI come membri aggiuntivi del team specializzati in compiti particolari. Alcuni agenti forniscono suggerimenti, altri creano richieste di pull revisionate da esseri umani e altri ancora possono intervenire in modo autonomo per risolvere le vulnerabilità di sicurezza.
"Gli agenti AI sono sulla buona strada per evolversi in assistenti digitali specializzati. Alcuni suggeriscono già miglioramenti o creano richieste pull, mentre altri hanno il potenziale per agire in modo autonomo entro confini ben definiti."
Molti cambiamenti in arrivo nei prossimi anni
Con l'aumento della produttività grazie ai sistemi AI, le aspettative di tutti cambieranno di conseguenza. Ciò che in passato era considerato sufficiente, a un certo punto potrebbe non soddisfare più gli standard futuri. I clienti si aspetteranno software più completi e rifiniti, nonché tempi di implementazione più rapidi. L'arrivo dell'AI potrebbe costringere le aziende a modernizzare le applicazioni legacy, poiché il ROI positivo verrà raggiunto più rapidamente, con un conseguente aumento della domanda di sviluppo personalizzato.
Prevediamo che il volume di codice generato automaticamente aumenterà con la maturazione degli strumenti di AI. Anche se l'AI non sostituirà gli sviluppatori, ne ridefinirà radicalmente il ruolo. La scrittura di codice diventerà meno centrale, mentre l'orchestrazione degli agenti di AI assumerà un ruolo prioritario. Gli sviluppatori dedicheranno più tempo a utilizzare in modo efficace gli strumenti di AI, a eseguire il debug degli output generati dall'AI e a revisionare il comportamento degli agenti. Poiché l'AI introduce nuovi tipi di errori e incongruenze, l'esperienza umana è essenziale per salvaguardare una solida architettura, la sicurezza e la mantenibilità. Gli sviluppatori agiscono come autorità tecnica finale, garantendo che i vantaggi in termini di velocità non vadano a discapito della qualità del software.
"Man mano che l'intelligenza artificiale aumenta la produttività, le aspettative naturalmente crescono. Ciò che ieri era considerato 'sufficiente' domani non sarà più all'altezza degli standard".
Vuoi andare più a fondo?
Questo articolo è parte della serie Cegeka Software Factory in cui esploriamo come i Cegeka Application Services basati sull'intelligenza artificiale mettano al primo posto il valore concreto.
Potrebbe interessarti anche:
- Dal controllo dei costi alla software delivery incentrata sul valore: Leggi l'articolo...
- Perché la velocità dell'intelligenza artificiale richiede intelligenza umana: Leggi l'articolo...