Home / Opinioni / L’IA non sostituirà gli ingegneri del software, li renderà indispensabili

L’IA non sostituirà gli ingegneri del software, li renderà indispensabili

Il dibattito mediatico sull’Intelligenza Artificiale (IA) si concentra sempre più spesso sulla prospettiva della scomparsa di molti lavori e di intere figure professionali, e fra queste quella dell’ingegnere del software. Lo stesso Jen-Hsun Huang, co-fondatore e presidente di NVIDIA, ha recentemente profetizzato la scomparsa degli sviluppatori software, soppiantati da sistemi di IA generativa.

Ma è davvero così? Davvero quella degli ingegneri del software è una professione destinata all’estinzione? A guardare a ciò che sta accadendo nelle aziende, e nella società, la risposta è un chiaro NO! Anzi, lungi dal rendere superflua la figura dell’ingegnere, l’IA ne sta di fatto ampliando ruolo e responsabilità. E, quindi, il valore. 

Andiamo per gradi. È indubbio che l’IA stia cambiando il modo di lavorare in molte professioni, compresa l’ingegneria del software. I moderni sistemi generativi sono in grado di scrivere codice, di creare prototipi e accelerare attività ripetitive. Tutto questo, però, ha a che fare con l’aumento della produttività degli ingegneri, certo non con la loro sostituzione.

Secondo il report “The potential impact of generative AI” di McKinsey (1), l’impatto diretto dell’IA sulla produttività dei team di ingegneria del software potrebbe variare dal 20% al 45%. Un dato sicuramente incoraggiante. Lo stesso report, però, precisa che tali incrementi riguardano soprattutto attività di basso livello, e sottolinea come l’accelerazione del processo di scrittura del codice, stia spostando le competenze e le capacità richieste agli ingegneri del software verso l’alto, verso la progettazione, la definizione architetturale, la sicurezza e la validazione. Insomma, nuove sfide e nuove opportunità.

Anche sulla qualità del codice generato dai sistemi di IA ci sarebbe molto da discutere. Una recentissima indagine (2) ha messo a confronto cinque fra i principali strumenti di IA generativa su compiti di programmazione evidenziando che, sebbene i Large Language Models (LLM) siano in grado di generare codice funzionante, introducono anche una serie di difetti, tra cui bug, vulnerabilità di sicurezza e code smell. Non è certamente questa la sede per un’analisi della letteratura, ma sono tante le pubblicazioni scientifiche che documentano come il codice generato dall’IA presenta spesso problemi strutturali o di manutenibilità.

Ma i possibili errori sedimentati nel codice non sono il problema più grave (chi è senza peccato scagli la prima pietra, e i miei studenti sanno di cosa parlo!). Il punto è che oggi il software si configura sempre di più come un’infrastruttura critica. Molte attività fondamentali della nostra vita (si pensi alla sanità, alla mobilità, alle comunicazioni) dipendono pesantemente da sistemi software. Affidare la loro produzione a strumenti di generazione automatica significherebbe rinunciare al controllo umano proprio nei punti più sensibili. Guai a pensare di sostituire con sistemi di IA il lavoro di professionisti preparati e consapevoli, capaci di valutare rischi, garantire robustezza, interpretare comportamenti anomali e prendere decisioni eticamente e tecnicamente informate.

Il ruolo degli ingegneri del software è fondamentale anche nello sviluppo degli stessi sistemi di IA, che sono essi stessi sistemi software. I problemi in agguato sono molti, dai bias dovuti a dati di scarsa qualità o polarizzati, alle vulnerabilità, dalla sicurezza delle pipeline di addestramento fino all’uso improprio dei modelli. Diversi studi accademici hanno dimostrato che modelli di IA possono essere compromessi già nella fase di addestramento, attraverso tecniche come il data poisoning (3). Rischi tutt’altro che banali, e che richiedono di strutturare processi rigorosi di validazione, test, monitoraggio e auditing. Ancora una volta, serve una figura che conosca i limiti della tecnologia e sia in grado di guidarne l’impiego: l’ingegnere del software.

E questo ci porta dritti al cuore del problema. L’ingegneria del software, ma in realtà tutta l’ingegneria, non è solo produzione. È comprensione, metodo, etica, responsabilità. Un progetto software efficace parte da una visione architetturale, un modello di dominio, una serie di scelte ponderate. Progettare un sistema software richiede la capacità di coordinarsi con esperti di diversi settori, di analizzare esigenze reali, di dialogare con gli stakeholder e utenti. È un’attività che coniuga creatività e rigore scientifico, e nessun modello di IA può sostituire l’intuizione progettuale, la responsabilità etica e la consapevolezza del contesto in cui il sistema andrà a operare. Tutte qualità, queste, che caratterizzano un buon ingegnere.

La prospettiva, dunque, non è quella di sostituire le competenze degli ingegneri del software, ma di rafforzarle, affinché il software, e i sistemi complessi di cui è parte integrale, continui ad essere uno strumento affidabile, equo e al servizio delle persone.

(1) https://www.mckinsey.com/capabilities/tech-and-ai/our-insights/the-economic-potential-of-generative-ai-the-next-productivity-frontier#/

(2) https://arxiv.org/abs/2508.14727

(3) https://ieeexplore.ieee.org/document/10510714

Foto generata da intelligenza artificiale.

Gerardo Canfora, Professore di Ingegneria del Software