No último ano, o GitHub disponibilizou uma preview do Copilot, ferramenta IA de Pair Programming (Programação em par) que se conecta ao editor da pessoa desenvolvedora e oferece sugestões de códigos em tempo real. Apesar da preview estar disponível apenas para alguns usuários, quem começou a usar o Copilot relatou que o programa se tornou uma parte indispensável dos workflows diários.
Agora, o GitHub Copilot está disponível para todas as pessoas desenvolvedores. O feedback analisados e a pesquisa com usuários do Copilot reforçam a tese central: a IA pode ajudar desenvolvedores a serem mais produtivos enquanto escrevem códigos. Mais ainda, a plataforma queria testar essa teoria e ver se o próprio GitHub Copilot resulta em taxas de produtividade maiores entre desenvolvedores.
Para encontrar a resposta, as equipes de pesquisa e engenharia combinaram dados de pesquisa qualitativa de mais de 2 mil desenvolvedores que moram nos EUA com dados anônimos para determinar se os desenvolvedores sentem que o GitHub Copilot os torna mais produtivos – e se os dados comprovam que eles estão, de fato, produzindo mais ao usar o GitHub Copilot.
Este foi o primeiro de muitos estudos que o GitHub fará sobre o Copilot, e os primeiros resultados são promissores.
Humanos, calculadoras e GitHub Copilot
Se você programa em par com um amigo ou colega, isso faz de você mais produtivo? A maioria das pessoas concorda que, mesmo que as sugestões de um amigo não sejam perfeitas, trabalhar com alguém normalmente ajuda a alcançar os objetivos de codificação mais rapidamente, entregar produtos finais melhores, e aprender algo novo durante o processo. Pesquisas acadêmicas também encontraram evidência de que programar em par aumenta a produtividade.
Em contraste, tentar resolver um problema de matemática com uma calculadora que frequentemente dá as respostas erradas, seria útil? Provavelmente não. A diferença é que o que mais valorizamos em uma calculadora é a precisão. Não são muitas as pessoas que recorrem a uma calculadora para se inspirar.
De certa maneira, o GitHub Copilot é como um desenvolvedor em par com uma calculadora embutida. Funciona muito bem para as coisas complicadas, e quem usa pode confiar que ele vai fechar todos os parênteses na ordem certa – o que é bem útil.
Embora o GitHub Copilot possa ajudar em tarefas como garantir que os parênteses sejam todos fechados, os desenvolvedores revelaram que priorizam também outras funcionalidades, como a sugestão de padrões e de boilerplates pré-programados – o que economiza tempo e demanda pouca mudança de texto.
Estudando o impacto do GitHub Copilot na produtividade da pessoa desenvolvedora
O GitHub Copilot foi criado para ajudar a tornar as pessoas desenvolvedoras mais felizes e produtivas ao mantê-las focadas no que mais importa: criar softwares incríveis.
Mas a palavra “produtividade” no desenvolvimento tem muitos significados práticos. Pessoas desenvolvedoras idealmente querem lembrar de atalhos de teclado ou evitar buscas no Google e no StackOverflow? O GitHub Copilot deveria ajudar a mantê-las no fluxo e dar soluções altamente precisas em tarefas mecanizadas, como uma calculadora? Ou deveria inspirá-los com stubs especulativos que podem ajudá-los a desbloquear o passo em que estão presos?
O GitHub Copilot basicamente explora territórios desconhecidos, então o primeiro passo da empresa foi perguntar para as pessoas, em uma pesquisa, o que elas querem. O GitHub bateu as respostas com dados colhidos anonimamente para determinar se as pessoas realmente sentiram um boost na produtividade e se isso se refletia em como eles usavam o programa na realidade.
No total, a pesquisa abrangeu mais de 2 mil pessoas desenvolvedoras dos Estados Unidos e comparou as respostas com dados de usuários recolhidos no mesmo período. O objetivo era responder três perguntas:
- As pessoas sentem que o GitHub Copilot fazem delas mais produtivas?
- Esse sentimento reflete em alguma medida objetiva de uso?
- Quais medidas de uso refletem melhor esse sentimento?
Descobertas: o uso do GitHub Copilot está correlacionado ao aumento da produtividade
As pessoas que ajudaram a desenvolver o GitHub Copilot ficaram bastante satisfeitas ao analisarem como o programa era descrito nas pesquisas: empoderador de diversas maneiras.
A conexão com o uso de dados objetivos também ficou clara. Por exemplo, o GitHub contou com quantos caracteres o GitHub Copilot contribuiu, o número de sugestões mantidas, e com que frequência o GitHub Copilot fazia sugestões no geral. Tudo isso relacionou-se com a usabilidade e aumento da produtividade.
A conexão mais forte foi encontrada dividindo o número de soluções aceitas pelo de sugestões apresentadas. A taxa de aceitação capta quantas das sugestões de código do GitHub Copilot são consideradas boas o bastante para serem aceitas.
Os desenvolvedores que relataram um maior ganho de produtividade com o GitHub Copilot também aceitaram o maior número de soluções sugeridas.
Ao dividir os usuários em diferentes quartis, baseando-se no quão útil eles classificaram o GitHub Copilot, percebeu-se uma grande diferença entre os gruposs. O grau de aceitação dos complementos era muito maior para aqueles que relataram os maiores ganhos de produtividade.
O GitHub concluiu que as pessoas desenvolvedoras não ligam tanto de ter que reescrever a sugestão, desde que o Copilota lhes desse um ponto de partida adequado.
Faz sentido: o GitHub Copilot não foi pensado para construir um software sozinho. Foi projetado para oferecer sugestões úteis que tornam mais fácil manter o fluxo de trabalho. Em outras palavras, o programa oferece aos desenvolvedores as peças, mas deixa para eles montarem e criarem o produto final.
Saiba mais sobre o estudo e conclusões do impacto do GitHub Copilot na produtividade
Além de divulgar os resultados, o GitHub também escreveu um artigo acadêmico com os dados descobertos e informações gerais sobre as taxas de aceitação das sugestões de códigos entre as pessoas que usam o GitHub Copilot. Acesse para ver de maneira mais profunda e sistemática tópicos como retenção, diferenças de linguages, e finais de semana de programação. O trabalho foi apresentado na PLDI’s MAPS ‘22 (Simpósio anual sobre machine programming).