Estudo revela que o GitHub Copilot melhora a qualidade do código
GitHub Copilot transforma o desenvolvimento de software, tornando-o 55% mais rápido e com maior qualidade, funcionalidade e legibilidade
GitHub Copilot transforma o desenvolvimento de software, tornando-o 55% mais rápido e com maior qualidade, funcionalidade e legibilidade
Desde que o GitHub Copilot foi lançado ao público há dois anos, a IA mudou fundamentalmente o desenvolvimento de software, provando que pode ajudar desenvolvedores a escrever códigos até 55% mais rápido e com mais confiança. Para determinar como o Copilot afeta a qualidade do código, o GitHub conduziu um estudo controlado e randomizado, constatando que o código criado com a ajuda da ferramenta tem maior funcionalidade e melhor legibilidade, além de ser de melhor qualidade e ter taxas de aprovação mais altas.
O estudo foi feito com 202 desenvolvedores com ao menos cinco anos de experiência. Os participantes foram solicitados a concluir uma tarefa de codificação escrevendo endpoints de API para um servidor da Web. Metade foi instruída a utilizar o GitHub Copilot e a outra metade a não utilizar nenhuma ferramenta de IA. Em seguida, o GitHub avaliou o código com testes de unidade e com uma revisão especializada realizada por desenvolvedores.
A análise revelou que o código escrito com o GitHub Copilot tinha 56% mais chances de passar em todos os 10 testes de unidade, demonstrando que a ferramenta ajuda os desenvolvedores a produzir um código mais funcional. Os usuários do Copilot também escreveram, em média, 13,6% mais linhas de código sem encontrar problemas de legibilidade. Além disso, a legibilidade melhorou em 3,62%, a confiabilidade em 2,94%, a capacidade de manutenção em 2,47% e a concisão em 4,16%.
Por fim, foi constatado que os desenvolvedores estavam 5% mais propensos a aprovar o código escrito com o GitHub Copilot. Isso significa que esse código poderia ser mesclado mais cedo, acelerando o tempo para corrigir bugs e a implantação de recursos.
O resultado final
Embora o número de commits e linhas de código alteradas tenha sido significativamente maior para o grupo do GitHub Copilot, o tamanho médio do commit foi um pouco menor. Isso sugere que o GitHub Copilot permitiu que os desenvolvedores fizessem iterações no código para melhorar a qualidade. “Nossa hipótese é que, como os desenvolvedores passaram menos tempo tornando o código funcional, eles puderam se concentrar mais em refinar a qualidade. Isso se alinha com descobertas anteriores de que os desenvolvedores se sentem mais confiantes usando a ferramenta e também demonstra que, com essa confiança, eles provavelmente alteraram o código sem o medo de causar erros”, disse Jared Bauer, pesquisador do GitHub.
O primeiro estudo controlado a avaliar o impacto do GitHub Copilot na qualidade do código demonstra que a ferramenta contribui para a criação de códigos de alta qualidade. A hipótese é que estudos anteriores podem não ter observado essa melhoria porque os desenvolvedores não tiveram oportunidade ou incentivo para priorizar a qualidade. “Esses dados reforçam pesquisas anteriores, que apontam o GitHub Copilot como uma solução poderosa para acelerar o desenvolvimento, aumentar a satisfação no trabalho e impulsionar a criatividade e a inovação das equipes”, finaliza o pesquisador.
Metodologia
Na primeira fase do estudo, 243 desenvolvedores com pelo menos cinco anos de experiência em Python foram recrutados e divididos aleatoriamente para utilizar ou não o GitHub Copilot. Eles realizaram um exercício de codificação para criar um servidor web de avaliações fictícias de restaurantes, testado por 10 unit tests. Foram recebidas 202 submissões válidas: 104 usando o GitHub Copilot e 98 sem a ferramenta.
Na segunda fase, as submissões foram avaliadas por desenvolvedores, sem saber quais tinham sido feitas com a ajuda do Copilot ou não, seguindo critérios estabelecidos. Cada código foi revisado por pelo menos 10 participantes, totalizando 1.293 revisões. As avaliações analisaram erros linha por linha e aspectos gerais, como legibilidade, confiabilidade, manutenção, concisão e aprovação do código.
*Fonte: GitHub