AI e codifica: come le aziende tecnologiche di Seattle utilizzano l'IA generativa per la programmazione
L'IA generativa sta già cambiando il modo in cui gli ingegneri del software svolgono il proprio lavoro.
GitHub Copilot, Amazon CodeWhisperer, ChatGPT, Tabnine e vari altri strumenti di codifica AI stanno rapidamente guadagnando terreno, aiutando gli sviluppatori ad automatizzare attività banali e liberandoli per lavorare su problemi più impegnativi.
Un nuovo sondaggio di GitHub ha rilevato che il 92% degli sviluppatori con sede negli Stati Uniti utilizza strumenti di codifica AI sia dentro che fuori dal lavoro e il 70% afferma che gli strumenti daranno loro un vantaggio sul lavoro.
La maggioranza ritiene inoltre che gli strumenti di intelligenza artificiale porteranno a una migliore collaborazione tra i team e aiuteranno a prevenire il burnout.
Un altro sondaggio di Stack Overflow ha mostrato un'adozione simile di strumenti di codifica AI, con il 77% che afferma di sentirsi favorevole all'utilizzo dell'IA nel proprio flusso di lavoro di sviluppo.
In un'intervista con Wired pubblicata martedì, il CEO di Microsoft Satya Nadella ha affermato di aver realizzato che l'IA sarebbe stata trasformativa quando ha visto la sua capacità di codificare, il che ha portato la società a sviluppare GitHub Copilot.
Abbiamo incontrato i leader ingegneristici di sei aziende tecnologiche di Seattle per scoprire come stanno utilizzando l'IA generativa e come sta cambiando il loro lavoro.
Diamond Bishop, CEO e co-fondatore di Augmend, una startup di software di collaborazione di Seattle “L'intelligenza artificiale sta facendo in modo che piccole startup come la nostra possano accelerare tutti gli aspetti del ciclo di vita dello sviluppo del software.
Siamo un team di cinque sviluppatori e stimiamo un impatto sulla produttività di quasi il doppio.
Ognuno di noi sfrutta sia Copilot che ChatGPT nello sviluppo, nel debug e nell'apprendimento quotidiani.
Conoscere il modo giusto per sfruttare questi strumenti e il modo migliore per essere uno sviluppatore cibernetico potenziato dall'intelligenza artificiale è un'abilità in sé, poiché ci sono insidie (API / funzioni allucinate) e incantesimi rapidi da imparare.
Ma è piuttosto prezioso in aree in cui non sei già un esperto, il che è molto in una situazione tuttofare in una nuova startup.
Tornare alla programmazione senza questo potenziamento è come lavorare senza Internet a portata di mano.
Bridget Frey, CTO di Redfin, una società immobiliare con sede a Seattle “Abbiamo già trovato una serie di luoghi in cui gli strumenti di intelligenza artificiale stanno rendendo i nostri ingegneri più efficienti.
Ad esempio, abbiamo utilizzato modelli LLM, incluso ChatGPT, con un discreto successo per assistere con attività interne come la migrazione da un linguaggio di programmazione a un altro, aiutare gli sviluppatori a comprendere il codice legacy scritto da altri colleghi o scrivere funzioni per convertire i formati di dati .
Questi sono buoni esempi di attività che i nostri ingegneri possono svolgere senza l'assistenza di LLM, ma con questi modelli possono muoversi molto più velocemente.
Qualcosa che un ingegnere impiegava 30 minuti a fare ora può essere fatto dall'intelligenza artificiale in un minuto.
Abbiamo anche trovato il modo di utilizzare questi strumenti per aiutarci a servire i clienti in modo più efficiente.
Ad esempio, non è insolito che i proprietari di case contattino il team del servizio clienti di Redfin e chiedano perché la stima di Redfin ha valutato la loro casa come ha fatto.
Quindi abbiamo insegnato a un LLM a spiegarci in un linguaggio semplice perché la stima Redfin potrebbe aver valutato una casa specifica in un modo particolare, e quindi possiamo trasmettere queste intuizioni tramite il nostro team di assistenza clienti al cliente per aiutarlo a capire cosa sta succedendo .
In altri casi, siamo ancora troppo presto nella fase di sperimentazione per vedere un impatto significativo, ma stiamo eseguendo dei test per vedere quale vantaggio potremmo ottenere.
Uno di questi esempi è con Copilot, di GitHub.
Stiamo cercando di determinare se la sua capacità di suggerire codice predittivo potrebbe aiutare a rendere alcune delle nostre attività di codifica più meccaniche un po' più veloci e più facili aiutandoci con semplici script".
Jonathan Wiggs, CTO e co-fondatore di Outbound AI, una startup di IA conversazionale con sede a Seattle "Recentemente abbiamo sfruttato GPT per scrivere riepiloghi narrativi delle telefonate effettuate dai nostri agenti virtuali basati sull'intelligenza artificiale, e quello che abbiamo scoperto è che GPT è in grado di farlo efficacemente allo stesso modo, se non meglio, di un lavoratore umano esperto.
È una delle cose che GPT fa molto bene.
Stiamo anche utilizzando alcuni processi generativi per scrivere frammenti di codice, in particolare per chiamate API ben note.
I modelli di linguaggio di grandi dimensioni sono ottimi per questo tipo di costruzione di codice mirata e basata su modelli.
Detto questo, è importante sottolineare che abbiamo ancora bisogno di ingegneri esperti e qualificati per il 90% del nostro lavoro.
Penso che le aziende che rimangono flessibili e adottano questi strumenti in modo pratico e ponderato vinceranno la giornata per se stesse e per i loro clienti ".
Laura Butler, CTO di Armoire, una startup di noleggio di abbigliamento di Seattle “Recentemente abbiamo iniziato a utilizzare GitHub Copilot.
È utile per generare gran parte del boilerplate per i test unitari.
Anche il completamento automatico e i suggerimenti automatici in Visual Studio Code sono abbastanza buoni, senza essere fastidiosi.
Intellisense e plug-in linguistici come Pylance sono in circolazione da un po' di tempo.
GitHub Copilot lo porta semplicemente al livello successivo.
Il problema più grande con l'intelligenza artificiale generativa e la codifica è che funziona meglio con i modelli e come copia e incolla più elaborata.
Ma la grande ingegneria non sta pompando tonnellate di codice.
Si tratta di meno codice, componenti condivisi, utilizzo di API e servizi già esistenti, qualità e manutenibilità.
Il mondo non ha bisogno di più file Javascript senza commenti.
Non ha bisogno di più codice difettoso che non sia stato pensato, rivisto o testato correttamente.
Penso che gli strumenti di intelligenza artificiale sarebbero di reale utilità per l'ingegneria in due aree: documentazione e brainstorming.
La documentazione e i commenti nel codice diventano obsoleti così facilmente o sono inutili.
Rendere facile per i programmatori impegnati scrivere buoni documenti e tenerli aggiornati sarebbe meraviglioso.
Assistenza per il brainstorming, generazione di molte immagini e opzioni dalle parole per accelerare l'ideazione: anche questo sarebbe fantastico.
Quelli di noi che non sono artisti grafici hanno bisogno di molta assistenza per visualizzare e condividere ciò che abbiamo in testa prima di iniziare a creare prototipi".
John Zhang, vicepresidente dell'ingegneria presso Highspot, una startup di software di vendita di Seattle “Abbiamo riscontrato vantaggi e limiti in parti uguali utilizzando l'IA generativa come 'co-pilota' per l'ingegneria.
Ci sta facendo risparmiare tempo, soprattutto per implementazioni generiche o per generare codice per alcuni scenari di test.
Naturalmente, controlliamo sempre ciò che fornisce e non abbiamo ancora visto il valore per implementazioni complesse.
Abbiamo iniziato a estenderne l'utilizzo a una gamma più ampia di ingegneri e ci aspettiamo un valore maggiore man mano che lo usiamo di più ".
Kevin Leneway, principale ingegnere del software presso Pioneer Square Labs, uno studio startup di Seattle “Abbiamo iniziato a creare app utilizzando GPT durante la beta privata GPT-3 nel 2020 e l'anno scorso sono stato uno dei primi utenti beta di GitHub Copilot.
Copilot è stato particolarmente utile per molte attività PSL come la prototipazione attorno a un'API sconosciuta o la scrittura rapida di codice boilerplate o semplici test.
Una volta ottenuto l'accesso a GPT-4 a marzo, ho davvero iniziato a esplorare fino a che punto avrei potuto spingere l'intelligenza artificiale per aiutarmi a creare un vero codice funzionante.
Solo per divertimento, ho iniziato a creare uno "stagista" di programmazione AI di nome Otto.
L'obiettivo è far interagire Otto con i miei flussi di lavoro di sviluppo e comunicazione esistenti proprio come qualsiasi altro sviluppatore del mio team.
Posso assegnare problemi in GitHub, fornire feedback tramite Slack ed eseguire una revisione interattiva del codice tramite richieste pull.
Otto può assumere vari ruoli; ad esempio, agendo come project manager convertendo i brief del progetto in un elenco dettagliato dei problemi di GitHub e persino come designer tramite un plug-in Figma che trasforma i progetti in componenti funzionanti nella mia app.
Quando ho concepito per la prima volta l'idea di Otto, ho riconosciuto che uno dei passaggi iniziali sarebbe stato scrivere tutto il codice per interfacciarsi con le API GitHub e Slack.
Normalmente questo sarebbe stato un lavoro molto noioso per apprendere queste API e far funzionare le basi, ma con GPT-4 sono riuscito a scrivere il codice di base in poche ore invece che in giorni.
Ho scoperto che GPT-4 può gestire in modo efficiente le parti banali, permettendomi di concentrarmi sulla pianificazione di livello superiore e sull'ingegnerizzazione rapida per rendere operativo l'intero progetto.
Ha rinvigorito la mia gioia di programmare in un modo che non provavo da quando ero un ragazzino che armeggiava con il mio Commodore 64.
Dovrei notare, tuttavia, nonostante sia un grande appassionato di intelligenza artificiale, ho anche alcune riserve sul futuro.
Ho dedicato gli ultimi 20 anni della mia carriera allo sviluppo di software e c'è sicuramente il timore che la mia conoscenza accumulata diventi meno rilevante entro i prossimi 5-10 anni.
Negli ultimi mesi ho sviluppato lentamente il mio bot di codifica automatica e ora che funziona per lo più, mi rendo conto di essere probabilmente una delle prime persone al mondo a capire veramente come ci si sente quando si ha un agente AI personalizzato e allineato che è in grado di svolgere gran parte del mio lavoro quotidiano.
È elettrizzante, ma c'è anche un po' di tristezza nel sapere che le competenze che ho coltivato stanno gradualmente diminuendo di utilità".