IDS - Interaction Design Solutions

Intelligenza Artificiale: opportunità e rischi nello sviluppo software

Giorgio Brajnik Giorgio Brajnik
· 17 September 2024

Negli ultimi tempi, l’Intelligenza Artificiale (AI) è diventata un tema centrale di discussione in molti settori, incluso quello dello sviluppo software. Al recente Forum Ambrosetti, si è parlato approfonditamente dell’AI (vedi anche il rapporto “AI 4 Italy”), evidenziando le sfide che questa tecnologia emergente potrebbe portare. Parallelamente, in un’intervista a Il Fatto Quotidiano, la rettrice del Politecnico di Milano, Donatella Sciuto, ha affrontato la questione dell’AI come “opportunità o rischio di uso”, sottolineando l’importanza di un approccio equilibrato.

Da un post pubblicato qualche giorno fa, esce la preoccupazione da parte di alcuni sviluppatori di voler mantenere il controllo del codice prodotto. Questo è particolarmente rilevante considerando il tempo necessario a rivedere il codice generato dall’AI e apportare eventuali correzioni.

Ma come si pone la Generative AI nello sviluppo software?


È innegabile che l’AI generativa stia avendo, e avrà sempre di più, un impatto significativo sulle attività legate allo sviluppo del software. Gli strumenti basati su AI possono accelerare il processo di programmazione, automatizzare compiti ripetitivi e persino suggerire soluzioni innovative a problemi complessi.

Opportunità o rischio? L’analogia dell’automobile

L’automobile è un’opportunità perché ci permette di raggiungere rapidamente una vasta gamma di destinazioni e di trasportare persone e merci con facilità. Tuttavia, presenta anche rischi, come gli incidenti stradali e la ridotta attività fisica che può portare a problemi di salute.

Allo stesso modo, l’AI offre enormi opportunità per chi è disposto a coglierle. Può aumentare la produttività, migliorare la qualità degli artefatti prodotti e ottimizzare il processo di sviluppo. Nel rapporto Ambrosetti si parla di adozione diffusa dell’IA generativa che potrebbe generare fino a 312 miliardi di euro di valore aggiunto annuo per l’economia italiana nei prossimi 15 anni, pari a una crescita del 18,2% del PIL. E che le PMI potrebbero beneficiare fino a 122 miliardi di euro di crescita del valore aggiunto.

Ma l’AI nel contesto dello sviluppo del software presenta anche rischi significativi.

I 2 principali rischi dell’AI applicata nell’ingegneria del software

  1. Decisioni errate dovute ad allucinazioni o bias. Uno dei rischi principali è legato alle decisioni errate causate da “allucinazioni” dell’AI o da bias incorporati nei dati di training. L’AI potrebbe fornire risposte imprecise o fuorvianti, portando a errori nel codice o a soluzioni inefficaci.

  2. Riduzione del pensiero critico. Un altro rischio riguarda l’abitudine a pensare di meno e a non applicare il pensiero critico in modo sistematico. Ad esempio, potremmo affidare a ChatGPT la produzione di parti di codice e, dopo alcune sessioni positive, accettare rapidamente le sue proposte senza una revisione approfondita, fidandoci solamente di alcune esecuzioni di prova. Il risultato è un codice che non ci appartiene realmente perché non lo comprendiamo a fondo, e che è stato testato in maniera potenzialmente non affidabile, creando un debito tecnico. Questo debito può renderci incapaci di intervenire efficacemente e rapidamente per modificare il codice quando necessario.

Domande cruciali da porsi

L’AI scriverà codice per noi? Intere applicazioni?

 Sì, l’AI ha già iniziato a scrivere codice per noi. Strumenti come GitHub Copilot, OpenAI Codex e altri assistenti di coding basati su AI possono generare snippet di codice, funzioni e persino moduli completi basati su input in linguaggio naturale o contesto del codice esistente. In alcuni casi, l’AI può anche aiutare nella generazione di intere applicazioni semplici, specialmente per compiti standardizzati o ripetitivi.

Tuttavia, sviluppare un’applicazione completa va oltre la semplice scrittura di codice. Richiede comprensione profonda dei requisiti degli utenti, progettazione dell’architettura del sistema, considerazioni su scalabilità, sicurezza, usabilità e conformità a normative specifiche. Questi aspetti richiedono un livello di giudizio, creatività e comprensione contestuale che attualmente l’AI non possiede.

Valutazione dei Limiti:

  • Comprensione Contestuale Limitata: L’AI opera basandosi su pattern riconosciuti nei dati di training. Non ha una comprensione reale del contesto o delle intenzioni dell’utente, il che può portare a risultati non allineati con le aspettative.

  • Creatività e Innovazione: L’AI tende a riprodurre soluzioni esistenti e potrebbe non essere in grado di proporre soluzioni innovative o creative a problemi nuovi.

  • Etica e Normative: L’AI non può autonomamente considerare implicazioni etiche o legali, come la conformità a leggi sulla privacy o regolamenti di settore.

Il lavoro come sviluppatore di software sparirà?

È improbabile che il ruolo dello sviluppatore software sparisca. Invece, è destinato a trasformarsi. Gli sviluppatori potrebbero passare da scrittori di codice a orchestratori del processo di sviluppo, concentrandosi su:

  • Supervisione dell’AI: Guidare l’AI, fornendo input precisi e valutando output.

  • Revisione e validazione: Controllare il codice generato dall’AI per garantirne la correttezza, l’efficienza e la sicurezza.

  • Problem solving creativo: Affrontare sfide complesse che richiedono pensiero critico e innovazione.

  • Interazione umana: Comprendere le esigenze degli stakeholder, collaborare con team multidisciplinari e comunicare soluzioni.

