[论文解读] Grounded Copilot: How Programmers Interact with Code-Generating Models
本论文提出了第一篇将Copilot的互动建立于扎根理论的研究,识别出两种交替模式——加速与探索——并为AI编程助理的可用性设计提供建议。
Powered by recent advances in code-generating models, AI assistants like Github Copilot promise to change the face of programming forever. But what is this new face of programming? We present the first grounded theory analysis of how programmers interact with Copilot, based on observing 20 participants--with a range of prior experience using the assistant--as they solve diverse programming tasks across four languages. Our main finding is that interactions with programming assistants are bimodal: in acceleration mode, the programmer knows what to do next and uses Copilot to get there faster; in exploration mode, the programmer is unsure how to proceed and uses Copilot to explore their options. Based on our theory, we provide recommendations for improving the usability of future AI programming assistants.
研究动机与目标
- 使用扎根理论开发关于程序员如何与 Copilot 互动的数据驱动理论。
- 在多种语言中观察 Copilot 辅助编程,以避免语言偏见。
- 表征交互模式及其决定因素,以为未来工具设计提供信息。
- 提供具体建议以改进 IDE 中 AI 助手的可用性和集成。
提出的方法
- 有 20 名具有不同行经验的参与者在 Python、Rust、Haskell 和 Java 中使用 Copilot。
- 将 Straussian 扎根理论应用于对视频记录和访谈进行迭代编码与主题提炼。
- 使用四个不断演化的编程任务以诱导加速与探索行为。
- 采用理论抽样在任务变体中测试和完善新兴理论。
- 辅以对五个直播视频的分析以佐证模式。
实验结果
研究问题
- RQ1在编码任务中,程序员如何与 Copilot 互动?
- RQ2使用 Copilot 时会出现哪些互动模式,哪些条件会触发它们?
- RQ3程序员如何验证和修复 Copilot 生成的代码?
- RQ4有哪些设计建议可以改进面向程序员的类似 Copilot 的工具?
主要发现
- 与 Copilot 的交互呈双峰性,包含加速(快速、保持流程)和探索(深思熟虑、探索性)两种模式。
- 当程序员将任务分解为微任务并依赖 Copilot 快速完成逻辑单元时,会进入加速模式。
- 探索模式用于新任务、API 发现以及评估多种替代方案,通常通过明确的提示和验证进行。
- 较长的多行 Copilot 建议可能打断工作流程,通常会被拒绝或忽略;在加速阶段,短而有上下文的行尾提示更受欢迎。
- 验证通常依赖模式匹配与关键字/结构识别来判断建议的有用性;用户可能修正而非完全替换建议。
- 程序员愿意探索的倾向与任务的新颖性及对模型的信心相关;过度依赖可能阻碍进展。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。