JetBrains Research

Research is crucial for progress and innovation, which is why at JetBrains we are passionate about both scientific and market research

Research

理解 AI 对开发者工作流的影响

Read this post in other languages:

AI 编码助手不再是华而不实的附加工具:它们已经成为我们日常工作流的标准组成部分。我们了解开发者对它们的短期看法,很多开发者表示,借助 AI 编码助手,他们可以完成更多工作,并减少花在样板代码编写或枯燥任务上的时间。但对于在真实项目中经过数年实际工作后会发生什么,以及开发者所感知到的工作流的变化是否真的发生了改变,我们知之甚少。

目前已有很多关于开发者与 AI 交互的研究,但现有研究往往在规模或深度上存在局限,且很少有研究会进行长期调查。我们的人类-AI 体验团队 (HAX) 对开发者长期使用 AI 工具的体验很感兴趣,因此他们对 800 名软件开发者两年的日志数据进行了分析。他们还想分析开发者的主观感知,并将其与客观数据进行对比,于是开展了问卷调查和后续访谈。

在此,我们将展示 HAX 团队采用混合方法研究取得的成果,我们的团队将在里约热内卢举行的 ICSE 2026 上展示这些成果。

这项研究揭示了随着 AI 工具的引入,开发者的工作流会有怎样的演进。研究得出的一项重要结论是,AI 重新分配并重塑了开发者的工作流,而开发者自身往往难以察觉这些变化。 

在这篇博文中,我们将:

  • 介绍本研究采用的方法,具体来说,包括:
    • 为期两年的日志数据
    • 调查和访谈的回复
  • 描述开发者工作流的组成部分,包括先前的相关研究。
  • 探讨混合方法研究的成果。

分析开发者如何借助 AI 工具改进其工作流

在本部分中,我们将介绍 HAX 研究的设置情况,从开发者的行为方式(使用日志数据)和开发者的主观感知(通过访谈)两个维度开展调查。

这种设计的主要优势在于,不同方法可以弥补彼此的盲点。日志可以显示工作流在发生变化,但无法说明原因;主观感知可以解释动机和背景,但存在偏见,且常常会忽略细微的行为转变。通过综合运用这两种研究方法,混合方法能够更轻松地发现主观感知与做法之间的偏差,从而更全面、更贴合实际地还原 AI 重塑日常开发工作的全貌。

研究中采用的遥测技术 

遥测是一种成熟的数据收集方法,至少从 19 世纪起便投入使用。这个词本身源自希腊语,由表示“远”的 tele 和表示“测量”的 metron 构成,通常指远程收集的数据。使用遥测技术时,无需持续进行手动测量即可提高实验的准确性,并提升可观测性。

例如,在医疗环境中,遥测技术可用于长期测量血压、心率和血氧水平。在研究中,遥测技术可用于捕获连续的实时数据(例如,生理信号、环境信号或系统性能信号),并将其发送到中央系统进行监测和分析。

在我们的研究上下文中,遥测是指 IDE 在开发者工作时自动记录的一系列细粒度、匿名化事件:包括开发者采取的行动、采取行动的时间以及行动的先后顺序。也就是说,遥测技术收集的信息包括输入的字符数(而非实际字符)、调试会话启动次数、代码删除次数、粘贴操作次数,以及窗口焦点变化次数等。如果您感兴趣,可以查看我们的产品数据收集和使用声明,以获取更多详细信息。

根据先前的研究,我们了解到,遥测技术确实能够揭示开发者行为中有趣的规律。例如,这些研究人员发现,开发者实际上在理解活动上花费很大一部分时间 (70%),如阅读、浏览和审查源代码。 

开发者的行为方式:调查为期两年的日志数据

对于本研究,遥测技术从行为方面的视角观察开发者工作流。我们并未询问开发者认为 AI 助手会对其工作流产生何种影响,而是关注于两年时间内编辑器中实际发生的行为:编写的代码量、编辑或撤消代码的频率、插入外部代码段的时间,以及开发者从其他工具切换回 IDE 的频率。通过汇总和比较 AI 用户和非 AI 用户的这些信号,遥测技术能够观察到日常做法中细微的长期转变,而这些转变仅通过调查或受控实验室任务很难捕捉到。

