如果您的目标是改善开发人员体验,第一步始终应该询问您的开发人员如何改进。
译自 Can AI Truly Transform the Developer Experience?,作者 Andrew Boyagi。
在过去 12 个月里,产品营销团队一直在大肆宣传最新的人工智能 进步,这些进步将极大地改善开发人员体验。而且它正在奏效。Atlassian 最近与 GetDX 合作,对 2100 名开发人员及其领导者进行了调查;100% 的受访领导者表示,他们相信人工智能将在未来两年内改善其公司的开发人员体验。
我定期与之交谈的 CTO 证实了这一统计数据。他们都计划在人工智能 产品上投入巨资以改善 DevEx。一位 CTO 提到了“全力以赴”使用人工智能,将 90% 的开发人员体验预算分配给人工智能工具。
看到如此多的 CTO 专注于改善 DevEx 并投资于最新技术来帮助他们的开发人员,这真是太棒了,但如果人工智能没有改善开发人员体验怎么办?在我们的调查中,三分之二的开发人员表示,他们使用人工智能工具并没有体验到显著的生产力提升。
扫描开发人员人工智能工具的领域,可以发现面向开发人员的四种标准人工智能功能:
- 代码生成:使用人工智能编写或帮助编写代码。
- 文档生成:使用人工智能编写代码或过程文档。
- 拉取请求摘要:人工智能创建拉取请求中包含的更改的摘要。
- 单元测试生成:人工智能自动建议或创建拉取请求中更改的单元测试。
以上功能列表非常令人印象深刻!18 个月前,这些功能还不可用,这证明了我们在人工智能领域看到了快速创新。开发人员的采用率非常惊人,这清楚地表明这些功能每天都在帮助开发人员。
这些功能有一个共同点:它们主要与开发人员角色中的编码部分相关——他们喜欢的工作部分。什么阻碍了良好的开发人员体验?
编码是开发人员角色中他们喜欢的一部分。然而,大多数面向开发人员的人工智能功能旨在自动化或提高其角色中这一部分的效率。虽然这并不一定不好,但这就像告诉厨师你已经自动化了他们角色中的烹饪部分,现在他们只需要洗碗了。如果我们有兴趣改善开发人员的体验,我们应该优先解决他们不喜欢的那部分角色。
开发人员花费在编码上的时间通常被认为是 30%。大多数面向开发人员的人工智能技术都集中在这 30% 上,而不是集中在 70% 的开发人员执行其他不太理想的任务上。没有人建议开发人员应该将 100% 的时间花在编码上,但如果你问开发人员什么阻碍了良好的体验,大多数项目都来自他们 70% 的非编码时间。
研究行业调查结果表明了一些值得探讨的常见抱怨:
等待时间是工程师最常见的抱怨之一,他们经常谈论被其他人或团队阻碍。这通常涉及等待某人审查拉取请求或澄清信息,然后才能继续。
认知负荷是开发人员不满意的另一个主要来源。寻找信息的必要性是认知负荷增加的关键来源。根据 2023 年 Stack Overflow 开发人员调查,25% 的开发人员每天花费超过一个小时寻找信息。这足以让最稳定的人变得疯狂。想象一下,每天早上花一个小时寻找你的车钥匙,然后才能出门。
几乎所有开发人员调查中最大的抱怨是技术债务(技术债务)。这源于产品经理(他们经常优先考虑发布下一个功能)和开发人员(他们希望维护一个干净健康的代码库)之间的永恒斗争。高水平的技术债务会导致糟糕的开发人员体验,这并不奇怪。
如果应用得当,人工智能有可能在所有这些领域显著改善 DevEx。如果改善 DevEx 是目标,我们应该消除开发人员告诉我们的摩擦。
我提到的编码助手和其他面向开发人员的人工智能功能可能会增强而不是改善 DevEx。需要明确的是,应该让开发人员使用这些工具;他们希望使用这些工具,发现它们很有用,最重要的是,他们期望能够使用这些工具。但是,这些工具不太可能解决组织中现有的 DevEx 问题。
改进 DevEx 从询问您的开发人员需要改进什么开始。一旦您拥有此列表(很可能需要扩展),您就可以确定解决这些挑战的最佳方法,其中可能包括使用 AI。
例如,有一种误解认为开发人员实际上喜欢消除技术债务,但这并不完全准确。开发人员通常更喜欢解决问题和交付新功能,但大量的技术债务会减慢他们的速度,并增加发生事故的可能性。Atlassian 开发了一种名为 AutoFix 的功能,它可以扫描源代码存储库以查找常见的错误,例如过时的功能标志。一旦识别出来,就会询问开发人员是否希望 AI 修复技术债务,在这种情况下,通过删除功能标志,或者是否希望安排时间自行修复。
使用 AI 消除与解决技术债务相关的开发人员工作量,可以改善良好 DevEx 的常见挑战之一。它允许开发人员将更多时间投入到发布新功能等任务中。我们在内部对 AutoFix 收到了很好的反馈,我们正在努力在今年晚些时候将其提供给客户。
目前可用的开发人员 AI 功能非常令人印象深刻。开发人员希望能够使用这些工具来帮助他们完成日常任务,这足以成为提供这些工具的理由。然而,尽管这些功能令人印象深刻,但它们并没有解决开发人员体验中现有的挑战。
如果您想改进开发人员体验,您的第一步应该始终是询问您的开发人员如何改进。如果您问他们,他们会告诉您。
一旦您知道可以在哪些方面进行改进,请找到每个问题的最佳解决方案,其中可能包括使用 AI。与任何工具实施一样,您应该与您的开发人员进行回访,并询问他们解决方案是否真正改善了他们的工作,或者您是否需要对其进行迭代。