代码变便宜了,判断力没有

实现已被部分自动化,判断层就独立显现出来了,而事实证明它才是工作的大部分。

代码变便宜了,判断力没有
AI模型价格对比 | AI工具导航 | ONNX模型库 | Vibe Coding教程 | PLC在线仿真器 | Tripo 3D | Meshy AI | ElevenLabs | KlingAI | ArtSpace | Phot.AI | InVideo

关于 AI 和工程的主流叙事是它降低了门槛。配备合适工具的初级工程师现在能做中级工程师过去做的事。中级工程师能做高级工程师过去做的事。金字塔被压缩,组织架构变扁平,顶端经验丰富的工程师变得不再那么不可或缺,因为他们曾经提供的杠杆效应现在已经内置到工具中了。

我不认为正在发生的事情是这样的。我认为恰恰相反,而押注于第一种解读的组织将会感受到这一点。

认真使用 AI 的工程团队,瓶颈不再是编写代码。实现成本被压缩的速度超过了大多数团队的适应速度。变得稀缺的是决定实现什么、如何组合在一起、以及拒绝什么的那项能力。这项工作一直都在。它过去与实现工作并行进行,通常由同一些人完成,通常没有人注意到它是一个独立的活动。既然实现已被部分自动化,判断层就独立显现出来了,而事实证明它才是工作的大部分。

1、实际上改变了什么

在过去二十年中的大部分时间里,小型工程团队交付能力的实际限制是其人员能编写、测试和维护多少代码。这个天花板已经移动了。一个有效使用 AI 工具的工程师现在可以产出过去需要一个小团队才能完成的可运行实现。这些工作仍然需要被定义、审查和集成,但编写代码的行为不再是速率限制步骤。

大多数工程组织已经注意到了这一点,并且大多数得出了相同的结论。如果代码更便宜了,你需要更少的人来编写它。团队在顶端变薄——那里的人最昂贵——假设是 AI 加上一小群经验不足的工程师就能弥补差距。我最近写过这如何改变了小团队实际上能达到的范围,同样的压缩逻辑支撑着这里的论点。

这种解读忽略了代码变便宜实际暴露出来的东西。当实现成本高昂时,决定构建什么、不碰什么、以及拒绝什么的工作隐藏在构建工作之中。它之所以完成,是因为高级工程师已经在房间里,在编写代码的过程中做出这些决策。现在编写工作已被工具部分吸收,决策工作并没有消失。它仍然在那里。只是不再伪装成编码工作了。

2、判断力到底是什么

这里的判断力不是经验的模糊替代词。它是一组具体的事情,而且每天都会出现。

它是在团队能够合理地承担超出其应承担范围的工作时,选择正确的问题去解决。它是在个体看似合理但集体不连贯的决策之间做出连贯的取舍。它是在每个新贡献都想将系统的概念形态略微扭曲时,保持系统概念形态的稳定。它是从在正常路径上有效的设计中读出运维后果。它是对那些变得容易添加、因此诱人添加的复杂性的说"不"。

这些都不是新的责任。新的部分是它们不再被吸收在实现工作之中。它们必须被刻意地完成,由那些将其识别为工作的人来完成。

3、在实践中是什么样的

None

这个答案看起来合理。但在上下文中是错误的。

我管理的一个团队最近有一个决策,关于如何架构一个新的支付授权服务。这个服务需要快速响应,并且需要在某段时间内以原子方式完成授权。我们在 AI 参与的情况下进行了讨论。建议是合理的。合理的结构,合理的边界,合理的取舍。然后它选择了 Redis 作为缓存和协调层。

这是一个好答案。在教科书中它可能是正确答案。问题在于这个答案所适用的不是我们实际面临的问题。我们目前没有运行 Redis 集群。我们目前没有在为此付费。我们的基础设施成本非常低,没有扩大这部分足迹的压力。我们需要快速投入工作的东西,而我们已经有了一个正在运行的数据库,几乎可以肯定对我们需要的操作来说足够快。

我们将设计回调为使用现有数据库。不是因为在原则上 Redis 是错的。而是因为问题不在于 Redis 是否能工作;问题在于我们是否应该在尚未知道实际负载的情况下,为尚不需要的基础设施进行预先优化,而现有工具可能已经足够。这种权衡不在 AI 的建议中。它也不会出现在那里。AI 在推理它面前的问题。我们则在推理它面前的问题加上它周围的公司。

还有一种更简单的失败模式值得简要提及,因为它往往主导了对话并且更容易被发现。AI 有时会犯局部错误。在我的一个副项目中,在处理同一数据的不同视图时,AI 构建了两个独立的页面,而一个参数化页面才是正确的。代价在后来显现——每次我要求修改时,它只被应用在一个地方而不是另一个。这种错误是真实的,但它是可见的那种。你注意到它,修复它,然后继续前进。更好的工具可能会随时间降低其频率。

Redis 的选择是更难的那种。这个答案是合理的。这个答案本可以交付。这个答案在审查中看起来没问题。它在上下文中是错误的,而房间里唯一知道它在上下文中错误的人,是一个看过足够多这样的选择走向另一个方向的人。

4、高级工程师现在到底是为了什么

产生大多数现有工程层级的模式奖励的是能够亲自承担最多实现负载的人。最强的高级工程师通常是那个能交付最多、修复最难 bug、并在同时将系统的最多部分记在脑子里的人。这种资历版本正在以大多数组织不愿承认的速度被商品化。

变得更有价值的版本是不同的。它是能够指导一系列 AI 辅助的贡献并保持其连贯性的工程师。是能够在比以前同一时间窗口内可能吸收的更多变化中保持架构稳定的工程师。是能够在模糊性中推理、说出还没有人提出的运维风险、并拒绝在上下文中错误的合理答案的工程师。工作已经从产出每一个制品转变为塑造产生它们的杠杆。

这不是一个软技能论点。它不是关于沟通或利益相关者管理——这两者都很重要,但不是重点。它是关于决定什么该被构建、什么不该被构建的技术判断力,应用在一种过去足够慢以致自我调节、现在足够快以致不再自我调节的工作流上。

5、要避免的错误

当下的本能反应是将廉价的实现解读为减少团队中高级端人员的信号。逻辑很简单。如果配备 AI 的初级工程师能产出比以前更多的东西,你需要更少的高成本人员来指导他们。

这是一个错误的决策,而且我认为它将定义未来几年哪些工程组织挣扎最多。不是那些缓慢采用 AI 的组织。而是那些采用了 AI、看着实现成本下降、并得出判断层也随之下降的结论的组织。它没有。它变得更重要了、更暴露了、作为一个独立活动更可见了。以工具现在代为完成的理论为由,移除一直在做这件事的人,是我最积极反对的举动。

能从 AI 中获益最多的团队,将是那些保留有经验的工程师并改变这些工程师工作内容的团队。更少的个人产出。更多的指导。更多地拒绝那些看似合理的方案。更多地在外部以超出以往的速度变化时保持系统稳定。

6、我的结论

代码现在以一种五年前没有的方式变便宜了。这是真实的,它改变了工程工作的形态。但它没有朝着大多数人预期的那样改变方向。

门槛并没有降低。编写工作被压缩了,而暴露在下面的是一直最重要、最难看到的工作。这项工作更高级,而不是更低级。认识到这一点并据此构建结构的团队会做得很好。没有这样做的团队将在接下来的几年中缓慢而昂贵地发现,他们移除的那部分工作正是将一切凝聚在一起的部分。

更少的个人产出。更多的指导。


原文链接: Code got cheap. Judgement did not.

汇智网翻译整理,转载请标明出处