GitHub Copilot and Developer Productivity: An Observational Dose-Response Analysis
Utilizzando 16.223 ingegneri Microsoft nell'arco di 43 settimane e un design a effetti fissi per ingegnere per controllare l'abilità e l'impegno individuale, questo studio rileva che l'uso di GitHub Copilot è associato a un aumento monotono del 40,5% nei tassi di completamento delle pull request a parità di tempo di codifica, indicando un effettivo guadagno di efficienza piuttosto che una correlazione con periodi di lavoro intrinsecamente più intensi.
Articolo originale sotto licenza CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Questa è una spiegazione generata dall'IA dell'articolo qui sotto. Non è stata scritta né approvata dagli autori. Per precisione tecnica, consulta l'articolo originale. Leggi il disclaimer completo
Immagina di cercare di capire se un nuovo paio di scarpe da corsa tecnologiche faccia effettivamente correre più velocemente le persone.
Il modo ovvio per testarlo è confrontare due gruppi: persone che indossano le scarpe e persone che indossano scarpe da ginnastica normali. Ma ecco il problema: forse le persone che scelgono di indossare le scarpe tecnologiche sono già atleti professionisti, mentre chi indossa le scarine comuni sono corridori amatoriali. Se chi indossa le scarpe corre più veloce, è merito delle scarpe o del fatto che sono già corridori migliori fin dall'inizio?
Questo è l'esatto enigma che i ricercatori di Microsoft hanno affrontato con GitHub Copilot, uno strumento di IA che aiuta gli ingegneri del software a scrivere codice. Volevano sapere: l'uso dell'IA rende effettivamente gli ingegneri più produttivi, o sono gli ingegneri che la usano di più che sono persone naturalmente più produttive?
Ancora peggio, c'è un secondo livello di confusione. Forse un ingegnere usa molto l'IA durante una settimana specifica non perché l'IA sia magica, ma perché quella settimana era un periodo di "crunch time" in cui lavorava 80 ore al giorno su un grande progetto. In quel caso, finirebbe più lavoro (Pull Request) semplicemente perché ha lavorato più a lungo, non perché l'IA lo abbia aiutato a lavorare più velocemente.
La Soluzione: L'Esperimento di "Auto-Confronto"
Poiché i ricercatori non potevano costringere casualmente alcuni ingegneri a smettere di usare lo strumento (sarebbe stato non etico e avrebbe interrotto il loro lavoro), hanno usato un trucco intelligente chiamato analisi "Within-Engineer" (all'interno dello stesso ingegnere).
Pensa a questo come a un esempio: invece di confrontare l'Ingegnere A (che usa l'IA) con l'Ingegnere B (che non la usa), hanno confrontato l'Ingegnere A con se stesso.
Hanno osservato lo stesso ingegnere per 43 settimane.
- Settimana 1: l'ingegnere ha usato l'IA pochissimo.
- Settimana 2: l'ingegnere ha usato l'IA intensamente.
Confrontando l'ingegnere con se stesso, hanno automaticamente annullato tutte le cose che rendono l'Ingegnere A diverso dall'Ingegnere B (come il talento naturale, il ruolo lavorativo o la cultura del team). Si stavano chiedendo: "Quando questa specifica persona usa l'IA di più, produce di più rispetto a quando la usa di meno?"
Il Test di "Efficienza": Lavoravano di più o meglio?
C'era ancora una variabile complicata: lo Sforzo.
Se un ingegnere usa molto l'IA, potrebbe anche solo stare seduto al computer a programmare per 10 ore invece di 5. Se finisce più lavoro, potrebbe essere semplicemente perché ha passato più tempo alla scrivania.
Per risolvere questo problema, i ricercatori hanno utilizzato un "filtro" statistico (un modello chiamato PPML) che manteneva costante il tempo trascorso a programmare.
- La Domanda: "Se l'Ingegnere A trascorre esattamente 8 ore a programmare, completa più codice quando usa l'IA intensamente rispetto a quando non la usa?"
Il Risultato: Sì. Anche quando il tempo trascorso a programmare era esattamente lo stesso, gli ingegneri che usavano l'IA intensamente completavano circa il 40% in più di progetti di codice (Pull Requests) rispetto alle settimane in cui non la usavano affatto.
La Batteria di "Falsificazione": Escludere le Scuse
I ricercatori sapevano che gli scettici avrebbero trovato altri motivi per questo risultato. Così, hanno eseguito sette diversi test "rilevatore di bugie" per vedere se i risultati fossero solo un caso.
Il Test dell' "IA Generica": Forse gli ingegneri che usano molto l'IA sono solo generalmente "tecnologici" e usano altri strumenti di IA (come in Word o Excel) il che li fa sentire più produttivi?
- Test: Hanno controllato se l'uso dell'IA in app non legate al codice (come PowerPoint) predicesse una maggiore produzione di codice.
- Risultato: No. Usare l'IA in Word non ha aiutato a scrivere codice. Era specificamente l'IA per la programmazione a fare la differenza.
Il Test dell' "Hype di Team": Forse l'intero team era in una settimana di "entusiasmo", quindi tutti usavano l'IA e tutti scrivevano più codice?
- Test: Hanno controllato se l'uso dell'IA di un ingegnere predicesse l'output dei suoi compagni di squadra.
- Risultato: No. Se fosse stato solo l'entusiasmo del team, il tuo uso dell'IA avrebbe dovuto predire l'output del tuo vicino. Non è successo.
Il Test del "Cambio di Task": Forse nelle settimane ad alta intensità di IA, gli ingegneri hanno smesso di revisionare il codice degli altri per concentrarsi esclusivamente sulla scrittura del proprio?
- Test: Hanno controllato se scrivere più codice significasse revisionare meno codice.
- Risultato: No. Gli ingegneri scrivevano più codice E revisionavano più codice quando usavano l'IA. Non hanno solo scambiato compiti; facevano di più in tutto.
Il Test della "Scomposizione": Forse gli ingegneri stavano solo frammentando grandi progetti in pezzi piccoli e facili per far sembrare i numeri migliori?
- Test: Hanno esaminato la dimensione dei progetti di codice.
- Risultato: No. Il massimo incremento si è registrato proprio nei progetti più grandi e complessi (7+ file), non in quelli piccoli.
Il Test del "Lavoro Facile": Forse stavano solo facendo scartoffie facili (come aggiornare file di testo) invece di programmare duramente?
- Test: Hanno separato i file di configurazione "facili" dai file di codice "difficili".
- Risultato: No. Il boost di produttività era in realtà più forte per i file di codice difficili.
Il Test della "Tempistica": Forse l'uso dell'IA nella Settimana 1 era solo un segno che l'ingegnere era in un "umore produttivo" che durava nella Settimana 2?
- Test: Hanno controllato se l'uso dell'IA della settimana precedente predicesse l'output di questa settimana.
- Risultato: No. Il potenziamento avveniva solo nell'esatta stessa settimana in cui veniva utilizzata l'IA.
In Breve
Lo studio conclude che GitHub Copilot rende realmente più efficienti gli ingegneri.
Quando un ingegnere usa lo strumento in modo più intensivo, completa circa il 40% di lavoro in più nello stesso lasso di tempo. Non è solo che le persone produttive usano lo strumento; lo strumento stesso sembra agire come un moltiplicatore di forza, aiutando gli ingegneri a fare di più senza dover lavorare più ore.
Tuttavia, i ricercatori sono cauti nel notare: questo studio misura l'efficienza (fare di più per ora). Non misura il tempo totale risparmiato. Se l'IA ti aiuta a finire un compito in 30 minuti invece di un'ora, la tua "efficienza" aumenta, ma potresti anche semplicemente smettere di lavorare prima. Lo studio dimostra che la velocità aumenta, ma non ci dice esattamente come gli ingegneri spendano quel tempo extra.
Sommerso dagli articoli nel tuo campo?
Ricevi digest giornalieri degli articoli più recenti corrispondenti alle tue parole chiave di ricerca — con riassunti tecnici, nella tua lingua.