# Practices and Challenges of Using GitHub Copilot: An Empirical Study

**Authors:** Beiqi Zhang, Peng Liang, Xiyu Zhou, Aakash Ahmad, Muhammad Waseem  
**arXiv:** [2303.08733](https://arxiv.org/abs/2303.08733)  
**Date:** 2023-03-15  
**Summary page:** https://www.summarizepaper.com/en/arxiv-id/2303.08733v3/

## Key points

- Study conducted by researchers from Wuhan University and Lancaster University Leipzig on GitHub Copilot in programming
- Data collected from Stack Overflow and GitHub Discussions
- Major programming languages used: JavaScript and Python
- Main IDE utilized: Visual Studio Code
- Common technologies paired with Copilot: Node.js
- Primary functions implemented: data processing
- Significant benefits observed: useful code generation
- Main limitations faced by practitioners: difficulty of integration
- Analysis method used descriptive statistics for RQ1, RQ2, and RQ3; Constant Comparison method for RQ4, RQ5, and RQ6
- Functions categorized based on developers' discussions through coding and categorization processes
- Study provides foundation for future research on Copilot as an AI pair programmer in software development

## Summary

This empirical study conducted by Beiqi Zhang, Peng Liang, Xiyu Zhou, Aakash Ahmad, and Muhammad Waseem from Wuhan University and Lancaster University Leipzig focuses on understanding the practices and challenges of using GitHub Copilot in programming with auto-completed source code. The researchers collected and analyzed data from Stack Overflow (SO) and GitHub Discussions to identify key aspects such as major programming languages used (JavaScript and Python), main IDE utilized (Visual Studio Code), common technologies paired with Copilot (Node.js), primary functions implemented (data processing), significant benefits observed (useful code generation), and main limitations faced by practitioners (difficulty of integration). The results highlight that while using Copilot can be beneficial for code generation, it also presents challenges that developers must carefully consider before integrating it into their workflows. The analysis method employed descriptive statistics for RQ1, RQ2, and RQ3, while qualitative data analysis using the Constant Comparison method was applied for RQ4, RQ5, and RQ6. Functions were categorized based on developers' discussions through rigorous coding and categorization processes to ensure accuracy. This study provides a solid foundation for future research on the role of Copilot as an AI pair programmer in software development. Overall, this comprehensive study sheds light on the practical implications of utilizing GitHub Copilot in programming tasks and offers valuable insights into its benefits, limitations, and challenges.
