The software engineering community recently has witnessed widespread deployment of AI programming assistants, such as GitHub Copilot. However, in practice, developers do not accept AI programming assistants' initial suggestions at a high frequency. This leaves a number of open questions related to the usability of these tools. To understand developers' practices while using these tools and the important usability challenges they face, we administered a survey to a large population of developers and received responses from a diverse set of 410 developers. Through a mix of qualitative and quantitative analyses, we found that developers are most motivated to use AI programming assistants because they help developers reduce key-strokes, finish programming tasks quickly, and recall syntax, but resonate less with using them to help brainstorm potential solutions. We also found the most important reasons why developers do not use these tools are because these tools do not output code that addresses certain functional or non-functional requirements and because developers have trouble controlling the tool to generate the desired output. Our findings have implications for both creators and users of AI programming assistants, such as designing minimal cognitive effort interactions with these tools to reduce distractions for users while they are programming.
翻译:近期,软件工程社区广泛采用了AI编程助手,例如GitHub Copilot。然而,在实践中,开发人员并不高频率地接受AI编程助手的初始建议。这引发了许多关于这些工具可用性的开放性问题。为了了解开发人员在使用这些工具时的实践以及他们面临的重要可用性挑战,我们向大量开发人员进行了调查,并收到了410名开发人员的回复。通过定性和定量分析的混合应用,我们发现开发人员最有动力使用AI编程助手,因为它们能够帮助开发人员减少按键次数,快速完成编程任务,并记述语法,但对于使用它们来帮助产生潜在的解决方案并不吸引人。我们还发现,开发人员不使用这些工具的最重要原因是这些工具不能输出符合某些功能或非功能要求的代码,以及开发人员在控制工具以生成所需输出时遇到困难。我们的发现对于AI编程助手的创建者和用户都有影响,例如设计与这些工具的最小认知努力交互,以减少在编程时用户的分散注意力。