paint-brush
IA no desenvolvimento de software: explorando o GitHub Copilot com insights da equipe de P&D da ELEKSpor@elekssoftware
754 leituras
754 leituras

IA no desenvolvimento de software: explorando o GitHub Copilot com insights da equipe de P&D da ELEKS

por ELEKS6m2024/02/06
Read on Terminal Reader

Muito longo; Para ler

Descubra o papel da IA no desenvolvimento de software enquanto ELEKS explora os recursos inovadores do GitHub Copilot.
featured image - IA no desenvolvimento de software: explorando o GitHub Copilot com insights da equipe de P&D da ELEKS
ELEKS HackerNoon profile picture
0-item
1-item

A IA está revolucionando o desenvolvimento de software, tornando-o mais eficiente, produtivo e inovador. Neste artigo, exploramos o impacto da IA no desenvolvimento de software, investigando os insights obtidos em nossa investigação do GitHub Copilot realizada pela equipe de P&D da ELEKS.


À medida que o mundo do desenvolvimento de software continua a evoluir, o papel da IA torna-se cada vez mais importante. Com benefícios como a capacidade de reduzir o tempo e o esforço necessários para a codificação e muito mais, não é de admirar que a IA no desenvolvimento de software seja um tema quente hoje em dia.


92% dos desenvolvedores baseados nos EUA já usam ferramentas de codificação de IA no trabalho e fora dele. - GitHub


70% dos desenvolvedores acreditam que as ferramentas de codificação de IA lhes darão uma vantagem distinta em seus empreendimentos profissionais, incluindo melhor qualidade de código, tempo de conclusão reduzido e recursos aprimorados de resolução de incidentes. - GitHub


4 em cada 5 desenvolvedores esperam que as ferramentas de codificação de IA tornem sua equipe mais colaborativa. - GitHub


Embora a IA não tenha atingido um estágio em que possa criar, testar e lançar produtos de software de forma independente e sem intervenção humana, em comparação com o passado, ela acelerou bastante o tempo de resposta geral.


Estão disponíveis muitas ferramentas baseadas em IA que podem ajudar no desenvolvimento de aplicativos personalizados, gerando e preenchendo automaticamente código, bem como detectando e corrigindo bugs. A equipe de Pesquisa e Desenvolvimento da ELEKS avaliou minuciosamente uma dessas ferramentas - GitHub Copilot - para avaliar sua influência nas tarefas dos desenvolvedores, na duração da conclusão e nos padrões de qualidade das recomendações fornecidas. Vamos olhar mais de perto.

O que é GitHub Copilot?

GitHub Copilot é uma ferramenta para preenchimento automático e geração de código. Ele é construído com base no OpenAI Codex e treinado em repositórios públicos do GitHub. Como resultado, sugere código para qualquer linguagem de programação. No entanto, a qualidade das propostas depende do número de repositórios públicos baseados numa linguagem de programação e framework específicos.


GitHub Copilot funciona com código de programa usando plug-ins de Ambiente de Desenvolvimento Integrado (IDE). Atualmente, apenas os seguintes IDEs são suportados:

  • Código do Visual Studio
  • Estúdio visual
  • Neovim
  • todos os IDEs da JetBrains

Visão geral da investigação do GitHub Copilot da ELEKS

Esta investigação teve como objetivo explorar o impacto do uso do Copilot na velocidade e na qualidade do desenvolvimento.


Para conduzir este estudo, um pequeno projeto de estimação foi iniciado como um campo de testes para várias suposições. Com uma equipe composta por quatro desenvolvedores intermediários qualificados e com experiência em React, Redux, TypeScript, Jest, Vite, PHP, Symfony e Codeception, iniciamos a investigação e definimos nossos objetivos e abordagens da seguinte forma.

Meta

Abordagem

Avalie a dependência entre a competência e o desempenho do desenvolvedor ao usar o Copilot

Selecionamos a estrutura Symfony para desenvolvimento back-end. A equipe de back-end não tinha experiência substancial com esta estrutura.
Para avaliar a qualidade da solução back-end, um especialista Symfony esteve envolvido em uma revisão de código. O especialista também desenvolveu uma estrutura básica de projeto que foi além da típica e foi utilizada em um grande projeto comercial.

Investigue o impacto nas tarefas típicas do desenvolvedor

Antes do início do projeto, criamos uma EAP que cobria o trabalho típico de um desenvolvedor em um projeto comercial. Além disso, conduzimos uma sessão de estimativa de tarefas.

Investigue o impacto nas linguagens de programação e estruturas por popularidade

Desenvolvemos uma aplicação web com cobertura de testes.

Avalie o impacto no tempo de conclusão da tarefa

Fizemos uma estimativa preliminar de tarefas individuais no projeto.

Melhorar a eficácia da pesquisa

Conduzimos sessões de compartilhamento de conhecimento dentro da equipe durante sincronizações diárias.

Explore a qualidade das sugestões

