Simple Science

Ciência de ponta explicada de forma simples

# Informática# Engenharia de software

Como os desenvolvedores usam o ChatGPT no GitHub

Uma análise das interações dos desenvolvedores com o ChatGPT no GitHub.

― 6 min ler


ChatGPT na Colaboração deChatGPT na Colaboração deDesenvolvedoresdesenvolvedores.melhorar as discussões entreExplorando o papel do ChatGPT em
Índice

O ChatGPT virou uma ferramenta importante pra desenvolvedores de software, ajudando com várias tarefas como codificação, testes e depuração. Apesar de todo o sucesso, como os devs usam o ChatGPT em um ambiente colaborativo, especialmente em plataformas tipo GitHub, ainda é meio desconhecido. Esse artigo explora as conversas que os desenvolvedores têm com o ChatGPT em pull requests (PRs) e issues do GitHub, dando uma visão de como eles interagem com esse assistente de IA.

Entendendo o Conjunto de Dados

Pra entender as conversas dos desenvolvedores com o ChatGPT, analisamos um grande conjunto de dados com 580 conversas compartilhadas do GitHub. Desses, 210 foram de pull requests e 370 de issues. A gente analisou manualmente essas conversas pra ver que tipo de ajuda os desenvolvedores estavam pedindo e como eles compartilhavam essa informação entre eles.

Tipos de Perguntas que os Desenvolvedores Fazem

Os desenvolvedores usam o ChatGPT pra várias perguntas de engenharia de software. A gente identificou 16 tipos diferentes de perguntas que eles fazem quando compartilham conversas com o ChatGPT. As categorias mais comuns incluem:

  1. Geração de Código: Os desenvolvedores frequentemente pedem pro ChatGPT criar trechos de código ou completar tarefas de codificação.
  2. Perguntas Conceituais: Muitas perguntas são sobre entender conceitos técnicos ou princípios teóricos.
  3. Guias de Como Fazer: Os devs geralmente buscam instruções passo a passo pra completar tarefas específicas.
  4. Resolução de Problemas: Os desenvolvedores procuram ajuda pra resolver bugs e outros problemas no código deles.
  5. Revisão de Código: Os desenvolvedores pedem sugestões e feedback sobre seu código pro ChatGPT.

Ao categorizar essas perguntas, dá pra ver as necessidades comuns dos desenvolvedores quando eles pedem ajuda pro ChatGPT.

Conversas com Várias Interações

Uma boa parte das conversas compartilhadas entre desenvolvedores e o ChatGPT envolve várias trocas. A gente viu que mais de um terço das conversas em pull requests e issues eram interações de várias etapas. Isso significa que os desenvolvedores costumam ter bate-papos de ida e volta com o ChatGPT, refinando suas perguntas ou dando mais contexto depois de receber uma resposta.

Durante essas conversas com várias interações, os desenvolvedores usam várias estratégias, tipo:

  • Perguntas de Acompanhamento Iterativas: Ajustando e melhorando suas perguntas com base nas respostas anteriores do ChatGPT.
  • Refinamento de Perguntas: Dando mais contexto ou restrições pra ajudar o ChatGPT a dar respostas melhores.
  • Pedindo Esclarecimento: Solicitando uma explicação adicional sobre as respostas dadas pelo ChatGPT.

Essas estratégias mostram que os desenvolvedores se envolvem ativamente com o ChatGPT, buscando melhorar a qualidade das respostas da IA.

Papéis dos Desenvolvedores e Comportamento de Compartilhamento

Em ambientes colaborativos, os desenvolvedores assumem diferentes papéis dependendo das responsabilidades no projeto. Nossa investigação revelou que eles compartilham conversas com o ChatGPT de formas diferentes, com base em seus papéis. Por exemplo, autores de pull requests costumam mencionar o ChatGPT como a fonte das soluções, enquanto revisores de código podem usar as conversas pra propor novas ideias ou sugestões.

A gente categorizou os motivos por trás do compartilhamento das conversas em alguns pontos principais:

  1. Referência a uma Fonte de Solução: Os desenvolvedores costumam citar o ChatGPT pra mostrar de onde vieram suas soluções.
  2. Soluções Potenciais: Muitos desenvolvedores se referem às respostas do ChatGPT como possíveis soluções pra problemas.
  3. Apoio a Afirmações: Alguns devs usam conversas compartilhadas pra apoiar seus argumentos ou sugestões durante discussões.

Locais das Conversas Compartilhadas

O local onde os desenvolvedores compartilham essas conversas no GitHub também varia. Em pull requests, links pra conversas com o ChatGPT podem ser encontrados na descrição, comentários ou seções de revisão de código. Em issues, os links são compartilhados principalmente em comentários e descrições. Essa distribuição destaca a importância do contexto em como os desenvolvedores comunicam suas perguntas e soluções.

