Perché solo la AI non è sufficiente per incrementare la produttività nello sviluppo di software

Stack Overflow è arrivato 15 anni fa, rivoluzionando il modo in cui i programmatori condividono conoscenze e codice pronto all’uso. Oggi assistiamo a un’altra trasformazione con l’intelligenza artificiale generativa (IA) che ha preso d’assalto il mondo della programmazione. Interfacce di chat e plugin come GitHub Copilot e ChatGPT stanno generando codice dando ai developer il potere di creare codice quasi istantaneamente.

Tuttavia, chi pensa che questi strumenti possano trasformarli in super sviluppatori software da un giorno all’altro s’illude. Utilizzare uno strumento di generazione di codice richiede ancora di essere un bravo programmatore che deve comunque fare lo sforzo di comprendere il codice prodotto e capire se è corretto e il migliore possibile per il caso d’uso.

Gli strumenti di codegen sono addestrati su grandi quantità di codice esistente, compresi i modi in cui il codice è stato scritto e come ha risolto problemi in passato. Se stai scrivendo qualcosa che risolve problemi comuni – come connessioni a database o SDK, definizioni di API – il codegen può gestirlo facilmente ed eccelle in questi tipi di compiti.

Ad esempio, se ho bisogno di una funzione per connettersi a un database, il codegen può crearla per me in modo rapido. Questo è un enorme risparmio di tempo rispetto alla ricerca manuale e alla modifica di esempi di codice. Tuttavia, il vero trucco è sapere cosa vuoi. Il codegen può essere un ottimo aiuto se sai già cosa stai cercando di ottenere. Può essere uno strumento incredibilmente utile per risolvere problemi specifici per il team, l’azienda e il flusso di lavoro.

Tuttavia, i problemi di comprensione dei requisiti rimangono fondamentali. Il codice è sempre stato la parte più semplice, mentre i requisiti sono da sempre la sfida principale. Bisogna avere una comprensione chiara di cosa si vuole ottenere dal software in modo che il codegen possa generare il codice corretto.

Ma le risposte dell’IA non sono sempre affidabili, i risultati possono essere sbagliati o addirittura essere inventati. Gli sviluppatori dovrebbero quindi essere cauti nell’affidarsi ciecamente alle risposte dell’IA e infatti solo una esigua minoranza del 3% si fida senza remore. La vera efficacia dei codegen stanno nel loro aiuto alla documentazione e nella creazione di esempi di codice specifici per contesto del progetto. Tuttavia, per ottenere vantaggi reali è necessario migliorare l’intera organizzazione, non solo la velocità di scrittura del codice. Questo include l’automatizzazione dei processi, la condivisione della conoscenza in tutta l’azienda e la creazione di processi efficaci nella gestione del team.

Inoltre, è fondamentale concentrarsi sulle esigenze di documentazione quando si utilizza codice generato da IA. Una base di codice scarsamente documentata o compresa rappresenta un rischio per la produttività a lungo termine dell’organizzazione. È cruciale avere a disposizione le informazioni originali per riferimento, specialmente se non sono di dominio pubblico. Anche perché copiare e incollare semplicemente il codice potrebbe creare un problema di proprietà intellettuale per l’azienda in quanto al momento qualsiasi cosa è generata dalla AI non si può mettere sotto copyright oltre a un potenziale rischio di infrangere altri copyright usando codice che la AI ha preso da software protetti.

In sintesi, l’intelligenza artificiale generativa può sicuramente accelerare il processo di sviluppo del software, ma non può sostituire la comprensione approfondita dei requisiti e del contesto aziendale. Le organizzazioni che puntano a una produttività sostenibile devono concentrarsi sull’automazione, sulla condivisione della conoscenza, sull’ottimizzazione dei processi e sulla gestione dei team.