Valutazione dei limiti:

  • Rischio di disoccupazione tecnologica: Potrebbe esserci una riduzione della domanda per sviluppatori in ruoli più junior o per compiti più semplici, richiedendo una riqualificazione professionale.

  • Disparità di competenze: Non tutti gli sviluppatori potrebbero adattarsi facilmente al nuovo paradigma, creando una divisione tra chi abbraccia l’AI e chi rimane indietro.

  • Sovraccarico cognitivo: La necessità di monitorare costantemente l’AI potrebbe aumentare il carico di lavoro mentale, anziché ridurlo.

L’AI scriverà codice che non saremo in grado di comprendere facilmente? Avremo voglia di farlo? Sarà necessario farlo?

L’AI potrebbe generare codice che, a prima vista, potrebbe sembrare opaco o complesso, specialmente se utilizza pattern o algoritmi non familiari al team di sviluppo. La comprensione del codice rimane fondamentale per diversi motivi:

  • Manutenzione: Il codice deve essere mantenuto nel tempo, adattato a nuove esigenze o corretto in caso di bug.

  • Sicurezza: Senza una comprensione approfondita, potremmo introdurre vulnerabilità nel sistema.

  • Affidabilità: Comprendere il codice assicura che funzioni come previsto e che soddisfi i requisiti degli utenti.

Sarà necessario sviluppare nuove competenze per interpretare e gestire efficacemente il codice generato dall’AI, e implementare pratiche che promuovano la leggibilità e la documentazione, anche nell’era dell’AI.

Valutazione dei limiti:

  • Resistenza umana: Potrebbe mancare la motivazione per approfondire codice generato automaticamente, portando a una dipendenza eccessiva dall’AI.

  • Debito tecnico accumulato: Senza comprensione, si rischia di accumulare debito tecnico, rendendo il sistema fragile nel lungo termine.

  • Formazione insufficiente: Non tutti gli sviluppatori potrebbero avere le competenze o il tempo per analizzare codice complesso generato dall’AI.

Che garanzie potremmo avere sul codice scritto dall’AI?

Attualmente, le garanzie sul codice scritto dall’AI sono limitate. L’AI non comprende concetti come intenzionalità, etica o sicurezza nel modo in cui lo fanno gli esseri umani. Pertanto, il codice generato potrebbe:

  • Contenere bug o vulnerabilità: L’AI potrebbe introdurre errori non immediatamente evidenti.

  • Violazione di licenze: Potrebbe riprodurre codice protetto da copyright, causando problemi legali.

  • Bias incorporati: Potrebbe riflettere bias presenti nei dati di training, portando a soluzioni discriminatorie o ingiuste.

Per mitigare questi rischi, è fondamentale:

  • Implementare processi di revisione: Codice generato dall’AI deve essere sottoposto a rigorosi controlli umani.

  • Utilizzare testing automatizzato: Implementare suite di test per verificare la funzionalità e la sicurezza del codice.

  • Monitorare e aggiornare l’AI: Assicurarsi che i modelli di AI siano aggiornati e addestrati su dataset appropriati.

Valutazione dei limiti:

  • Opacità dell’AI: Modelli di AI complessi possono essere “scatole nere”, rendendo difficile capire perché generano certi output.

  • Responsabilità legale ed etica: In caso di problemi, potrebbe essere complicato determinare chi è responsabile: l’AI, lo sviluppatore o l’organizzazione?

Queste domande non riguardano solo la tecnologia, ma soprattutto come decideremo di utilizzarla. La responsabilità nell’uso dell’AI sarà cruciale per massimizzare i benefici e minimizzare i rischi.


L’Intelligenza Artificiale avrà indubbiamente un impatto dirompente nel nostro settore, trasformando il modo in cui sviluppiamo software e il ruolo degli sviluppatori stessi. Tuttavia, rimangono aspetti chiave che richiedono l’intervento umano:

  • Definizione e comprensione profonda dei requisiti: Dobbiamo essere in grado di comunicare all’AI non solo cosa vogliamo che l’applicazione faccia, ma anche comprendere le sfumature dei bisogni degli utenti, le implicazioni etiche e sociali, e tradurre tutto ciò in requisiti tecnici chiari.

  • Validazione critica e responsabilità: È nostra responsabilità validare ciò che l’AI propone, assicurando che sia sicuro, efficace e conforme ai valori e alle normative della società. Dobbiamo valutare attentamente i rischi per gli utenti, per chi implementa la soluzione e per l’ecosistema più ampio.

In definitiva, l’AI è uno strumento potente che, se utilizzato con saggezza, può amplificare le nostre capacità. Tuttavia, non sostituisce il giudizio umano, la creatività e la responsabilità etica. È essenziale affrontare queste domande e sfide ora, per guidare l’evoluzione del nostro settore in una direzione che avvantaggi tutti.


Invito la comunità a riflettere su queste domande e a condividere le proprie esperienze. Come pensate che l’AI stia cambiando il vostro ruolo? Quali strategie state adottando per adattarvi a questa nuova era?

Pubblicato originariamente come Articolo LinkedIn.