paint-brush
Revisão do copiloto do GitHub: isso realmente aumenta a velocidade de desenvolvimento em 55%?by@elekssoftware
4,628
4,628

Revisão do copiloto do GitHub: isso realmente aumenta a velocidade de desenvolvimento em 55%?

ELEKS7m2024/02/28
Read on Terminal Reader

GitHub Copilot tornou-se um tema de interesse significativo na comunidade de desenvolvedores devido ao seu potencial para acelerar processos de desenvolvimento. Este artigo apresenta uma revisão do GitHub Copilot e avalia seu impacto no aumento da velocidade de desenvolvimento em cenários da vida real. Desde o seu lançamento, o Copilot gerou várias discussões, que vão desde o entusiasmo e otimismo ao ceticismo e cautela sobre o seu potencial impacto na programação e no futuro papel dos desenvolvedores. A sua influência em diferentes aspectos do desenvolvimento de software – desde a velocidade à qualidade do código e aprendizagem – continua a ser tema de análise e discussão.
featured image - Revisão do copiloto do GitHub: isso realmente aumenta a velocidade de desenvolvimento em 55%?
ELEKS HackerNoon profile picture

GitHub Copilot tornou-se um tema de interesse significativo na comunidade de desenvolvedores devido ao seu potencial para acelerar processos de desenvolvimento. Este artigo apresenta uma revisão do GitHub Copilot e avalia seu impacto no aumento da velocidade de desenvolvimento em cenários da vida real.


Desde o seu lançamento, o Copilot gerou várias discussões, que vão desde o entusiasmo e otimismo ao ceticismo e cautela sobre o seu potencial impacto na programação e no futuro papel dos desenvolvedores. A sua influência em diferentes aspectos do desenvolvimento de software – desde a velocidade à qualidade do código e aprendizagem – continua a ser tema de análise e discussão.


Os usuários do GitHub Copilot demonstraram uma aceleração na conclusão de tarefas, alcançando uma taxa 55% mais rápida do que os desenvolvedores que não usaram a ferramenta. - GitHub


Intrigados com as afirmações ousadas sobre o aumento de velocidade atribuído ao Copilot, embarcamos em uma jornada para verificar sua eficácia, especialmente no domínio da IA no desenvolvimento de software . Em nossa busca pela verdade, conduzimos nossos próprios testes de uso do Copilot em projetos reais. Para garantir resultados ideais, adotamos a seguinte abordagem:


  • Seleção variada de projetos: Escolhemos deliberadamente vários projetos com diferentes pilhas de tecnologia e abordagens arquitetônicas, com o objetivo de cobrir uma ampla gama de casos de uso.


  • Experiência diversificada de desenvolvedores: recrutamos desenvolvedores com diferentes níveis de experiência e competência para testar a ferramenta.


O principal objetivo da equipe era realizar uma revisão do GitHub Copilot e avaliar seu impacto na produtividade da codificação, identificar suas principais influências e encontrar as maneiras mais eficazes de usá-lo. O período de testes durou três meses para mitigar o potencial viés influenciado por uma curva de aprendizado. Vamos mergulhar nos resultados.

Revisão do copiloto do GitHub: como isso afeta a velocidade de desenvolvimento

O foco principal deste estudo foi explorar como o uso do Copilot afeta diferentes tipos de projetos. Testamos e analisamos a eficácia do Copilot em aplicações monolíticas e microsserviços em aplicações backend e frontend para entender onde esta ferramenta é mais eficaz.


O Copilot traz uma melhoria de produtividade de 10 a 15% para escrever novo código. - Equipe ELEKS


Em termos gerais, podemos afirmar que o impacto do Copilot na velocidade de desenvolvimento é altamente variável e depende de muitos factores. A seguir estão as principais dependências que surgem em relação à utilização eficaz do Copilot:

1. Tamanho da base de código existente

Dependendo do tipo de projeto e da estrutura do código, o impacto do Copilot na velocidade de desenvolvimento varia: em aplicações frontend monolíticas, obtivemos uma melhoria de aproximadamente 20-25% na velocidade de desenvolvimento; em aplicativos monolíticos de back-end - melhoria de cerca de 10-15%, e em microsserviços de back-end - uma média de 5-7%. - Ihor Mysak, líder técnico da ELEKS


