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.
翻译:软件工程界近期见证了如GitHub Copilot等AI编程助手的广泛部署。然而在实践中,开发者对AI编程助手的初始建议采纳率并不高。这引发了关于这些工具可用性的诸多待解问题。为探究开发者使用这些工具的实践模式及面临的关键可用性挑战,我们对大规模开发者群体实施了一项调查,并收到来自410位多元化开发者的反馈。通过定性与定量混合分析,我们发现开发者使用AI编程助手的首要动机在于:帮助减少击键次数、快速完成编程任务、回忆语法,而使用其激发潜在解决方案的动机则相对较弱。同时,我们发现开发者不使用这些工具的最重要原因包括:工具无法输出满足特定功能或非功能需求的代码,以及开发者难以控制工具生成预期输出。本研究的发现对AI编程助手的开发者和使用者均具有启示意义,例如如何设计最小认知负荷的人机交互模式,以降低编程过程中对用户的干扰。