Implicações para Ferramentas de Desenvolvimento de Software

As descobertas desse estudo têm implicações importantes pro design e desenvolvimento de ferramentas que incorporam IA como o ChatGPT. Entender como os desenvolvedores interagem com o ChatGPT pode aumentar a eficácia dessas ferramentas em ambientes colaborativos.

  1. Melhorando Ferramentas: Saber quais são as perguntas comuns que os desenvolvedores fazem pode ajudar a aprimorar as ferramentas de IA pra atender melhor a essas necessidades.
  2. Apoio à Colaboração: Insights sobre os comportamentos de compartilhamento podem levar ao desenvolvimento de recursos que incentivem uma melhor colaboração entre os desenvolvedores.
  3. Benchmarking de Performance da IA: Os tipos de perguntas e interações mostram que os benchmarks existentes podem não capturar totalmente a gama de entradas que os desenvolvedores usam ao trabalhar com IA.

Focando nas maneiras específicas como os desenvolvedores usam o ChatGPT, dá pra informar pesquisas e desenvolvimentos futuros que buscam melhorar o papel da IA no ciclo de vida do desenvolvimento de software.

Direções Futuras de Pesquisa

Há várias avenidas pra futuras pesquisas com base nas descobertas desse estudo:

  1. Conjuntos de Dados Mais Amplos: Expandir o conjunto de dados pra incluir conversas de outras plataformas ou períodos de tempo adicionais pode fornecer insights mais abrangentes.
  2. Investigando Engenharia de Prompt: Examinar como os desenvolvedores formulam seus prompts pode levar a uma melhor compreensão da comunicação eficaz com a IA.
  3. Ferramentas Específicas por Papel: Criar ferramentas especializadas que atendam aos diferentes papéis que os desenvolvedores desempenham na codificação colaborativa pode aumentar a produtividade.

Explorando essas áreas, pesquisadores e desenvolvedores podem entender melhor a influência crescente da IA no desenvolvimento de software e seu potencial pra melhorar a colaboração entre os desenvolvedores.

Conclusão

O ChatGPT está se provando um ativo valioso nas conversas de desenvolvimento de software, principalmente em plataformas colaborativas como o GitHub. Ao analisar conversas compartilhadas, conseguimos insights sobre os tipos de perguntas que os desenvolvedores fazem, como interagem com o ChatGPT e as razões por trás do compartilhamento dessas conversas. As descobertas ressaltam a importância de uma compreensão contextual e ferramentas personalizadas pra apoiar interações efetivas entre desenvolvedores e IA, impulsionando a inovação e a eficiência nos processos de desenvolvimento de software.

Fonte original

Título: An Empirical Study on Developers Shared Conversations with ChatGPT in GitHub Pull Requests and Issues

Resumo: ChatGPT has significantly impacted software development practices, providing substantial assistance to developers in a variety of tasks, including coding, testing, and debugging. Despite its widespread adoption, the impact of ChatGPT as an assistant in collaborative coding remains largely unexplored. In this paper, we analyze a dataset of 210 and 370 developers shared conversations with ChatGPT in GitHub pull requests (PRs) and issues. We manually examined the content of the conversations and characterized the dynamics of the sharing behavior, i.e., understanding the rationale behind the sharing, identifying the locations where the conversations were shared, and determining the roles of the developers who shared them. Our main observations are: (1) Developers seek ChatGPT assistance across 16 types of software engineering inquiries. In both conversations shared in PRs and issues, the most frequently encountered inquiry categories include code generation, conceptual questions, how-to guides, issue resolution, and code review. (2) Developers frequently engage with ChatGPT via multi-turn conversations where each prompt can fulfill various roles, such as unveiling initial or new tasks, iterative follow-up, and prompt refinement. Multi-turn conversations account for 33.2% of the conversations shared in PRs and 36.9% in issues. (3) In collaborative coding, developers leverage shared conversations with ChatGPT to facilitate their role-specific contributions, whether as authors of PRs or issues, code reviewers, or collaborators on issues. Our work serves as the first step towards understanding the dynamics between developers and ChatGPT in collaborative software development and opens up new directions for future research on the topic.

Autores: Huizi Hao, Kazi Amit Hasan, Hong Qin, Marcos Macedo, Yuan Tian, Steven H. H. Ding, Ahmed E. Hassan

Última atualização: 2024-03-15 00:00:00

Idioma: English

Fonte URL: https://arxiv.org/abs/2403.10468

Fonte PDF: https://arxiv.org/pdf/2403.10468

Licença: https://creativecommons.org/licenses/by-nc-sa/4.0/

Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.

Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.

Mais de autores

Artigos semelhantes