更具体地说,我们的团队使用了包括 IntelliJ IDEA、PyCharm、PhpStorm 和 WebStorm 在内的多款 JetBrains IDE 提供的匿名使用日志。我们筛选出了在 2022 年 10 月和 2024 年 10 月均处于活跃状态的设备,以便对同一批开发者进行为期两年的全面跟踪。请注意,选择第一个日期(2022 年 10 月)的原因是 ChatGPT 当时首次发布。

在此基础上,我们构建了两组研究对象:第一组包含 400 名 AI 用户,其设备在 2024 年 4 月至 10 月期间每月至少与 JetBrains AI Assistant 进行过一次交互;第二组包含 400 名非 AI 用户,其设备在研究期间从未使用过 AI 助手。之所以检查自 2024 年 4 月起的使用情况,是因为那时 AI 助手已在 IDE 中得到广泛应用,且性能已比较稳定;我们还希望确保用户确实已将 AI 助手融入其工作流。

由于遥测日志本身就比较复杂,我们的团队挑选出了定义明确的事件(即用户操作)来代表各个工作流维度,相关维度将在下文详细说明, 具体包括:

  1. 输入的字符数 – 工作效率
  2. 调试会话启动次数 — 代码质量
  3. 删除和撤消操作次数 – 代码编辑
  4. 未进行 IDE 内复制的外部粘贴事件数 – 代码重用
  5. IDE 窗口激活次数 – 上下文切换

当然,任何选定替代指标都有其局限性,我们选择的指标也是如此。尽管如此,此研究的目标是检测开发者工作流在一段时间内的变化规律,而非确定因果关系。

通过汇总每位用户每月的这些指标,我们可以观察 AI 用户与非 AI 用户每个维度流在一段时间内的变化情况,重点观察变化规律。总体而言,我们的数据集包含 800 名用户执行的 151,904,543 个日志事件。

我们的数据处理过程涉及到计算每台设备每月各类操作的总发生次数。这意味着我们拥有了包含每项操作月度计数的清晰、宏观的数据集,该数据集非常适合跟踪和识别有意义的行为趋势。 

开发者的主观感知:从调查和访谈得出的定性洞察

为了将行为观察与开发者自身的感知相结合,我们的团队还面向专业开发者开展了一项在线调查。我们围绕相同的工作流维度设计了问题,询问他们认为 AI 助手对其工作效率、代码质量、编辑习惯、代码重用规律以及上下文切换产生了何种影响。共有 62 名开发者完成了调查,这让我们对开发者自开始使用 AI 工具以来所感知到的益处、弊端以及变化有了全面的了解。

有关调查的详细信息,请参阅论文的第 3.1 节,以及补充材料。除了受众特征问题外,调查还包括:

  1. 关于整体体验以及对 AI 编码工具依赖程度的量表问题
  2. 特定于工作流维度的开发者主观感知量表问题 
  3. 要求提供工作流影响以及 AI 编码工具具体示例的开放性问题 

前两类问题(第 1 项和第 2 项)采用 5 分制量表形式,要求参与者用分数表示对某项陈述的赞同或反对程度。在我们的调查中,量表关注的是变化程度:(1) 分表示显著降低,(5) 分表示显著提高。 

第 2 项中的问题可以总结如下: 

  • 关于工作效率,我们直接询问了整体工作效率以及花在编码上的时间。
  • 关于代码质量,我们直接询问了代码质量以及代码可读性。
  • 关于代码编辑,我们询问了编辑或修改自己代码的频率。
  • 关于代码重用,我们询问了使用外部来源代码(例如,库、在线示例或 AI 建议的代码)的频率。
  • 关于上下文切换,我们直接询问了上下文切换(在不同任务或思考过程之间切换)的频率。

调查结束后,我们的团队邀请了一小部分参与者进行简短的半结构化访谈。在访谈中,我们深入了解了他们日常实际使用 AI 的情况:何时会使用 AI、如何决定是否信任某条建议,以及他们觉得当前工作的碎片化程度有何变化。这些定性访谈内容帮助我们解读遥测曲线:例如,理解为何有人的日志显示在输入、删除或粘贴外部代码次数方面有很大转变,但他们仍报告“没有太大变化”。

开发者工作流的维度 

为了更深入地了解开发者工作流,我们的 HAX 研究将关注领域划分为上文提到的以下几个维度:

  1. 生产效率
  2. 代码质量
  3. 代码编辑
  4. 代码重用
  5. 上下文切换

