Ricerca nel sito web

Riuscirà l'intelligenza artificiale di Copilot di GitHub a riportare il divertimento nell'essere uno sviluppatore?


I ricercatori di GitHub confrontano la velocità con cui gli sviluppatori possono programmare con l'assistenza dell'intelligenza artificiale di Copilot rispetto a un gruppo che si affida a pratiche di sviluppo standard.

In una missione per misurare la produttività degli sviluppatori assistiti dall'intelligenza artificiale, i ricercatori di GitHub hanno recentemente condotto un esperimento confrontando le velocità di codifica di un gruppo che utilizza il suo strumento di completamento del codice Copilot rispetto a un gruppo che si affida solo alle capacità umane. 

GitHub Copilot è un servizio di programmazione dell'intelligenza artificiale lanciato pubblicamente all'inizio di quest'anno per $10 per utente al mese o $100 per utente all'anno. Sin dal lancio, i ricercatori sono stati curiosi di sapere se questi strumenti di intelligenza artificiale si traducono davvero in un aumento della produttività degli sviluppatori. Il problema è che non è facile identificare le metriche giuste per misurare i cambiamenti delle prestazioni. 

Copilot viene utilizzato come estensione per gli editor di codice, come VS Code di Microsoft. Genera suggerimenti di codice in più linguaggi di programmazione che gli utenti possono accettare, rifiutare o modificare. I suggerimenti sono forniti dal Codex di OpenAI, un sistema che traduce il linguaggio naturale in codice e si basa sul modello linguistico GPT-3 di OpenAI. 

VEDI: Che cos'è la codifica e a cosa serve? Una guida per principianti

Google Research e il Google Brain Team hanno concluso a luglio, dopo aver studiato l'impatto dei suggerimenti del codice AI sulla produttività di oltre 10.000 sviluppatori, che il dibattito sulla velocità relativa delle prestazioni rimane una "questione aperta". Ciò nonostante sia giunto alla conclusione che una combinazione di motori semantici tradizionali basati su regole e modelli linguistici di grandi dimensioni, come Codex/Copilot, "può essere utilizzata per migliorare significativamente la produttività degli sviluppatori con un migliore completamento del codice". 

Ma come si misura la produttività? Altri ricercatori all'inizio di quest'anno, utilizzando un piccolo campione di 24 sviluppatori, hanno scoperto che Copilot non migliorava necessariamente il tempo di completamento delle attività o il tasso di successo. Tuttavia, ha scoperto che Copilot ha risparmiato agli sviluppatori lo sforzo di cercare online frammenti di codice per risolvere problemi particolari. Questo è un indicatore importante di quanto uno strumento di intelligenza artificiale come Copilot possa ridurre i cambi di contesto, quando gli sviluppatori entrano ed escono da un editor per risolvere un problema.    

GitHub ha inoltre intervistato oltre 2.600 sviluppatori, ponendo domande del tipo: "Le persone pensano che GitHub Copilot le renda più produttive?" I suoi ricercatori hanno anche avuto il vantaggio di un accesso unico ai dati di telemetria su larga scala e hanno pubblicato la ricerca a giugno. Tra le altre cose, i ricercatori hanno scoperto che tra il 60% e il 75% degli utenti si sentono più soddisfatti del proprio lavoro quando utilizzano Copilot, si sentono meno frustrati durante la programmazione e sono in grado di concentrarsi su un lavoro più soddisfacente.

"Nella nostra ricerca, abbiamo visto che GitHub Copilot supporta tempi di completamento più rapidi, preserva l'energia mentale degli sviluppatori, li aiuta a concentrarsi su un lavoro più soddisfacente e, in definitiva, a trovare più divertimento nella codifica che fanno", ha affermato GitHub.

Il ricercatore di GitHub, Dr. Eirini Kalliamvakou, ha spiegato l'approccio: "Abbiamo condotto più cicli di ricerca includendo dati qualitativi (percettivi) e quantitativi (osservati) per assemblare il quadro completo. Volevamo verificare: (a) Le esperienze reali degli utenti confermano cosa deduciamo dalla telemetria? (b) Il nostro feedback qualitativo si generalizza alla nostra ampia base di utenti?"

Kalliamvakou, che era coinvolto nello studio originale, ora lo ha sviluppato con un esperimento che ha coinvolto 95 sviluppatori incentrato sulla questione della velocità di codifica con e senza Copilot.

