- Published on
AI正在淘汰软件工程的中产阶级?
- Authors
- Name
- florianherrengt
- blog.florianherrengt.com

引言:一个熟悉的故事
2020年,你是团队中最资深的人,负责代码质量和架构。你建立了良好的工程实践,认真审查经验不足者的PR,努力维护健康的代码库。然后你去度假了。回来时,代码库一团糟:每个人都不加注意地合并了彼此的PR,有人为了省事给数据库添加了一堆新表来反范式化,还有人毫无证据地引入了Serverless或Kafka。但没关系,你还能修复。
快进到2026年。一个普通的周一早晨,你泡好咖啡,打开电脑,发现7个待审查的PR。打开第一个:+24506 -3938行,附带着AI生成的描述。你的团队从周五以来做出的变更,比过去你离开几周时还要多。AI移除了速度限制。
AI移除了速度限制
AI让那些工程文化薄弱的项目失败得更快。过去,人们会坐下来讨论如何做某件事。现在,他们只需给智能体几个小时的提示,然后打开一个PR。这种工作方式最可悲之处在于,对外行来说它看起来是有效的。如果你拉取分支并测试,很可能得到某种可运行的东西。于是他们继续下去,一次又一次,直到项目达到无人知晓任何东西如何工作的地步。就像有人用信用卡买了一辆豪华车——你看不到债务,只看到漂亮的车。
然后用户开始报告一个奇怪的bug。团队已经尝试修复了四次——准确地说,是让AI来修复。不幸的是,似乎连Fable(AI工具)也搞不定。你去问负责这个功能的人:“数据从哪里来?”“嗯……实际上我不知道。让我问问Claude。”你们坐在一起,看着屏幕上出现无尽的长文本。你们俩都不知道其中有多少是真的,但Claude显得非常自信。“我们打开ultracode让它再检查一遍?”这会花些时间。你们开始聊X上的最新八卦。终于得到回复。“这说得通吗?”“我不确定。”“这不是你上周刚构建的吗?”沉默。这个项目已经变得如此复杂,有那么多层和服务,团队中没有人能开始理解发生了什么。
怎么办?修复它需要巨大的工作量,根本无法向管理层证明其合理性。而且即使修复了,几个月后又会回到同样的状态。“让Claude来修吧。”“好,我创建一个循环和目标,让它不停检查直到一切正常。”“听起来不错。”“实际上我今天Fable的用量用完了,明天再跑。”你拿起另一杯咖啡走回电脑前。现在有13个PR等着你审查。你看到一些不理解的东西,于是给写代码的人发消息:“为什么我们要在这里这样做?”对方发来一个链接,是一个Claude对话。在那段对话中,Claude自信地推荐一种架构,然后道歉、改变主意,你的同事让它重新考虑,又经过15轮修改,最终的设计决策就埋藏其中。“我应该读哪部分?”“大概全部。”
你再也雇不起糟糕的工程师了
在每个团队中,都有让项目成为可能的能干之人,也有让其他人工作更困难的人。现在,任何人都能在一天内产生过去一年才能写出的代码量。在上面的故事中,每个人都在失败:打开25000行PR的工程师本应在智能体生成那么多之前就阻止它;审查者本应拒绝审查如此大的PR;添加Kafka的人本应能解释为什么需要它;构建功能的人本应能说明数据来源,而不是发一个Claude对话链接。
但问题是什么?用AI来修复不就行了?没那么简单。技术债务本身不一定坏,关键在于你知道那是捷径。然而,撤销一个糟糕的决定非常困难。例如,让LLM添加一堆表和列到数据库只需10分钟?但一旦开始存储数据,就不能轻易删除。你需要制定迁移计划,确保不中断系统,因为用户每天都在付费使用。还要考虑迁移失败怎么办,确保不产生孤例外键。修复起来难得多,即使使用最好的模型。而在你修复的同时,更多的PR不断涌入——更多代码、更多抽象、更多决策。一个人可以在一个下午生成20000行代码,但你仍然需要坐下来理解这些代码实际做了什么。等你解开一个糟糕的决定,又有五个被合并了。
新的AI经济
当然,糟糕的工程师一直是负担,几十年来都是如此,远在OpenAI或Anthropic出现之前。糟糕的决定不断累积,不必要的复杂性不断堆积,团队最终维护着没人真正理解的系统。区别在于,过去有一个限制你制造混乱的速度。如今,实现是廉价的。你被付钱是为了做出好的决策,构建能够扩展且管理复杂性的软件。问问自己,为什么公司要在伦敦或旧金山为工程师支付六位数薪水?如果他们需要的只是能把规格说明变成工作代码的人,为什么还要付那么多钱,明明可以更便宜地在其他地方完成?为什么那些声称“软件已被解决”的科技公司仍然支付高薪来吸引最优秀的人才?
我的猜测是,AI将进一步拉大薪资差距。要获得就业资格,你必须跨过一道门槛,这道门槛就是当前最佳模型的能力。好的工程师变得更有价值,因为AI让他们行动更快。他们不再需要那么多周围的人来帮他们做实现工作。与此同时,糟糕的工程师变得雇佣成本更高。我之前写过“vibe coder的职业道路注定失败”。你需要贡献超出每个人通过给智能体一个提示就能得到的东西。如果你缺乏评估LLM建议所需的判断力,那么要求更多的判断力并不能解决问题。最终,必须有人知道发生了什么。那才是团队中最有价值的人。那些不知道的人将变得更容易被廉价雇佣,或者被完全取代,而资金则流向越来越少的真正可信赖的人。
我认为这不会仅限于软件工程。我相信同样的事情将发生在大多数知识工作中。AI会让最优秀的人更加高效,而让糟糕的人几乎无法被雇佣。过去,还有机会在糟糕的决定走得太远之前被抓住。现在,他们可以比周围任何人能够审查和理解的速度更快地做出变更。
对常见反对意见的回答
“糟糕的工程师一直存在”
区别在于速度。这就像以30公里/小时撞车和以200公里/小时撞车的区别。在AI之前,一个糟糕的工程师可能连能编译的代码都写不出来。即使写出来了,也花很长时间,破坏半径有限。伤害被人类打字的速度所限制。现在,一个糟糕的工程师可以在午饭前生成10000行可工作的代码。一个下午能造成的破坏,过去需要几个月。糟糕决定累积的速度完全改变了,而你能修复它们的速度却没有。
“只要修复流程”
有人说真正的问题是缺乏流程。如果有适当的测试、CI、代码审查和架构审查,AI生成的垃圾就不会通过。我们曾经拥有所有这些。它们并没有消失。问题在于,它们是为一个不可能产生大量变更的世界设计的。当有人每天打开10个带有AI生成描述的PR时,代码审查不再有效。测试只在覆盖了你想到的行为时有效。它们抓不住没人想到要测试的行为。你有多少次在完全绿色的CI和全覆盖的情况下仍然发布了bug?产生代码的难度本身就是一个限制因素。如果试图理解变更和守护质量的人成了瓶颈,你有三个选择:生成更少、找到真正更好的验证方式、或者接受更低的质量。
“你只是反AI”
每次我批评AI,就有人说我是卢德分子,拒绝适应新世界,固守旧方式。我重度使用AI。我反复说过这一点。我每天都用,而且不想回到手写一切的时代。关键在于,我们让产生大规模变更变得极其廉价和快速,而理解这些变更仍然是缓慢、困难的工作。我们没有捷径来建立变更的正确心智模型。也许有一天会有。但截至今天,我认为还没有。你可以是AI的重度用户,同时仍然认识到它被使用的方式存在严重问题。
“更多输出意味着更高生产力”
有人一天生成10个PR,数字看起来惊人,这个人肯定是10倍工程师。不一定。所谓的10倍工程师可能只是从周围每个人那里偷走生产力。如果我一天生成10个PR,但三个工程师接下来两天必须花时间审查它们、弄清楚我改了啥、纠正错误假设、调试回归、解释为什么一半需要重做,那么我并没有变得10倍高效。我只是把工作转移到了别人身上。更糟的是,我消耗了那些通常最难替代、注意力已经稀缺的人的时间。PR数量、代码行数和“完成”的功能是糟糕的生产力衡量标准。你可以让自己的数字看起来惊人,同时降低整个团队的吞吐量。有人反驳说真正的问题是糟糕的组织和扭曲的激励。确实如此。如果你的公司奖励工单数量而非质量,那么细心的工程师看起来像坏员工,而马虎的人得到晋升。
“坚持质量会让你被贴上‘有毒’的标签”
有人指出,试图守住质量底线可能让你被贴上“有毒”的标签。其他人都在快速交付,而你是那个说“等等”的人。我宁愿团队中有一个人交付更少但代码可靠,也不愿有一个每天生成10个PR却让所有人收拾烂摊子的人。
原标题:AI is removing the middle class of software engineering?。 HN 原始发布时间:2026年8月12日星期三。当前记录为 963 分、890 条评论。