为人工智能重新定义软件工程职业

《Communications of the ACM》:Redefining the Software Engineering Profession for AI

【字体: 时间:2026年04月02日 来源:Communications of the ACM

编辑推荐:

  生成式人工智能(Generative AI)已经改变了软件工程的经济结构。智能编码助手(agentic coding assistants)为资深工程师提供了强大的支持,大幅提升了他们的工作效率,但同时也给缺乏判断力和背景知识的初级开发人员(early-in-care devel

  生成式人工智能(Generative AI)已经改变了软件工程的经济结构。智能编码助手(agentic coding assistants)为资深工程师提供了强大的支持,大幅提升了他们的工作效率,但同时也给缺乏判断力和背景知识的初级开发人员(early-in-care developers, EiC)带来了挑战,因为他们难以指导、验证和整合人工智能生成的代码。这导致了一种新的激励机制:雇佣资深工程师,同时自动化初级开发者的工作。然而,如果没有对初级开发者的招聘,整个行业的 talent pipeline(人才发展链)将会崩溃,组织将面临缺乏下一代经验丰富工程师的困境。

我们的论点很简单:我们必须继续招聘初级开发者,接受他们在初期可能会降低工作效率的事实,并有意识地设计系统,使他们的成长成为组织明确的目标。前进的道路在于建立大规模的导师制文化。我们需要利用人工智能系统来支持资深工程师的指导工作,这些系统能够捕捉开发者的思维过程,揭示误解,并将日常开发过程转化为教学机会。本文探讨了如何通过这些系统来缩小培训差距,在人工智能时代保护软件工程的精髓。

**人工智能的推动作用**

过去一年标志着软件工程生产力的一个转折点。智能编码助手——这些系统能够理解目标、跨代码库进行推理,并迭代生成、测试和优化代码——正在重塑小型团队的工作能力。内部数据和独立研究显示,使用这些工具的经验丰富的开发者可以更快地完成复杂任务,而且这种效率提升越来越普遍。在微软的新Office Agent项目“Project Societas”中,七名兼职工程师仅用10周时间就交付了一个可供消费者使用的预览版本,其中超过11万行代码是由人工智能生成的。人类的工作重点从编写代码转向了指导工作:设定目标、验证代码的正确性,并将人工智能生成的代码整合到一个连贯的系统中。

Aspire是另一个展示这种变革如何在实际中发生的例子,它改变了工程团队的工作方式。团队经历了几个阶段:最初使用本地聊天助手,然后允许编码助手发起代码合并请求(pull requests),最终实现了人机协作,每个合并请求都可以直接发布,审查过程变成了人与机器之间的共同对话。在漫长的GitHub合并请求中,资深工程师讨论架构目标,而编码助手提供解决方案。这带来了更快的反馈循环、更高的并行处理能力以及更低的实验成本。

**智能编码助手的局限性**

虽然人工智能正在推动软件开发,但一些前沿编码助手的表现显示出它们的局限性,例如它们可能无法识别或引导开发人员避免次优的设计和错误的结论。例如,在图1中,助手在因竞态条件(race condition)导致代码崩溃的情况下插入了休眠指令(sleep)。这种改变只是掩盖了潜在的同步问题,但如果竞态条件在测试中不再出现,初级开发者可能会认为这是一个有效的修复方法。此外,助手甚至难以解释其插入休眠指令的理由,而这实际上并不能降低竞态风险。当被质疑时,助手会承认自己的推理有误(图2)。只有熟悉同步协议、所用同步原语以及代码架构的工程师才能有信心指出助手的错误,并提供正确的指导方向。

在许多情况下,用户需要告诉助手如何进行操作。例如,在图3中,用户指导助手插入休眠指令,以引发竞态条件,从而便于更可靠的调试。

**培养人才**

来自多个智能AI项目的例子表明,当代码存在严重错误、使用低效算法、在整个代码库中重复代码、忽视与当前任务无关的崩溃问题、使用临时解决方案(hack)使代码仅适用于特定测试等情况时,模型仍可能声称成功。尽管人工智能助手发展迅速,但人类的专业知识在软件开发中仍然至关重要。编程不仅仅是编写代码,还包括处理不确定性、做出复杂决策和维护安全性的能力。虽然助手可以加快工作流程并减少手动工作量,但它们缺乏预见边缘情况和构建稳健解决方案的直觉。过度依赖人工智能可能会导致错过细微错误、架构缺陷和漏洞,而这些只有经验丰富的工程师才能发现。人类的监督、批判性思维和领域知识对于纠正错误和推动技术创新都是不可或缺的。

**传统软件工程组织的模式**

传统的软件工程组织雇佣初级开发者来承担相对简单的错误修复和编码任务,从而增强组织的能力。通过这些任务,他们积累了经验,熟悉项目的编码标准、架构、实现、构建和测试系统。其中一些有能力和意愿的人会晋升为技术负责人,负责更复杂的任务,并将部分工作委托给初级开发者。初级开发者与技术负责人的比例通常约为10:1。

**生成式人工智能的影响**

目前,生成式人工智能加剧了基于资历的技术变革:它不成比例地放大了那些已经具备系统判断力(如对架构的品味、在不确定性下的调试能力和操作直觉)的工程师的能力。缺乏系统知识的初级开发者将在人工智能驱动的环境中难以发挥作用。劳动力数据显示,在GPT-4发布后,22至25岁的人在高度依赖人工智能的工作岗位(如软件开发)中的就业率下降了约13%,尽管高级职位的数量有所增加。哈佛大学的一项研究指出,人工智能似乎已经在造成一种“基于资历的技术变革”。

人工智能虽然增强了资深人才的能力,但也可能让新人才落后,导致组织结构失衡,人才金字塔的底层逐渐萎缩。传统的由中级/初级开发者组成的大型团队模式现在面临经济压力。如果不加以控制,越来越少的初级开发者将获得系统知识、架构直觉和操作能力,从而影响代码质量和创新速度。Ethan Mollick在其文章《与魔法师共事》中提到:“其次,我们需要成为输出结果的鉴赏者,而不仅仅是过程的执行者。我们需要从人工智能提供的结果中筛选和选择,更重要的是,我们需要与人工智能充分互动,培养出判断其成功与失败的能力。”

**新的发展模式**

为应对人工智能驱动环境下的初级开发者培养挑战,我们提出了一个导师制计划,将初级开发者与实际产品团队中的资深工程师配对。导师指导他们学习如何使用智能工具、培养批判性判断力,并掌握资深工程师的工作方法。这种方法确保了学习成为人工智能时代工程的核心部分,而不仅仅是提高工作效率。

2025年初的MIT研究表明,使用ChatGPT撰写SAT风格文章的成年人出现了“认知负担”(cognitive debt),表现为大脑活动减少和回忆能力下降。通过专门为人工智能环境培训初级开发者——让他们学习基础知识、了解人工智能的优势和劣势,并学会判断何时信任人工智能、何时需要干预——我们可以保护工程团队的长期发展。这种有针对性的投资有助于保持人才金字塔的稳固,但其重点在于培养资深人才,而非单纯提高组织效率。

对于依赖人工智能加速发展的团队来说,判断力和对“代码问题”的敏感性变得至关重要。初级开发者不应被排除在问题解决过程之外,而应被邀请参与所有环节,帮助提示、调试和审查,从而了解专业知识如何与人工智能结合。他们的贡献不仅在于代码的编写速度,更在于在具体情境中的学习:揭示误解、分析助手输出失败的原因,并逐步内化导师的判断方法。资深工程师导师有责任将自己的专业知识转化为教学机会,帮助初级开发者成长。

**结论**

生成式人工智能从根本上重塑了软件工程,提升了资深工程师的效率,但也暴露了传统人才发展链的脆弱性。如果组织只关注短期效率(雇佣那些已经能够使用人工智能的人),就会削弱下一代技术领导者的能力。要维持这一学科的发展,需要有意设计成长机制:将结构化的导师制和导师制融入日常工作中,并让人工智能系统通过对话和引导性推理来进行教学。软件工程的未来将取决于人类如何有效地学习、推理和与人工智能共同发展。通过有意识的导师制投资初级开发者,我们可以确保今天的专业知识成为明天的直觉。
相关新闻
生物通微信公众号
微信
新浪微博
  • 搜索
  • 国际
  • 国内
  • 人物
  • 产业
  • 热点
  • 科普

热点排行

    今日动态 | 人才市场 | 新技术专栏 | 中国科学人 | 云展台 | BioHot | 云讲堂直播 | 会展中心 | 特价专栏 | 技术快讯 | 免费试用

    版权所有 生物通

    Copyright© eBiotrade.com, All Rights Reserved

    联系信箱:

    粤ICP备09063491号