人工智能不是软件开发的“银弹”

使用AI编程工具的开发者们,各位的工作效率究竟提高了多少?最近有猜测认为,AI技术有望将开发者的工作效率提高2倍、3倍甚至是5倍。另有报告预测,到2030年软件开发者的生产力将提高10倍。

但颇为讽刺的是,软件工程领域甚至一直没能在开发生产力的衡量指标上达成一致。有些人甚至认为这样的指标不可能存在,任何粗暴量化都有缺陷、不够完善。如今,大多数关于AI技术能提高生产力的说法都属于定性判断——基于调查和见闻,而非具体数据。

但如果在开发生产力上都不能达成共识,那我们怎样才能对AI做出正确判断呢?如果说我们从之前的远程办公中学到了什么的话,那就是如果没有数据来指导决策,我们就必然要陷入困境——本本主义和意识形态开始占据高地,导致人们就现场办公、远程办公和混合办公究竟谁更好吵作一团。

而AI的发展轨迹似乎又是一波轮回。为了顺利向前迈进,我们必须想办法从量化角度分析问题。

落后的风险

目前,围绕AI技术的炒作可谓甚嚣尘上,不少冷静的从业者甚至选择先停一停。考虑到潜在质量影响、抄袭风险等现实因素,最谨慎的企业纷纷后撤,想先看清楚一切到底会如何发展。

但对科技型企业而言,落后的风险将关乎生死存亡。AI是一剂双重猛药,不仅会将更多基于AI的新产品推向市场,也能在生产端降低产品的开发成本、缩短发布周期,以双向奔赴的方式助力业务发展。

大多数企业一直关注“做什么”,而AI却有望驱动“怎么做”,进而建立起10倍甚至100倍生产力的工程团队。谁能快速跨越这道鸿沟,以最有效、最具影响力的方式优化AI工具,谁就能快速跨上生产力的新高度,在未来几年的市场上占据优势。相比之下,静观其变的风险对很多公司来讲确实难以承受。

做好权衡

手里拿着锤子,看什么都像钉子。同样的情况在AI身上也有体现。

根据GitHub最近发布的报告,开发人员认为AI编程工具的最大优势,就是提高了用户的编程语言技能。另一个好处则是自动执行重复性任务,例如编写样板代码。Codecov最近一项实验表明,ChatGPT在实现细碎功能、为相对简单的代码路径编写基础测试方面表现良好。

但与任何技术一样,AI也有自己的权衡取舍。例如,生成式AI和大语言模型(LLM)无法执行高度复杂或者创造性的任务,例如将代码库从一种架构迁移至另一种架构,或者将业务逻辑合并至新功能当中。如果开发人员盲目接受AI生成的建议而不对潜在的抄袭、许可限制或幻觉做好检查,就很可能引发难以预见的安全漏洞或法律纠纷。

但AI本来也没必要成为颠覆软件编写和交付方式的“银弹”。即使有着种种限制,仍不妨碍它以确定性方式完成有限的任务。这种将已知任务的处理周期或成本降低10倍的能力本身,已经代表着巨大的进步。

对影响做量化

大多数开发人员已经在使用AI驱动工具。根据GitHub的数据,最近一项调查显示,92%的用户在工作或个人时间内使用过AI编程工具。因此,企业必须尽早建立基准,用以比较新AI工具应用前后的生产力差异。

即使是简单的代理指标,也有助于对新工具的影响做出量化分析。例如,我们对拥有超过40万开发者的社区进行一项研究,发现使用GitHub Copilot的开发者每次敲击键盘,对应的平均有效字符相当于不使用AI编程助手的开发者的1.3倍,代码行数则为1.22倍。虽然更多的代码量并不一定等于更高的生产力,但使用GitHub Copilot之后,开发者的代码编写速度确实在不断提高(在单元测试、函数和其他样板代码中均有体现),这证明他们在重复性工作上确实节约下了时间和精力。

同样的,我们两袖清风应衡量团队在投资AI工具之前和之后的功能交付情况,借此量化实际影响。每位工程师所交付功能数量的增加(以及单项功能交付成本的降低)将为后续投资AI工具提供强有力的支持和依据。

功能的改动和重构,还有助于了解AI对于代码质量的影响。如果企业在应用新AI编程工具后经常遭遇质量问题,则其用于功能改动和重构的时间必然更多,能花在新功能开发上的时间反而会变少。

虽然任何软件开发都必然涉及一部分改动和重构,但如果这两项工作越来越多,那必然要影响到AI工具的投资回报率。

正确投资

要想回答AI是否提高了开发者生产力这个问题,我们必须首先为相关影响建立可见性体系。具体来讲,就是在整个开发过程当中,AI到底在何处、何时以及如何带来最大的潜在投资回报。随着生成式AI的迅速蹿红与疯狂炒作,把握正确数据以了解真相正变得比以往任何时候都更加重要。

当公司投资于AI开发工具时,可以通过将可观测性应用于软件开发来增强团队能力。这种可观测性不仅有助于快速了解AI的局限性和机会空间,同时也将为生产力的影响因素打开新的讨论通道(例如远程办公、DevOps和内部开发者平台)。

毫无疑问,AI在提高生产力方面发挥着重要作用。但我们必须从事实出发了解其作用,从而做出更加明智的决策。