O veredito? O Copilot prospera em projetos com uma grande base de código, onde pode oferecer suporte aos desenvolvedores com modelos e soluções existentes. No entanto, sua capacidade diminui no domínio dos microsserviços, caracterizado por uma pequena base de código. Indica a ineficácia do Copilot em projetos que estão apenas começando e ainda não contêm soluções desenvolvidas o suficiente.

2. Pilha Tecnológica

Testar o Copilot em projetos com diferentes pilhas de tecnologia mostrou uma dependência significativa da qualidade das sugestões do Copilot com base na popularidade da tecnologia.


  • Os aplicativos React revelam um aumento significativo de produtividade, ofuscando a estrutura Zend, agora desatualizada e menos popular.


  • Os projetos .Net encontram-se no meio termo; observou-se que o desempenho era intermediário, melhor do que com Zend, mas não tão alto quanto com React, sugerindo uma correlação com a popularidade relativa e o volume de materiais .Net disponíveis.


Acreditamos que isso ocorre porque o Copilot foi treinado em repositórios públicos do GitHub e tinha mais material de treinamento para tecnologias mais populares entre os desenvolvedores.

3. Qualidade do código na base de código existente

O Copilot tende a gerar sugestões de maior qualidade com nomenclatura adequada e lógica de variáveis e métodos. Levando-nos a acreditar que a nomenclatura de qualidade ajuda o Copilot a entender melhor o contexto do código, fornecendo sugestões mais precisas e úteis.


Entretanto, quando a nomeação de variáveis e métodos não é clara ou ambígua, o Copilot tem menos informações para analisar, o que diminui a qualidade da sua contribuição para o processo de desenvolvimento. Assim, a nomenclatura de alta qualidade no código não apenas simplifica o trabalho dos programadores, mas também aumenta a eficácia das ferramentas de inteligência artificial.

4. Tipo de tarefas executadas pelo desenvolvedor

Apesar de sua eficácia em determinados aspectos do desenvolvimento, também descobrimos que o Copilot apresenta limitações, principalmente na geração de código que implementa nova lógica de negócios.


O Copilot escreve apenas o código de acordo com o prompt, e não soluções completas. O Copilot é usado de forma mais eficaz para tarefas claras e padronizadas. O tempo gasto em uma descrição detalhada da lógica de negócios pode superar o tempo necessário para implementar essa lógica de negócios sem usar o Copilot. - Ihor Mysak, líder técnico da ELEKS


Embora seja eficaz em tarefas padronizadas, ele luta com as complexidades de novas ideias ou de programação criativa. A mensagem é clara: o Copilot é um companheiro confiável na rotina do desenvolvedor, mas o reino da inovação exige o toque da criatividade humana.


Dicas importantes sobre o uso eficaz do Copilot:


  • Precisão na chave: Quanto mais preciso e detalhado for o prompt, maior será a probabilidade de receber uma proposta de qualidade do Copilot.


  • O contexto é tudo: evite confusão fechando projetos não relacionados ao usar o Copilot. Se vários projetos estiverem abertos no IDE, o Copilot poderá confundir contextos e gerar sugestões para o Projeto A com base no código do Projeto B.


  • Comentários são importantes: adicionar comentários antes de criar uma classe ou método melhora a qualidade do preenchimento automático.


  • Foco no arquivo: o Copilot é sensível às abas abertas com arquivos de projeto, portanto, é possível criar artificialmente um contexto mais direcionado para ele.

Liberando o potencial do GitHub Copilot: adaptabilidade e impacto indireto

Adaptabilidade a ambientes específicos do projeto

Uma das características mais interessantes do Copilot é a sua capacidade de adaptação às especificidades de um determinado projeto. Com o tempo, o Copilot “aprende” o estilo de codificação e as características específicas do projeto, levando a uma melhoria na qualidade de suas sugestões.


Inicialmente, o Copilot pode fornecer soluções genéricas ou menos precisas. Porém, à medida que a ferramenta acumula mais exposição e interação dentro do projeto, a precisão e a relevância de suas sugestões melhoram significativamente.


Isso é especialmente perceptível em projetos com um estilo de codificação estabelecido e uma grande quantidade de código existente para o Copilot “treinar”.