工作效率触及了人们关于 AI 工具最直观的问题:AI 工具能否帮助开发者完成更多工作? 此维度通过提出以下问题来奠定研究基础:使用 AI 辅助工作流是否只是提高代码生成速度,以及与完全不使用 AI 的开发者相比,这种优势在一段时间内呈现何种结果。 

尽管基于 LLM 的编码工具对开发者工作效率的影响已成为众多研究的课题,但对于 AI 辅助通过何种方式或者是否能真正对开发者工作效率产生正面影响,目前尚无明确的研究结论。此外,研究人员采用各种衡量指标(例如,输入的字符数、完成的任务数、接受的完成请求数)。有趣的是,本研究发现,开发者认为使用 Copilot 后其工作效率有所提升,但数据却给出了相反的结论。另一项研究也有类似发现:尽管开发者认为自己处理仓库问题的时间缩短了 20%,但实际数据显示他们完成任务的速度反而降低了 19%。在本研究中,我们选择以代码数量作为衡量指标。

代码质量维度将关注点从“代码编写数量”转变为“代码编写质量”。此维度并非直接检查代码,而是观察开发者进入调试工作流的频率,将其作为遇到问题或不确定事件的行为信号。这引入的理念是:AI 不仅可能改变所出现问题的数量,也会改变开发者选择调查问题的方式和时间,从而反映开发者对最终在其项目中采纳的代码的信心程度。本研究的研究人员观察到,开发者会花费超过三分之一的时间复查和编辑 Copilot 建议。 

代码编辑维度关注初稿完成之后的情况:代码重塑、更正或丢弃的频率。此维度的关注点是开发者进行编辑、撤消和删除操作的次数,以此了解 AI 是否将编程变成了一项更频繁迭代、高频修改的活动。此维度有助于揭示 AI 使用的“筛选”方面:接受建议、改写建议,以及决定最终保留在代码库中的内容。本研究并未关注花在编辑上的时间,而是关注被删除或改写的代码量:在最初被接受的代码中,近五分之一的代码后来被删除,约 7% 被大幅重写。 

开发者一直都在重用代码(例如,从库、内部代码段、Stack Overflow),但 AI 助手带来了一种全新且通常不透明的外部代码引入渠道。代码重用作为一个工作流维度,从宏观视角探究代码的原始来源。我们从先前的同类研究了解到,AI 助手提供样板代码,并建议从训练数据衍生出的常用模式或代码段。此维度关注开发者集成当前文件或项目之外代码的频率,将 AI 视为重用做法中更广泛转变的一部分,而非一项孤立的功能。

现代开发工作本就需要在集成开发环境 (IDE)、浏览器、终端与通信工具之间频繁切换,而 AI 助手承诺在编辑器内提供更多帮助,以简化部分切换过程。上下文切换维度将关注点从代码扩展到注意力。此维度探讨这一承诺是否在实践中实现,或 AI 最终是否重塑(而非仅仅减少)了开发者日常工作中跨工具、跨任务的注意力转移方式。

一方面,本研究表明,与 AI 助手交互可能会增加认知开销,并使任务碎片化,因为开发者需要在编写代码、解读建议和管理与系统的对话之间不断切换。这就引出了一个开放性问题:这些工具实际是从整体上减少了上下文切换操作,还是主要将一种中断形式替换成了另一种中断形式?

AI 辅助工作流的两大视角

通过结合多种方法,本研究能够更全面地呈现 AI 编码工具如何改变(或不改变)开发者的工作流。我们还了解到,开发者自身在很大程度上察觉不到自己的行为变化。这些规律共同勾勒出了在现代 IDE 中借助 AI 实现演进究竟意味着什么。

在本部分中,我们将按维度介绍研究结果。下表展示了研究结果概览。 

理解 AI 对开发者工作流的影响

生产效率

本研究的第一个维度关注 AI 助手对工作效率的影响,在遥测数据部分中以开发者在一段时间内输入的代码量来衡量;在调查中,以开发者对自身工作效率的主观感知和花在编码上的时间来衡量。在这一维度,实际行为和主观感知是一致的:在使用 IDE 内 AI 助手的情况下,开发者编写的代码更多了。

下图展示了调查周期内 AI 用户非 AI 用户的平均字符输入量。阴影区域表示与平均值 ±1 倍的偏差范围。

理解 AI 对开发者工作流的影响

从上图可以清晰地看出,对于采用 IDE 内 AI 助手的开发者,其输入的字符数始终多于从未使用过 AI 助手的开发者,并且在两年时间里,这一差距不断扩大。日志数据揭示,AI 用户每月输入的字符数增加了近 600 个,而非 AI 用户每月输入的字符数仅增加 75 个。这些数据表明,这种差异并非一次性激增,而是开发者行为的持续转变。

