AI 时代的软件工程
原文:Software Engineering in the Age of AI 作者:A. Diamond 日期:2026-06-28
可能有些人不知道,不写小说的时候,我的日常工作是一名软件工程师,写代码。如今的软件行业重度依赖人工智能。因为 AI 学习了数万亿行公开可访问的源代码,因为代码解决的问题有可测试的对错答案,因为代码本身就是为被计算机理解而结构化设计的——AI 在写代码这件事上已经变得非常出色。
在程序员开始使用 AI 之前,一个典型的工作流是这样的:
- 有人让你给现有程序加一个功能。
- 你写一份正式的功能定义,描述它应该(和不应该)做什么,用户如何使用它,以及如何测试它是否正常工作。
- 你花时间研究哪些数据结构、算法、代码库和外部服务最适合实现这个功能。
- 你写代码构建新功能,写测试确保它按预期工作,写文档告诉用户如何使用、告诉其他工程师需要知道什么来维护和调试它。
- 你创建一个 Pull Request,请求组织内的其他工程师审查和评论你的新代码,最终批准它用于产品。
现在 AI 已经能稳定产出相当不错的代码,软件开发者的工作流变成了这样:
- 你写一段提示词让 AI 创建新功能。
- 你审查 AI 写出的内容,按自己的判断修改,或者让 AI 智能体替你修改。
- 你要么自己把新代码合并到现有代码库,要么创建一个 Pull Request 让别人审查合并。
在旧的工作流中,创造过程主要发生在大脑里。在新的流程中,你监督的是发生在 AI 内部机制中的创造过程。你花了些精力写一个简洁、深思熟虑、准确的提示词让 AI 开始工作,但你并没有做自己写代码时通常会做的那些深度思考。当你从 AI 那里拿到代码时,你本质上是在扮演编辑的角色——因为虽然 AI 能写代码,但它并不总能像你一样看清项目的大局,你需要确保这些新代码不会引发问题。
AI 不知道它刚加的代码是否违反了你产品受制的某些法律要求。它不知道它对某个外部系统的调用是 10 毫秒就能完成还是需要 10 分钟。它不知道它的代码行为是否会与你三周后团队要加的新功能冲突。它不知道它刚写的函数在与你上个月写的处理敏感信息的另一个函数交互时,是否会引入新的安全问题。
一个高级开发者确实知道这些事,这就是为什么他/她需要审查并经常修正那些看起来「能用」的 AI 代码。对于高级开发者来说,AI 是一个能干的、干活快的中级或初级开发者——在正确指导下产出大多扎实的工作,但缺乏你过去二十年积累的机构知识和深厚宽广的系统级知识。
现在,让我们暂停一下,做一个类比。假设你是一位历史小说作家,你的工作流是什么样的?大概是这样:
- 你想象一个场景:1760 年,两位政治家在伦敦圣保罗大教堂外争论。你考虑要准确写出这个场景需要知道什么——包括服饰、街上的氛围和政治形势。
- 你翻开好几本书开始做笔记,关于以下内容(以及其他):
- 基于人物的社会经济地位和社会角色,他们会穿什么?
- 街上还有谁?小贩?马车夫?他们长什么样?那个时间点扫烟囱工人出来了吗?妓女和执法人员呢?
- 你的角色争论的主要政治人物是谁,这些人物此刻持什么立场?
- 最近几周或几个月有什么相关历史事件,它们会如何影响你角色的争论?
- 你回到写作中,将历史事实编织进你从想象中纺出的场景。
小说家和软件开发者在这里有很多共同点。实际上,小说家在开始写作之前已经做了大量历史研究,就像软件开发者从多年工作中已经知道哪些数据结构、算法、什么样的缓存和数据库适合即将动手的新功能。
两者的共同点是:对他们正在创造的材料有一种深度的沉浸感。他们完全投入工作之中,常常忘记了时间。对于我和许多同行来说,无论写小说还是写代码,看看时间然后扎进一个问题,十分钟后再看表发现四个小时已经过去了——这太常见了。
这就是心理学家米哈里·契克森米哈赖在他 1990 年的畅销书《心流》中描述的「最优体验」状态。作家、软件开发者、画家、音乐家以及所有其他创造性工作者,在时间和条件允许时都会进入这种状态。许多软件工程师下班后在家里工作,恰恰是因为正常工作时间之外没有会议和其他干扰,让他们能够进入这种状态。
现在,让我们把历史小说家放到软件开发者的位置上。她接到出版商的电话,说他们找到了一个方法,让她每年能出四本书,而不是两年一本。他们招募了一群顶尖的高中生和大学生,每个学生每天都能写出五页还算不错的文字,成本极其低廉。出版方希望这些历史小说保持原作者的卓越水准,或者至少接近,所以他们保留她的服务,让她做编辑。
小说家现在的工作是编辑学生们的作品——每个学生都经过精心提示写出几页文字,稍加加工就能缝合为连贯的章节。
任何曾经批改过高中生或大学生作业的人都知道,这通常不是让人有成就感的工作。如果你曾经在一周内批改过一百篇论文,你就知道那是怎样的一种折磨。
小说家,和软件工程师一样,不再深层地投入她的工作。编辑不是创造。你不会将自己的想象力完全交付。你不会将心灵和情感沉浸在发明创造的过程中。相反,你在排查问题,试图清理笨拙的措辞和冗余的描述。心流状态消失了。你现在是一个更大流程中的齿轮,而这个流程并不真正重视你的创造力,也不在乎你需要施展它。
更糟糕的是——我在审查 AI 生成代码的几个月里亲身感受到了这一点——你的技能会急剧下降。当一个新问题出现——一个要实现的功能,或一个棘手的 bug ——花几个小时去解决它的想法让人觉得很屈辱。我为什么要翻遍所有代码,当 Claude 能在五分钟内定位 bug 并草拟出修复方案?
是啊,为什么?当机器人可以替我们做的时候,你我为什么要把精力投入那些我们曾经真正喜欢做的事里——而这件事现在感觉像杂务?
和 AI 一起工作的这几个月,让我明显变得更懒更笨了,至少编程方面是这样。(写小说时我不用 AI,原因很简单:写作本身就是组织和澄清自己想法的过程。让机器人替我写作,就像花钱请人替我健身然后指望那能让我锻炼出好身材一样。)
我在工作中也变得更不耐烦,尤其是收到同事发来的明显是 AI 写的邮件时。这些邮件常常让我去审查更长的、同样是 AI 写的文档。每次我都忍不住想:「你都不愿意费心写,我为什么要费心读?」
我确实用 AI 来回答基础问题。想知道 Amazon 的托管数据库与 Microsoft 和 Digital Ocean 的产品相比如何?Claude 的聊天机器人是获得高层次概览的好地方。从那里出发,你可以去源头获取更多细节。
但我认为,创造性工作者选择把自己最有想象力、最能进入心流状态的思考交给一群机器人,从长远看将是一个错误。这些 AI 机器人获得的所有知识都来自我们——来自我们的代码、我们的白皮书、我们的诗歌、小说和新闻报道、我们的传记,以及成千上万人在 Stack Overflow 上花了几十年时间、从辛苦得来的知识中写出的答案。
机器人吞噬了所有曾经免费的数据,现在又卖回给我们。Stack Overflow 上已经没有人回答问题了,因为人们直接去问 Claude 和 ChatGPT。曾经在 Stack Overflow 这样的免费服务中不断积累的公开知识正在枯竭,留给 AI 机器人未来技术问答的养分越来越少。
软件公司裁掉了所有初级开发者,因为 AI 机器人更便宜——只要你有熟练的高级开发者来管理它们。但如果没有初级开发者在履历管道中,靠摸爬滚打学会解决真正复杂、宽广、深入的问题——这些问题范围太大,AI 根本处理不了——明天的高级开发者从哪里来?五年后,谁有资格来管理这些机器人?
我所说的那些复杂、宽广、深入的问题,大到无法塞进 AI 的上下文窗口。你现在没法——也许永远没法——把以下内容喂给 AI:管辖你产品的一百个不同国家的每一条法律、你的产品必须与之交互的每个相关代码库的每个细微之处、构成你产品的数百万行代码中嵌入的每一条业务规则。一个由开发者和管理者组成的团队可以理解并运用这些法律和机构知识。这当然需要下功夫,而且成本高昂。复杂性向来如此。
但当我们把所有这些工作都交给机器人时会发生什么?世界上还有什么人拥有验证机器人产出是否正确所需的知识?
几年前,我读过一篇文章(现在已经找不到了[1]),讲的是美国海军如何说服国会拨款建造一艘海军并不急需的航母。「我们为什么要付这个钱?」参议员和众议员们问。
海军回答:「因为建造航母所需的技能是几十年苦苦积累而来的,如果现在不建一艘,十年后我们就忘了怎么建了。」
海军希望那些经验丰富的老手——那些建造了其他国家无法匹敌的世界级舰船的工程师和工匠——将建造世间独一无二之物所需的技能传递给年轻一代。唯一的办法就是真的去做,让整个团队真正走一遍设计和组装舰船的每一步。
国会批准了拨款,因为——尽管我们对他们的低效、党派争吵和普遍无能抱怨不断——他们比我们的大多数企业更有远见。他们看的不是下一份收益报告,而是几十年后的未来。
软件行业的公司,从最大的企业到最小的创业公司,正在把创造性工作外包给机器人,因为短期回报是巨大的。为什么要付十个开发者的钱每年推出一个产品,而你可以付四个人在 Claude 或 Codex 的帮助下推出十个产品?
对于管理者和投资人来说,这看起来是明显的胜利。但账单迟早会到。维护数百万行代码的成本是巨大的——特别是当没有人真正理解这些代码时,因为没有人真正写过它们。修复 bug、添加功能、将新技术集成到现有代码中是艰巨的工作。这项工作也将交给机器人,而从长远来看,社会将依赖人们既未创造也不理解的系统来运转。
至于我,一个曾经富有创造力的开发者,努力每天为自己留出不受打扰的时间以便深入进入那种创造性心流——软件开发的过程不再那样让我感到满足。我不再那样深度沉浸于我的工作。我不再像以前那样在工作中学习。我像大多数人回复邮件和 Slack 消息一样,回应机器人的代码建议和 Pull Request。我的工作变成了反应,而不是创造。
在我即将结束软件工程职业生涯之际,我想起了二十世纪中期的工匠们——那些木工和金属工匠,看着塑料制造业的兴起以他们无法也不可挽回的方式侵蚀了他们的工作。没错,工匠制作的玩具、工具和乐器展现了工厂生产的塑料模型无法匹敌的专注与投入。但那又怎样?对公众来说,一个「够好」的塑料玩具就是够好。而且如果六个月后它坏了,太便宜了,再买一个就好。
那些数以百万计的塑料制品现在正在污染我们的海洋。大太平洋垃圾带如今已是法国面积的三倍。[2]
这就是我们互联网的未来——随着 AI 在做其他有用工作的过程中,每天吐出相当于一百万吨塑料垃圾的数字等价物。
虽然计算机编程——曾经是一种创造性事业——如今沦为了照看机器人的工作,但请记住:在你的自由时间里,你的头脑仍然是自由的,你可以将它的能量转向任何你喜欢的方向。我仍然尽可能多地写作,每次从心流状态中出来,我都感觉自己从心灵深处带回了一些新的东西。曾经只是模糊感受到的想法现在更加清晰地被表达出来,每一个想法都走向更高处——走向那些没有写作的实践,我根本无法表达、甚至无法开始思考的思想。
在选择如何度过时间时,请明智选择。你的图书馆里有你永远读不完的书。你的朋友和家(人)有着机器人永远无法理解的心灵和渴望。你的头脑——一旦你去除外界的噪音——仍然有能力想象、创造和进入心流。
去找到它!
[1] Rand 公司发表了关于海军因技能萎缩而丧失关键工程能力的论文,Defense News 在 https://www.defensenews.com/opinion/2024/11/08/the-us-navy-is-at-risk-of-losing-vital-shipbuilding-skills/ 写了该问题的相关总结。
[2] https://en.wikipedia.org/wiki/Great_Pacific_Garbage_Patch
译者注:这篇文章来自一位既是小说家又是资深软件工程师的作者,他深刻反思了 AI 对创造性工作的冲击。文章用「心流」理论框架、历史小说家的类比、海军造航母的寓言以及塑料污染隐喻四个维度,串联起一个核心担忧:当创造沦为审核,当技能传承的链条断裂,我们失去的不仅是工作方式,更是一种人之为人的可能性。文章情感充沛但逻辑严谨,值得每一位在 AI 浪潮中感到迷茫的技术人反复阅读。