Essa adaptabilidade faz do Copilot não apenas uma ferramenta para aumentar a eficiência, mas também uma ajuda poderosa para manter a consistência do código em um projeto.


Os desenvolvedores também destacaram a influência positiva do Copilot na complexidade do código, observando uma mudança em direção a soluções mais legíveis e fáceis de manter, especialmente entre aqueles acostumados a criar estruturas de código complicadas e complicadas.

Elevando os testes automatizados

O Copilot não para na codificação; também dominou a arte dos testes automatizados. A ferramenta oferece modelos e recomendações para possíveis cenários de teste, permitindo que os desenvolvedores economizem tempo e recursos.


O Copilot aumenta a escrita de testes unitários em 20-30%. - Equipe ELEKS


A capacidade do Copilot de gerar casos de teste exclusivos que podem não ser óbvios para os desenvolvedores é particularmente valiosa. Expande a cobertura de testes, melhorando a profundidade do exame do produto de software.


Curiosamente, a qualidade dos testes criados com o Copilot está diretamente relacionada à qualidade e estrutura do código testado.


Nossos desenvolvedores observaram que a clareza dos nomes das variáveis, métodos e a estrutura geral do código afetam significativamente a qualidade e a precisão da geração de testes do Copilot.


Portanto, a eficácia da utilização do Copilot para escrever testes unitários depende da própria ferramenta e da qualidade do código testado.


No geral, o Copilot provou ser uma ferramenta útil no processo de escrita de Testes Unitários, melhorando não só a velocidade, mas também a qualidade do produto final.

Impacto indireto

GitHub Copilot aumenta a velocidade de codificação e melhora a natureza geral do trabalho de um desenvolvedor. De acordo com o feedback dos desenvolvedores, o Copilot permite que eles mudem o foco do trabalho rotineiro e demorado para tarefas mais criativas e desafiadoras.


Além disso, o Copilot pode ser uma alternativa eficaz à pesquisa na Internet ou em documentação, reduzindo o tempo gasto na alternância entre diferentes janelas e permitindo que os desenvolvedores se concentrem em suas tarefas atuais.


Esse recurso é útil quando você precisa encontrar respostas rapidamente para perguntas sem se distrair do trabalho principal.


O Copilot impacta positivamente o conforto e a satisfação de um desenvolvedor. Agiliza a obtenção de respostas a diversas questões e ajuda quando não há oportunidade de recorrer a colegas seniores ou encontrar uma solução na Internet. - Olena Hladych, líder de controle de qualidade da ELEKS


Curiosamente, encontramos uma correlação entre as habilidades interpessoais dos desenvolvedores e sua satisfação com o uso do Copilot: desenvolvedores com habilidades de comunicação menos desenvolvidas geralmente ficam menos satisfeitos com seu desempenho, possivelmente devido a dificuldades na formulação precisa de prompts.

Conclusão

GitHub Copilot é uma ferramenta poderosa que aumenta substancialmente a produtividade do desenvolvimento em cenários específicos, especialmente durante a composição de testes unitários e ao navegar em extensas bases de código construídas em tecnologias populares. No entanto, a sua eficácia enfrenta restrições em tarefas que exigem abordagens inovadoras ou a criação de novos conceitos.


Contrariamente à afirmação que sugere um aumento de 55% na produtividade, o resultado real ficou aquém. Em média, as equipes experimentaram uma melhoria moderada de 10 a 15% na produtividade relacionada à geração de novo código.


No entanto, é fundamental destacar diversas vantagens atribuídas à utilização do Copilot. No geral, os desenvolvedores avaliam o Copilot como uma ferramenta inestimável que contribui significativamente para a velocidade de desenvolvimento e promove a satisfação entre os desenvolvedores.


Recomendamos que as equipes e os desenvolvedores considerem o Copilot e o abordem com uma compreensão de suas possíveis limitações. A chave para usar o Copilot de maneira eficaz está na compreensão de que ele é uma ferramenta auxiliar, e não um substituto do intelecto e da criatividade humanos.


Pode aumentar a produtividade e a satisfação no trabalho, reduzir o tempo gasto em aspectos rotineiros de desenvolvimento e permitir que os desenvolvedores se concentrem em tarefas mais complexas e criativas.


Entregue seu projeto de software com os principais especialistas em desenvolvimento da ELEKS. Contate-nos hoje!