调查对象(所有 AI 用户)同样体验到工作效率的提升。 超过 80% 的调查对象表示,引入 AI 编码工具或多或少带来了工作效率的提升,而只有两名调查对象表示工作效率或多或少有所下降。关于花在编码上的时间,超半数的调查对象表示编码用时有所减少,而约 15% 的调查对象表示编码用时增加。

访谈对象受也大多表达了类似看法。例如,一位开发者(拥有 3 – 5 年经验,经常使用 AI 工具)表示: 

当我在命名或编写文档方面遇到困难时,我会立即向 AI 求助,它真的帮了很大的忙。

在这一维度,主观感知和实际行为相似。这些结果表明,使用 AI 工具后,开发者在编辑器中编写的代码更多了,并且认为工作效率有所提升。 

代码质量

对于代码质量,本研究采用了一个简单的行为信号:开发者在 IDE 中启动调试会话的频率。这并不是衡量代码是“好”是“差”的完美指标,但确实能体现出大家认为需要逐步执行其程序以理解或修正问题的频率。在此维度,开发者的行为和主观感知并不一致,至少在统计学上没有显著关联:AI 用户的调试行为没有变化,但对代码质量和可读性的主观感知略有提升。

下图展示了调查周期内 AI 用户非 AI 用户的平均调试实例启动次数。与之前一样,阴影区域表示与平均值 ±1 倍的偏差范围。在两年时间内,AI 用户和非 AI 用户都展现出积极的调试行为,并且两组用户之间的差异远小于工作效率指标方面的差异。

理解 AI 对开发者工作流的影响

上图以两条相互接近的折线展示了各组每月的平均调试实例数量。我们的统计分析表明,对于 AI 用户,其行为没有随时间的推移而发生显著变化。对于非 AI 用户,该时间段内的调试启动次数略有减少。

大多数调查对象表示,使用 AI 编码工具在一定程度上对其代码质量产生了积极影响。具体而言,当被问及其代码质量是否因使用 AI 编码工具而得到提高时,近半数调查对象表示代码质量或多或少有所提升,而约 10% 的调查对象表示代码质量或多或少有所下降。对于代码可读性,相应调查数据分别为 43.5% 和 6.5%,不过有 50% 的调查对象表示未发现变化。 

尽管 AI 工具带来了这些改进,但一些开发者仍不完全信任 AI 生成的代码。例如,一位拥有 3–5 年经验的开发者在访谈中表示:

我会反复检查 AI 生成的代码,即便如此,我还是觉得有点不放心。

对于此维度,我们的调查结果表明,尽管开发者从自身角度出发认为代码质量有所提高,但他们的行为(在我们选择分析的替代指标中)并未显示出 AI 用户有任何变化。

代码编辑

对于代码编辑,行为与主观感知之间的差异更为显著:尽管开发者表示变化不大,但日志数据却显示,他们的行为随时间的推移大幅增加。这里,遥测数据值反映的是开发者删除或撤消代码的频率,而在调查中,调查对象被问及他们是否认为使用 AI 工具后自己编辑自身代码的次数增多了。 

下图展示了调查周期内 AI 用户非 AI 用户的平均删除次数。与之前一样,阴影区域表示与平均值 ±1 倍的偏差范围。在两年时间里,趋势折线展现出 AI 用户和非 AI 用户有明显的差异。

理解 AI 对开发者工作流的影响

AI 用户的折线所处的位置明显更高一些,每月删除次数约 100 次,属于统计学意义上的显著增长。相比之下,在同一时期,非 AI 用户平均每月删除代码的次数仅增加了约 7 次。这些数据表明,在 AI 辅助生成代码的情况下,开发者进行编辑和改写的频率更高。

在定性数据中,开发者并未表示察觉到如此显著的变化。半数调查对象表示,自采用 AI 工具以来,他们并未察觉到其代码编辑行为有任何变化;约 40% 的调查对象表示代码编辑行为或多或少有所增加;约 7% 的调查对象表示代码编辑行为有所减少。一位拥有 15 年以上编码经验的系统架构师表示: 

AI 就像另一双眼睛,能提供结对编程的优势,却没有社交压力 — 这一点对神经多元群体尤为友好。它并非时刻在监视,但当我需要代码审查和反馈时,可以随时调用。

