Code-recommendation systems, such as Copilot and CodeWhisperer, have the potential to improve programmer productivity by suggesting and auto-completing code. However, to fully realize their potential, we must understand how programmers interact with these systems and identify ways to improve that interaction. To make progress, we studied GitHub Copilot, a code-recommendation system used by millions of programmers daily. We developed CUPS, a taxonomy of common programmer activities when interacting with Copilot. Our study of 21 programmers, who completed coding tasks and retrospectively labeled their sessions with CUPS, showed that CUPS can help us understand how programmers interact with code-recommendation systems, revealing inefficiencies and time costs. Our insights reveal how programmers interact with Copilot and motivate new interface designs and metrics.
翻译:代码推荐系统(如Copilot和CodeWhisperer)通过建议和自动补全代码,有望提升程序员的生产力。然而,要充分发挥其潜力,我们必须理解程序员如何与这些系统交互,并找出改进这种交互的方法。为此,我们研究了GitHub Copilot——一款每日被数百万程序员使用的代码推荐系统。我们开发了CUPS(Common User Programming States),一种用于描述程序员与Copilot交互时常见活动的分类法。我们对21名程序员进行了研究,他们完成编码任务并回顾性地使用CUPS标注其会话。结果表明,CUPS有助于理解程序员如何与代码推荐系统交互,从而揭示效率低下的问题和时间成本。我们的洞察揭示了程序员与Copilot的交互模式,并推动了新型界面设计和评估指标的发展。