Testamos como o Copilot lida com uma estrutura de projeto não clássica e mais complexa.



Principais conclusões da investigação GitHub Copilot da ELEKS

A investigação da ELEKS sobre o GitHub Copilot produziu várias descobertas importantes que esclarecem os recursos e benefícios da ferramenta. Aqui está uma descrição mais detalhada:


Observe que os resultados da investigação são baseados no feedback subjetivo da equipe, nas observações de seu trabalho e nas revisões de código de suas soluções.

O GitHub Copilot possui dois modos de operação:

  1. Modo de preenchimento automático de código – quase sempre afeta positivamente o desempenho.
  2. Modo de geração de código baseado em um comentário com prompt – funciona bem apenas para estruturas de código típicas. Pode ser contraproducente ao gerar lógica de negócios ou soluções atípicas porque a análise das variantes de código propostas leva muito tempo.

A qualidade das sugestões de código do GitHub Copilot depende do seguinte:

  • Popularidade da pilha de tecnologia selecionada em repositórios públicos. Quanto mais popular for a tecnologia ou linguagem, maior será a qualidade das sugestões do GitHub Copilot.
  • Estrutura de código e arquitetura de aplicação. Quanto mais típica for a sua solução, mais sugestões eficazes o GitHub Copilot fornecerá. Isto é especialmente perceptível no início do desenvolvimento do projeto.

Outras vantagens do GitHub Copilot:

  • Com o tempo, a qualidade das sugestões de código aumenta. GitHub Copilot aprende e se adapta à estrutura do projeto, estilo de código e abordagens típicas para soluções técnicas do projeto.
  • Influencia positivamente a satisfação no trabalho do desenvolvedor. GitHub Copilot assume algumas tarefas rotineiras, típicas e chatas. A relação entre o desenvolvimento de tarefas interessantes e rotineiras muda, o que aumenta o conforto dos desenvolvedores.

Constatações gerais da equipe:

  • A ferramenta não mostrou impacto na qualidade do código – nem positivo nem negativo. Achamos que, por enquanto, ele não pode substituir o processo de revisão de código, o teste manual de código feito pelo desenvolvedor, a execução de autotestes, testes de segurança e assim por diante.
  • A eficácia depende da competência do desenvolvedor na pilha de tecnologia determinada. Quanto melhores forem as habilidades do desenvolvedor, mais eficaz será essa ferramenta.
  • O valor do GitHub Copilot para aprender novas tecnologias é muito duvidoso.
  • A equipe teve a impressão de que as sugestões de código seriam melhores se todos os arquivos relacionados ao código estivessem abertos no IDE.
  • Como qualquer outra ferramenta, o GitHub Copilot requer certas habilidades. Quanto mais a equipe praticava, mais feedback positivo era recebido.
  • O feedback sobre o aumento no desempenho varia dependendo da pilha de tecnologia, do nível de competência do especialista e de razões subjetivas.


5–10% do aumento médio na produtividade dos membros da equipe. - Equipe de P&D da ELEKS


Por outro lado, durante o projeto, a equipe encontrou vários bugs no GitHub Copilot. Por exemplo, o Copilot propôs sugestões de código com base no código de outro projeto aberto em outra janela do IDE. Ele oferecia código sintaticamente incorreto. O Copilot entra em conflito com os recursos de alguns plug-ins (integrados ou adicionados por terceiros) que também possuem uma funcionalidade de preenchimento automático de código.

Conclusões

GitHub Copilot é uma ferramenta poderosa que impacta positivamente a velocidade de desenvolvimento e a satisfação no trabalho do desenvolvedor. Como qualquer outra ferramenta de desenvolvimento, requer tempo para dominá-la.


Neste ponto, uma licença mensal individual custa apenas US$ 10, enquanto o plano de negócios custa US$ 19 por mês. O GitHub Copilot será, sem dúvida, benéfico financeiramente para uso nos projetos, especialmente para especialistas de nível médio e superior.


A equipe prevê que, com o crescimento da experiência no uso do GitHub Copilot, a velocidade de desenvolvimento pode aumentar de 5 a 25%, dependendo da popularidade da tecnologia e do nível de competência do desenvolvedor. É garantido que o GitHub Copilot não retardará o desenvolvimento porque os desenvolvedores ganharão gradualmente o conhecimento e a compreensão de quando é benéfico usar a ferramenta e quando não.


Concluindo, o impacto da IA no desenvolvimento de software, exemplificado por ferramentas como GitHub Copilot, é inegável. No geral, ferramentas como o GitHub Copilot não podem substituir um desenvolvedor, mas servem como ferramentas valiosas para aumentar o conforto e a produtividade dos desenvolvedores, contribuindo para a evolução do desenvolvimento de software em um mundo cada vez mais orientado pela IA.


Abra o caminho para um processo de desenvolvimento de software eficiente e resultados bem-sucedidos, entre em contato com os especialistas da ELEKS .


Também publicado aqui .