数据显示,AI 助手使软件开发变得更快、更容易,从而促使公司处理更多的软件项目,并雇用更多的开发人员。
现在是时候正式埋葬 AI 意味着我们不需要软件开发人员的想法了。多年来,我们一直听说生成式 AI 和大型语言模型 (LLMs) 正在取代我们的工作。在软件开发中,这应该意味着编写代码的人更少。数据并非如此。GitHub Copilot 等 AI 编码工具并没有将开发人员推到一边,而是激励组织更快地构建更多软件——这是杰文斯悖论的经典案例。在经济学中,杰文斯悖论描述了效率的提高如何导致资源消耗的增加,而不是减少。在这里,该 “资源” 是开发人员的时间和精力。
随着 AI 工具使编码成本更低、更轻松,对代码的需求呈爆炸式增长,对熟练开发人员的需求也呈爆炸式增长。事实上,这是唯一剩下的真正问题:初级开发人员将在 AI 驱动的软件开发中扮演什么角色?
更快的编码,更大的输出
考虑 GitHub Copilot。 一项内部研究将 95 名工程师分为两组:使用 GitHub Copilot 的工程师和没有 GitHub Copilot 的工程师。在 GitHub Copilot 的协助下,开发人员完成编码任务的速度提高了 55%,总体成功率更高(78% 对 70%)。对 Microsoft 和 Accenture 的近 2,000 名开发人员进行的单独实验发现,AI 辅助团队的每周拉取请求增加了 13% 到 22%。这些不是微不足道的改进。
超越小测试,您会发现一个一致的故事。GitHub 表示,2023 年,Copilot 在启用它的文件中生成了近 46% 的代码 ,有时甚至超过 60%,具体取决于语言。这包括 Java,这是世界上使用最广泛的企业语言之一。几乎可以肯定,这个数字在过去两年中有所攀升。事实上,Microsoft、ZoomInfo 和其他公司最近报告称, 在编码任务上节省了 40% 到 50% 的时间 ,包括通常会占用开发人员宝贵时间的更棘手的项目。
结果如何?工程师可以完成更多工作,减少挫败感,并且可以承担以前在积压炼狱中苦苦挣扎的项目。研究表明,AI 辅助团队的准确率也更高:在某些测试中,与手动编写的代码相比,自动化代码在单元测试中的成功率高出 53%。 软件开发不再是乏味的实现,而是解决问题。
更多的 AI,更多的人
这种生产力意外之财导致了一个迷人的后果。当一个团队突然在一半的时间内完成他们的待办事项清单时,他们不会告诉他们的工程师在今年的剩余时间里休假。相反,他们开始构建下一波功能。他们专注于新的商业理念。公司不是雇佣一半的开发人员,而是建造两倍的东西。这正是杰文斯悖论效应:提高编码效率会推动组织进行扩展 —— 处理更大、更多样化的软件计划。
以下是我们将看到熟练的开发人员在 AI 方面变得更加重要而不是不那么重要的几个原因:
- 生产力: 每家公司都有积压的所需功能、内部工具、自动化项目和应用程序创意,由于时间和资源限制,这些想法仍未构建。LLMs 降低启动这些项目所需的成本。那个“最好有”的内部仪表板?突然变得可行。那个面向客户的实验性功能?现在,原型设计速度更快,值得一试。LLM 援助使解决这些积压工作在经济上是可行的。
- 保养: 编写的软件越多,需要测试、调试、保护、维护、更新和集成的软件就越多。LLM 生成的代码并非神奇地没有 bug 或自我维护 。如果有的话,生成速度最初可能会导致更多代码需要仔细审查、重构和持续支持。熟练的人类开发人员对于保持所有这些新代码可靠、安全地运行多年至关重要。
- 复杂性:LLMs 根据从大量数据集中学习的模式,擅长于定义明确的本地化任务。他们在统计上是出色的模仿者。他们努力应对大规模系统架构、新颖的问题解决方式、对业务环境的深刻理解、复杂的安全考虑因素、异常负载下的性能优化以及细致入微的用户体验设计。这些从根本上仍然是人类领域,需要创造力、批判性思维和战略监督。
- 质量管理: LLM生成看起来合理的代码,但它是否安全?它有效吗?它是否正确处理了边缘情况 ?它是否与整体系统架构和业务目标保持一致?人类开发人员是必不可少的验证者、编辑者和质量控制者。它们弥合了生成的代码与生产就绪的可靠软件之间的差距。
所以这就是为什么我们仍然需要人。IBM 的研究表明,生成式 AI 可以转化为企业推出的产品或功能增加 15% 到 20%,上市时间缩短 10% 到 15%,这提醒我们为什么也需要更多的 AI。这是一个巨大的竞争优势。
Gartner 指出,随着 AI 驱动的编码成为标准,对软件的需求没有自然的上限 。简单来说,从移动应用程序到区块链平台(嗯,也许没有那么多区块链),世界需要代码,而且需求只会上升。美国劳工统计局仍预计,从 2022 年到 2032 年,软件开发人员的工作岗位将增长 25%, 远高于平均水平。一些角色可能会发生变化或合并,但开发人员的整体需求没有下降的迹象。如果有的话,我们需要更多技术娴熟的工程师来编排这些 AI 驱动的工作流程。
你一直使用“熟练”这个词
面对 AI,入门级软件开发将发生变化,但不会消失。随着LLMs越来越多地处理日常编码任务,入门级开发人员的传统职责(例如编写样板代码)正在减少。相反,他们的角色将演变为 AI 主管;他们将测试输出、管理数据标签,并将代码集成到更广泛的系统中。这需要对软件架构、业务逻辑和用户需求有更深入的了解。有效地做到这一点需要一定程度的经验,除此之外,还需要指导。
初级工程师和高级工程师之间的动态正在发生变化。老年人需要指导初级开发人员使用 AI 工具和代码评估。AI 辅助对编程等协作实践也将提供学习机会。团队越来越多地与 AI 共同创造;这需要跨经验水平的清晰沟通和共同责任。这种指导对于防止更多初级工程师过于依赖 AI 至关重要。
在所有技能水平上,公司都在争先恐后地提高开发人员在 AI 和机器学习方面的技能。2023 年底在美国和英国进行的一项调查显示,56% 的组织将 AI/ML 方面的实力列为来年的首要招聘重点。Gartner 预测,到 2027 年,大约 80% 的开发人员将至少需要一套基本的 AI 技能。这将如何发展?好吧,初级开发人员可能会使用 AI 工具开始他们的职业生涯,以处理日常编码任务(边走边学的建议),同时快速承担更复杂的任务。同时,高级工程师成为教练、审阅者和编排者,确保 AI 生成的代码符合业务需求并满足安全标准。
雇佣更多开发人员
AI 不会取代开发人员。 相反,它会让他们更高效,而这种效率可以激励公司承担更多(和更大)的项目。无论我们谈论的是编译器、 开源框架还是云平台。每当开发生产力得到提升时,市场就会抓住它来构建更多的软件。LLMs 只是这种模式的最新和最引人注目的迭代。
与其削减开发预算,公司更明智的举措是投资于技能提升。提供 AI 驱动型开发培训,并奖励那些学会有效指导 AI 的人。成功度过这一转型时期的关键在于调整培训和指导实践,使初级开发人员具备在 AI 驱动型环境中茁壮成长所需的基本技能。这包括对代码评估、问题解决和对持续学习的承诺。
这应该会减少“总有一天”项目的积压,并增加真正的、推动收入的功能的渠道。通过提高开发人员的效率,包括初级开发人员的效率,AI 应该会产生更多(和更好)的软件,并且对顶尖人才的需求永无止境。