与前文的代码质量维度相比,开发者对代码编辑的主观感知与实际行为恰好相反。具体而言,他们并未察觉到自身代码编辑量的显著变化,但日志数据显示,对于采用 AI 助手的开发者,其代码编辑量大幅增加。 

代码重用

关于代码重用,本研究侧重于开发者向 IDE 粘贴内容的频率,这些内容并非来自同一 IDE 会话中的复制操作。对于此维度,AI 用户与非 AI 用户之间以及主观感知与行为之间的差异较小。 

下图展示了调查周期内 AI 用户非 AI 用户的平均外部粘贴次数。与之前一样,阴影区域表示与平均值 ±1 倍的偏差范围。在两年时间里,趋势折线未展现出 AI 用户或非 AI 用户有明显的变化。

理解 AI 对开发者工作流的影响

AI 用户的趋势折线整体高于非 AI 用户,这表明他们重用外部代码的频率更高。但两组人群的行为均没有随时间的推移而发生显著变化。 

调查和访谈的反馈也未显示出清晰的规律。在调查中,约三分之一的调查对象表示自己察觉到采用 AI 工具后,自身对外部来源的代码的使用频率或多或少有所增加,而五分之一的调查对象表示使用频率有所下降;44% 的调查对象则表示未发现任何变化。 

根据以往的研究,我们可能会认为使用 AI 工具的开发者重用外部代码的可能性会更高。然而,调查对象的反馈却给出了不同的结论。例如,一位拥有 15 年以上经验的开发者表示: 

对于我来说,最好是为自己的行为承担责任,而不是采用第三方解决方案。

上下文切换

我们研究的最后一个维度是上下文切换,即开发者在浏览器等其他窗口中进行操作后跳转回 IDE 的频率。AI 工具,尤其是集成在 IDE 中的 AI 工具,通常被宣传为能减少开发者离开编辑器寻求帮助的需求,从而让开发者持续保持专注状态。尽管定性数据未显示出在任何方向上存在一定的规律,但遥测数据却揭示了一个更为复杂的真相:AI 用户在一段时间内激活 IDE 的次数实际上比非 AI 用户更多,这意味着 AI 用户切换上下文的频率至少与非 AI 用户一样高,甚至更高。

下图展示了调查周期内 AI 用户非 AI 用户的平均 IDE 激活次数。与之前一样,阴影区域表示与平均值 ±1 倍的偏差范围。在两年时间里,趋势折线展现出 AI 用户的 IDE 激活次数略有增加。

理解 AI 对开发者工作流的影响

与上一个维度的情况类似,AI 用户的趋势折线整体来说更高。但此处的趋势出现了分化:AI 用户每月 IDE 激活次数增加约 6 次,而非 AI 用户则呈现相反的趋势,每月减少约 7 次。 

与日志数据中呈现的差异不同,调查回复并未显示出清晰的规律。具体而言,约四分之一的调查对象表示 IDE 激活次数增加,约五分之一的调查对象表示激活次数减少,约半数的调查对象表示没有变化。 

在访谈中,开发者表示,使用 AI 工具并不会单纯减少上下文切换次数,而是呈现出一种不同的碎片化规律。一位开发者表示:

我不再进行上下文切换,每次原本需要通过 Google 搜索的操作都能节省几秒钟的时间。

在此工作流维度,我们观察到了与之前相似的规律:AI 用户的日志数据显示略有增加,但定性数据并未呈现出清晰的规律。 这表明,即便利用了集成在 IDE 中的 AI 辅助工具,开发者仍在进行上下文切换,有时甚至比不使用 AI 辅助工具的开发者切换得更频繁。

AI 对工作投入度和注意力的影响

综合来看,我们的 HAX 研究结果表明,AI 编码助手正在以不易被察觉的方式悄然重塑开发者工作流。也就是说,我们的研究表明,这些转变十分微妙,开发者并不总是能清晰地察觉到自己习惯的改变。因此,在调查中结合多种方法(如将遥测数据与调查和访谈相结合)至关重要:这能揭示主观感受到的差异与日常行为中实际变化之间的偏差。 

如果您正在构建或采用 AI 工具,那么结论很简单:不要只问人们是否喜欢这些工具。您应仔细观察他们实际在做什么!

 

本博文英文原作者:

Katie Fraser

Katie Fraser

Agnia Sergeyuk

Agnia Sergeyuk