AI正在移除软件工程的中产阶级
It's 2020. You're the most senior person on your team, in charge of code quality and architecture. You've set up good engineering practices, you thoroughly review PRs from people who are less experienced than you and work hard to maintain a healthy codebase.
现在是2020年。你是团队里最资深的人,负责代码质量和架构。你建立了良好的工程实践,仔细审查经验不如你的人的PR,并努力维护一个健康的代码库。
Then at some point, you go on holiday. When you come back, the codebase is a mess. Everyone merged each other's PRs without really paying much attention, someone added a bunch of new tables to the database to denormalise it because it was easier and they added serverless or Kafka to the stack without any solid evidence that they needed either.
然后某个时候,你去度假了。当你回来时,代码库一团糟。每个人都合并了彼此的PR,没有真正注意,有人添加了一堆新表到数据库来反规范化,因为那样更容易,他们还添加了serverless或Kafka到技术栈,没有任何确凿证据表明他们需要这些。
It's okay. You can fix this.
没关系。你可以修复这个问题。
Fast forward to 2026. You haven't been on holiday. It's just a normal Monday morning. You make yourself a nice coffee, open your computer and find yourself with 7 PRs to review. You open the first one: +24506 -3938 lines, accompanied by some AI-generated description of what they're supposed to do. Somehow, your team has made more changes since Friday than they used to make while you were away for a few weeks.
快进到2026年。你没有去度假。这只是一个普通的周一早晨。你给自己泡了一杯好咖啡,打开电脑,发现有7个PR要审查。你打开第一个:+24506 -3938行,附带一些AI生成的描述,说明它们应该做什么。不知何故,你的团队自周五以来所做的更改比你在几周假期期间所做的还要多。
AI removed the speed limit
AI移除了速度限制
AI makes projects with weak engineering culture fail much faster.
AI让工程文化薄弱的项目失败得更快。
There used to be a time when people sat down and talked about how they'd do something. Now they can just prompt an agent for a few hours and open a PR.
过去,人们会坐下来讨论如何做某事。现在他们只需提示一个代理几个小时,然后打开一个PR。
The most tragic aspect of this way of working is that, to the untrained eye, it works.
这种工作方式最可悲的方面是,在外行人看来,它似乎有效。
If you pull the branch and test it, you'll probably get something somewhat functional. So what do they do? They keep going. Again and again. Until the project reaches a point where no one knows how anything works.
如果你拉取分支并测试,你可能会得到一些功能性的东西。所以他们怎么做?他们继续前进。一次又一次。直到项目达到一个没有人知道任何东西如何工作的地步。
Just like someone buying a new luxury car on a credit card. You don't see the debt. You just see the car that looks great.
就像有人用信用卡买一辆豪华新车。你看不到债务。你只看到那辆看起来很棒的车。
But then users start to report a weird bug. It's the 4th time your team has been trying to fix it. I mean... asking AI to fix it. Unfortunately, it seems like not even Fable can figure it out.
但随后用户开始报告一个奇怪的bug。这是你的团队第四次尝试修复它。我的意思是……让AI修复它。不幸的是,似乎连Fable也搞不定。
You go talk to the person who worked on this feature.
你去找负责这个功能的人。
- "So where does the data come from?"
- "Hmm... actually I don't know. Let me ask Claude."
- “那么数据从哪里来?”
- “嗯……实际上我不知道。让我问问Claude。”
You sit next to each other watching an endless wall of text appear on the screen. Neither of you has any idea whether any of it is true but Claude seems very confident.
你们并排坐着,看着屏幕上出现无尽的长文本。你们俩都不知道其中是否有任何是真的,但Claude似乎非常自信。
"Let's just turn on ultracode and ask it to double-check?"
“我们打开ultracode让它再检查一遍?”
This one will take a while. You start talking about the latest drama on X.
这个需要一段时间。你们开始谈论X上的最新八卦。
You finally get an answer back.
你终于得到了回复。
- "Does this make any sense to you?"
- "I'm not sure."
- "Didn't you build this like... last week?"
- “这对你来说有意义吗?”
- “我不确定。”
- “这不是你上周……建的吗?”
Silence.
沉默。
This project has become so convoluted, with so many layers and services, that no one on your team could possibly start to understand what's going on.
这个项目已经变得如此错综复杂,层层叠叠的服务多到连你团队里都没人能真正搞明白到底是怎么回事。
So, what do you do?
那么,你该怎么办?
Fixing it would require such a colossal amount of work that it would be impossible to even start justifying it to anyone in management.
修复它需要耗费巨大的工作量,以至于你根本无法向管理层开口解释为什么要这么做。
And what are you even thinking about? It would end up in the exact same state again in just a few months anyway.
而且你到底在想什么?反正过几个月它又会变成同样的烂摊子。
- "Let's just ask Claude to fix it."
- "Okay. I'll create a loop and goal so it doesn't stop until it's checked that everything works."
- "Sounds good"
- "Actually, I ran out of Fable usage for today so I'll run it tomorrow"
- “干脆让Claude来修吧。”
- “行,我会创建一个循环和目标,这样它就会一直运行,直到确认所有功能都正常为止。”
- “听起来不错。”
- “其实,我今天Fable的用量已经用完了,所以我明天再跑。”
You grab another coffee and walk back to your computer. You now have 13 PRs left to review. You see something you don't quite understand, so you message the person who wrote it.
你拿起另一杯咖啡,走回电脑前。你现在还有13个拉取请求要审查。你看到某个地方不太明白,于是给写这段代码的人发了消息。
- "Why are we doing this here?"
- “我们为什么在这里这么做?”
They send you a link. It's a Claude conversation.
他们发给你一个链接,是一个Claude对话。
Somewhere in that conversation, buried between Claude confidently recommending one architecture, apologising, changing its mind, your coworker asking it to reconsider again and another 15 rounds of changes, is apparently the design decision behind this code.
在那个对话的某个地方,埋在Claude自信地推荐一种架构、道歉、改变主意、你的同事让它再考虑一下,以及另外15轮修改之间,显然就是这段代码背后的设计决策。
- "Which part should I read?"
- "Probably all of it."
- “我应该读哪一部分?”
- “可能全部都要读。”
Does this sound familiar?
这听起来熟悉吗?
Whenever I talk about this, someone eventually tells me that nobody ever fully understood large systems anyway. It's true.
每当我谈到这个,总会有人说,反正从来没有人能完全理解大型系统。这倒是真的。
You were never expected to understand every service and every database. But at least someone did and would explain it to you.
你本来就不需要理解每一个服务和每一个数据库。但至少有人理解,并且会向你解释。
Now they ask an LLM because they don't actually know themselves.
现在他们去问LLM,因为他们自己其实也不懂。
You can't afford bad engineers anymore
你再也承受不起糟糕的工程师了。
In every team, there are competent people who make the project possible. There are also people who essentially make it harder for everyone else. And now anyone can produce more code in a day than they used to in a year.
在每个团队里,都有一些有能力的人,他们让项目得以实现。也有一些人在本质上让其他人的工作变得更难。而现在,任何人一天内产生的代码量都可能比过去一年还多。
In the story above, everyone is failing:
在上面的故事里,每个人都在失败:
- The engineer opening a 25,000-line PR should have stopped the agent long before it got there. They should have understood what it was doing, broken the work into smaller pieces and questioned every new abstraction it introduced.
- The person reviewing it should have refused to review something that large instead of giving in.
- The person adding Kafka should have been able to explain exactly why it was needed.
- The person who built the feature should have been able to explain where the data came from without sending a link to a Claude conversation.
- 那个打开25,000行拉取请求的工程师,应该在代理跑到那一步之前就阻止它。他们应该理解它在做什么,把工作拆分成更小的部分,并质疑它引入的每一个新抽象。
- 审查代码的人应该拒绝审查那么大的东西,而不是屈服。
- 添加Kafka的人应该能够准确解释为什么需要它。
- 构建该功能的人本应能够解释数据的来源,而不必发送一个指向 Claude 对话的链接。
But what's the problem then? Just use AI to fix it. Well, it's not that easy...
但问题出在哪里呢?直接用 AI 修复就好了。嗯,事情没那么简单……
Before anyone jumps on this, none of this means technical debt is always bad. The important part is that you know it's a shortcut.
在任何人对此提出异议之前,需要说明的是,这并不意味着技术债务总是坏事。关键在于你要知道这是一种捷径。
Anyway, reverting a bad decision is hard. Very hard.
无论如何,撤销一个糟糕的决定是困难的。非常困难。
For example, how long would it take an LLM to add a bunch of tables and columns to the database? 10 minutes?
例如,让一个 LLM 向数据库添加一堆表和列需要多长时间?10 分钟?
But once you start storing data there, you can't just remove them. You have to come up with a migration plan, make sure you don't disrupt the system because people are paying to use this every day. You have to think about what you'll do if the migration fails. Make sure you don't end up with orphaned foreign keys. It's just so much harder to fix. Even with the best model you can get.
但一旦你开始在那里存储数据,就不能随意删除它们。你必须制定迁移计划,确保不会中断系统,因为人们每天都在付费使用。你必须考虑迁移失败时该怎么办。确保不会留下孤立的外键。修复起来要困难得多。即使使用你能得到的最好的模型也是如此。
And while you're fixing it, more PRs keep coming in. More code, more abstractions, more decisions. A person can generate 20,000 lines of code in an afternoon, but you still have to sit there and understand what those lines actually do.
而且在你修复的同时,更多的 PR 不断涌入。更多的代码、更多的抽象、更多的决策。一个人一下午就能生成 2 万行代码,但你仍然需要坐在那里理解这些代码实际做了什么。
By the time you've untangled one bad decision, five more have been merged.
等你理清一个糟糕的决定时,又有五个已经合并了。
The new AI economy
新的人工智能经济
Of course, bad engineers were always a liability.
当然,糟糕的工程师一直是个负担。
It has been like this for decades, well before OpenAI or Anthropic existed. Bad decisions compounded, unnecessary complexity accumulated and teams ended up maintaining systems nobody really understood.
几十年来一直如此,远在 OpenAI 或 Anthropic 出现之前。糟糕的决策不断累积,不必要的复杂性不断堆积,团队最终维护着没人真正理解的系统。
The difference is that there used to be a limit to how fast you could do it.
不同之处在于,过去你的速度是有限制的。
Today, implementation is cheap. You are paid to make good decisions. To build software that will scale while managing complexity.
如今,实现变得廉价。你拿薪水是为了做出好的决策,是为了构建能够扩展并管理复杂性的软件。
Ask yourself why companies are paying six-figure salaries for engineers in London or San Francisco in the first place.
问问你自己,为什么公司一开始要付给伦敦或旧金山的工程师六位数的薪水?
If all they needed was someone who could turn a specification into working code, why were they paying that much when they could already get it done cheaply elsewhere?
如果他们需要的只是能把规格说明变成可用代码的人,那为什么还要付那么多钱,而他们本可以在其他地方以更低成本完成?
Why are the tech companies claiming that "software is solved" still paying top salaries to attract the best people they can?
为什么那些声称“软件已解决”的科技公司仍然支付高薪来吸引最优秀的人才?
My bet is that AI pushes salaries further apart. To be employable, there's a bar you have to clear and that bar is whatever the current best model du jour can do.
我打赌 AI 会进一步拉大薪资差距。要想被雇用,你必须跨过一道门槛,而这道门槛就是当前最好的模型能做到的水平。
Good engineers have become more valuable because AI lets them move much faster. They don't need as many people around them just to do the implementation work anymore.
优秀的工程师变得更有价值,因为 AI 让他们行动更快。他们不再需要那么多人在身边做实现工作。
At the same time, bad engineers have become much more expensive to hire.
与此同时,糟糕的工程师的雇佣成本变得更高了。
I wrote about this before when I said the vibe coder career path is doomed.
我之前写过,说氛围编程的职业道路注定失败。
You need to contribute beyond what everyone already gets by giving an agent a prompt.
你需要贡献的不仅仅是给智能体一个提示词,而是超越人人都能得到的东西。
If you lack the judgment required to evaluate the LLM's recommendation, asking for more judgment doesn't solve the problem.
如果你缺乏评估大语言模型建议所需的判断力,要求更多的判断力并不能解决问题。
At some point, someone still has to know what is going on. And that's the most valuable person on the team.
在某个时刻,仍然必须有人知道发生了什么。而那个人就是团队中最有价值的成员。
The people who don't will become much cheaper to hire or get replaced entirely while the money gets funnelled towards an increasingly smaller number of people who can actually be trusted.
那些不知道的人会变得更容易被廉价雇佣,或者被完全取代,而资金则流向越来越少真正值得信赖的人。
更进一步:量化金融体系
看懂新闻只是起点——沿量化金融路径,把它变成能交付的工程能力