Intelligenza artificiale e sviluppo software: perché la programmazione manuale resta fondamentale

Come l'AI sta rivoluzionando lo sviluppo software: l’importanza di un approccio ibrido in cui l’intelligenza artificiale supporta ma non sostituisce il programmatore. Thomas Dohmke (CEO di GitHub) sottolinea i rischi del “vibe coding”.

L’ascesa degli strumenti di intelligenza artificiale nello sviluppo software sta rivoluzionando il modo in cui i programmatori scrivono, testano e rilasciano codice. Tuttavia, secondo Thomas Dohmke, CEO di GitHub, nonostante l’efficienza che l’automazione può offrire, la padronanza della programmazione manuale rimane un pilastro irrinunciabile per garantire qualità e produttività.

Nonostante GitHub sia in prima linea nel fornire strumenti per la programmazione governata dall’intelligenza artificiale e agenti AI capaci di lavorare direttamente sul codice, durante un intervento su The MAD Podcast with Matt Turck, Dohmke ha sottolineato l’importanza di un approccio ibrido in cui l’AI genera codice e propone modifiche tramite pull request, ma è sempre il programmatore umano a verificare, rifinire e correggere. A suo avviso, il vero rischio è una dipendenza passiva dall’AI, dove anche semplici modifiche vengono comunicate in linguaggio naturale piuttosto che intervenendo direttamente sul codice.

La peggiore alternativa è dover descrivere in linguaggio naturale ciò che so già fare con il linguaggio di programmazione (Thomas Dohmke, CEO GitHub).

Codice generato dall’AI: serve controllo umano

La strategia del “trust and verify”, ovvero fidarsi ma verificare, sta diventando la norma. Secondo Deloitte, circa la metà del codice generato dall’AI presenta errori parziali, richiedendo la supervisione umana per garantire la robustezza e la sicurezza del software. Anche Google dichiara che oltre il 25% del proprio codice è ormai generato da AI, ma non rinuncia a un’accurata revisione umana prima del rilascio.

Questi dati evidenziano come gli strumenti AI siano utili soprattutto per attività ripetitive e a basso valore aggiunto — come la generazione di boilerplate code (codice che è possibile riutilizzare con modifiche minime o nulle in diversi contesti) — lasciando ai programmatori il compito di rifinire logiche complesse e assicurare l’aderenza agli standard di qualità.

Il ruolo del programmatore si evolve, non scompare

Contrariamente alle preoccupazioni sulla disoccupazione in ambito tecnologico, l’intelligenza artificiale non sta sostituendo gli sviluppatori, ma ne sta trasformando le competenze. Il nuovo scenario prevede due figure principali:

  • Ingegneri di prodotto, che usano l’AI per accelerare lo sviluppo;
  • Architetti software di alto profilo, responsabili della qualità, sicurezza e coerenza dei sistemi.

In particolare, i programmatori senior dovranno sviluppare capacità strategiche, saper istruire l’AI con prompt efficaci e prendere decisioni di design a livello architetturale. Intanto, l’AI si rivela un valido supporto per i developer junior, contribuendo a colmare il gap di competenze nel mercato. È un po’ la tesi recentemente descritta da Aparna Chennapragada, CPO di Microsoft, che sostiene: imparare a sviluppare software resterà essenziale.

“Vibe coding”: efficienza apparente, debito tecnico reale

Dohmke ha quindi fatto riferimento al concetto di “vibe coding“, introdotto da Andrej Karpathy, cofondatore di OpenAI, per descrivere un uso fiducioso e non verificato del codice generato da AI.

Il “vibe coding” può risultare attraente per startup e team piccoli, grazie alla rapidità nella prototipazione. Tuttavia, tale approccio può tradursi in codice fragile, difficile da mantenere e potenzialmente vulnerabile, soprattutto in assenza di competenze tecniche solide.

Questa dinamica è particolarmente critica per i soggetti non in possesso di un sufficiente bagaglio tecnico: rischiano di accumulare debito tecnico insostenibile nel medio-lungo periodo. Al contrario, le aziende più mature hanno già integrato processi di verifica e testing a fianco dell’automazione, dimostrando che la qualità non è un’opzione ma un requisito essenziale.

Conclusioni: AI come estensione, non sostituzione

L’intelligenza artificiale rappresenta un cambio di paradigma nello sviluppo software, ma non elimina la necessità della competenza umana. L’automazione può amplificare la produttività, ma solo se incanalata da sviluppatori in grado di comprendere, correggere e migliorare il codice.

La chiave del successo non è l’automazione totale, ma la collaborazione tra uomo e macchina, in un equilibrio dinamico tra velocità e affidabilità. La programmazione manuale (che come ricorda Leslie Laport è molto diversa dal semplice coding) non è un retaggio del passato, ma la base su cui costruire un futuro tecnologico sostenibile e di qualità.

Ti consigliamo anche

Link copiato negli appunti