Da questa ricerca è emerso che il gruppo che ha utilizzato Copilot (45 sviluppatori) ha completato l'attività in media entro 1 ora e 11 minuti. Il gruppo che non ha utilizzato Copilot (50 sviluppatori) lo ha completato in media in 2 ore e 41 minuti. Quindi, il gruppo con Copilot era il 55% più veloce rispetto al gruppo senza. 

Kalliamvakou ha anche riscontrato che una percentuale più elevata del gruppo con Copilot ha completato l’attività: il 78% del gruppo Copilot rispetto al 70% del gruppo senza Copilot.

Lo studio è di natura limitata perché ha confrontato solo la velocità degli sviluppatori durante la codifica di un server web in JavaScript e nessun'altra attività che coinvolge altri linguaggi come Python o Java. Inoltre, non ha valutato la qualità del codice. 

E l'esperimento non ha esaminato i fattori che contribuiscono alla produttività come il cambio di contesto. Tuttavia, uno studio precedente di GitHub ha rilevato che il 73% degli sviluppatori ha riferito che Copilot li ha aiutati a rimanere nel flusso. 

In una e-mail, Kalliamvakou ha spiegato a ZDNET cosa significava questa cifra in termini di cambio di contesto e produttività degli sviluppatori.  

"Dichiarare di 'rimanere nel flusso' implica certamente meno cambiamenti di contesto e abbiamo prove aggiuntive. Il 77% degli intervistati ha riferito che, quando utilizzano GitHub Copilot, dedicano meno tempo alla ricerca", ha scritto.

"La dichiarazione misura un cambiamento di contesto noto per gli sviluppatori, come la ricerca di documentazione o la visita di siti di domande e risposte come Stack Overflow per trovare risposte o porre domande. Con GitHub Copilot che porta informazioni nell'editor, gli sviluppatori non hanno bisogno di uscire dal contesto IDE tutte le volte'", ha spiegato. 

Ma utilizzare solo il cambio di contesto per misurare il miglioramento della produttività grazie ai suggerimenti del codice AI non può mostrare il quadro completo. Esiste anche un cambio di contesto "buono" e "cattivo", il che rende difficile misurare l'impatto del cambio di contesto. 

VEDI: Data scientist vs data engineer: come sta cambiando la domanda per questi ruoli

Durante un compito tipico, gli sviluppatori passano spesso tra diverse attività, strumenti e fonti di informazioni, ha spiegato Kalliamvakou.  

Ha fatto riferimento a uno studio pubblicato nel 2014 che ha rilevato che gli sviluppatori dedicano in media 1,6 minuti a un'attività prima di cambiare attività, ovvero cambiano in media 47 volte in un'ora. 

"Questo è dovuto alla natura del loro lavoro e alla moltitudine di strumenti che utilizzano, quindi è considerato un cambio di contesto "buono". Al contrario, c'è un cambio di contesto "cattivo" a causa di ritardi o interruzioni", ha detto.

"Nella nostra ricerca precedente abbiamo scoperto che questo danneggia molto la produttività, così come il senso di progresso degli sviluppatori. Il cambio di contesto è difficile da misurare, perché non abbiamo un buon modo per distinguere automaticamente tra "buono" e "cattivo". " casi - o quando un cambiamento fa parte del completamento di un'attività anziché provoca un'interruzione del flusso e della produttività degli sviluppatori. Tuttavia, ci sono modi per valutare il cambiamento del contesto attraverso autovalutazioni e osservazioni che utilizziamo nella nostra ricerca." 

Per quanto riguarda le prestazioni di Copilot con altre lingue, Kalliamvakou afferma di essere interessata a condurre esperimenti in futuro.

"È stato sicuramente un esperimento divertente da fare. Questi esperimenti controllati richiedono molto tempo poiché cerchiamo di renderli più grandi o più completi, ma mi piacerebbe esplorare la possibilità di sperimentare test per altre lingue in futuro", ha affermato. 

Kalliamvakou ha pubblicato altri risultati chiave del sondaggio su larga scala di GitHub in un post sul blog in cui descrive in dettaglio la sua ricerca per trovare le metriche più adatte per valutare la produttività degli sviluppatori.  

Articoli correlati