代码成本崩溃后的工程管理

Hacker News Top 新闻

摘要

一位工程总监反思了LLMs导致代码生产成本崩溃如何动摇了传统管理假设,主张根据底层假设而非年代来审计实践。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/07/25 17:10

# 代码成本崩塌后的工程管理 来源:https://karimjedda.com/engineering-management-after-cost-of-code-collapse/ 代码成本崩塌后的工程管理我担任工程总监已略超三年,但仍不断听到和读到那些我称之为“老规矩”的内容被反复提及:总监不应花时间编码、好工作需要时间、保护团队免受业务干扰、在承诺前达成共识,等等。 有一段时间,我以为重复这些说法的人落伍了。后来,我们在我的部门引入了大语言模型,编写代码的成本下降了,我开始对照每个规则背后的假设进行审视。一个令人惊讶的发现是:大约一半的老规矩建立在已经崩塌的假设之上,另一半则建立在未崩塌的假设之上,而其中一些规则现在比以往更为重要。 以下是我过去一年积累的笔记的整理版。Gemini 4 协助了编辑工作。 ## 我们实际知道什么 生成看似合理的代码的成本已经崩塌,并且不会再回升。除此之外,几乎所有的论断要么未经证实,要么是错误的。 - AI 工具显著加快了工程团队的速度:未经证实。 - 代码审查、文档和入职培训已过时:错误。 - 你能以一半的人力执行相同的路线图:这是一个赌注,而非事实。 如果你基于这个狭窄的论断重建管理实践,你会是正确的。如果你基于那些宽泛的论断进行重建,那就是拿他人的职业生涯赌博,并称之为结论。 ## 聚焦于审计假设 每一项管理实践都依赖于某个特定假设。速度追踪依赖于产出作为工作量的可用代理。六个月入职培训依赖于语法学习缓慢。共识驱动的架构依赖于变更成本高昂。人员编制规划依赖于产出随人数增长,等等。 对于每项实践,问题不在于它有多古老,而在于该实践实际上依赖于什么。 如果一项实践依赖于编写代码的成本,那就需要重新审视,因为该成本已经变动。如果它依赖于人类如何协调、建立信任、分配注意力或验证正确性,那么无论该惯例感觉多么过时,本质上都没有改变。 这听起来显而易见,但我认为许多人是在凭感觉分类:任何看起来现代的就保留,看起来过时的就淘汰。这会导致团队舍弃了有用的摩擦,保留了无用的流程,因为实践的新旧与有效与否是不相关的变量。 ## 证据小于噪音 对任何报告大幅提速且仅此而已的人保持怀疑,包括你自己的团队。我所了解的收益在全新工作、样板代码和不熟悉的领域表现得最为明显。在工程师已经理解的系统上进行深度工作时,这些收益会减弱甚至逆转。我非常期待 2025 年第四季度之后的数据和研究,因为当时推出了一批新模型,其能力完全超越了旧报告和研究所依据的模型。 然而,感觉速度与测量速度之间的差距本身就是一个管理问题。如果你的工程师感觉更快,但交付量相同且缺陷更多,那么你将错误地配置人员、错误地规划,并设定无法满足的业务期望。采用 AI 的组织的第一要务是拥有足够诚实的度量手段,来告诉你是否真的加快了速度。 ## 廉价事物的薄弱代理 速度、拉取请求数量和已关闭工单从来都不是完美的衡量标准。它们之所以幸存,是因为它们所近似的产物——编写代码的努力——确实是稀缺的,因此噪声保持在可容忍的范围内。 现在,这个被代理的事物变得廉价了。这不仅让衡量指标变得不完美,而且实际上具有误导性,因为提高这些指标最廉价的方式是制造数量,而数量正是你的组织不再缺乏的东西。 针对 AI 的特定指标解决了错误的问题。我认为接受率和提示次数只是旧错误的新形式。持久的做法更古老也更具挑战性:衡量业务结果和系统健康度,并将代码量视为需要证明其合理性的成本,而不是值得称赞的产出。优秀的工程师在 LLM 出现之前就说过这一点。那时它是正确的。现在它在某种程度上更具可执行性,因为没有人能再说编写更多代码是困难的部分了。 ## “正确”仍然需要时间(暂时如此) 好工作需要时间这条规则清晰地一分为二。 管道时间已经崩塌。搭建服务架构、生成测试、在框架间转换、编写迁移初稿:所有这些现在都很快,任何建立在这些成本上的时间线都应当被压缩。 ## 正确性验证时间一分为二 AI 系统现在检查和纠正代码的速度比任何人类审查者都快,假装并非如此会损害可信度。一方面,机械验证正在崩塌。任何正确性可以表达为机器可检查产物的事物:类型、测试、契约、lint 规则、不变量、金丝雀指标。Agent 运行测试循环、读取失败信息、修复差异、再次运行,其速度是任何审查者都无法比拟的。如果你的正确性验证位于这一层,那么你的检查时间确实在下降,并且还会继续下降。 但请注意,是什么让这一层变得快速。**它之所以快,是因为有人已经将正确的含义写成了机器可以评估的形式。** 规范完成了工作,而检查器读取它。 语义验证则是另一回事。代码是否实现了业务实际需要的策略?这个权衡是否匹配你的监管风险?在这里,“正确”存在于人类头脑和机构历史中。AI 检查 AI 存在一个结构性问题:检查器与生成器共享训练数据、偏见和盲点。两层会在相同的地方因相同的原因而失败。自我审查能发现拼写错误,但发现不了共同的误解。 我相信由此产生三个后果,这也是本文的核心: - 单位成本下降,总工作量上升。廉价的检查会引发更多的生成,而更多的生成需要更多的检查。即使每次检查都变得更便宜,验证工作量也会随数量增加而增加。最终日历时间不确定,事故形态也会转变:**更少的愚蠢错误,更多的系统性错误,因为大量看似合理的输出现在通过了大量看似合理的审查。** - 边界是一个战略变量。你的正确性中有多少是机器可检查的并非固定不变。它取决于你的规范、契约和不变量。**拥有强规范的团队能充分享受廉价检查的好处。** 拥有弱规范的团队会用生成代码的同一台机器来审查生成的代码。**投资于机器可检查的正确性,现在是一个组织能够资助的、杠杆率最高的基础设施工作之一**,因为它决定了你能实际利用这股浪潮的多少。 - 验证中最慢的部分从来不是检查本身,而是问责。有人签字,有人承担出错(事故审查、监管机构、客户)的后果。签字时间不会压缩,因为它不是信息处理过程。它是风险接受,而法律和信任体系将其分配给人类。 所以,验证仍然限制着吞吐量。发生改变的是约束的位置:从检查速度变为规范质量,以及特定人类愿意承担结果的意愿。 ## 初级工程师培养管道是一个未解决的问题 没有人知道如何在这个环境中培养工程师。 你希望高级工程师具备的判断力,历来是通过 AI 现在正在吸收的工作来构建的:修复小错误、编写样板代码、陷入困境然后摆脱困境——这些不仅仅是任务,实际上是产生判断力的实践。如果机器取代了实践,那么培养高级工程师的管道就会断裂,并且这种断裂会有延迟,因此你会在三到五年内都注意不到。 有一些看似合理的应对措施:对生成代码进行结构化审查、设计有意的无辅助练习、轮岗测试和验证工作、在高级工程师严密监督下尽早接触真实系统。我正在实施其中一些措施的变体。我不能告诉你它们有效,因为结果变量是五六年之后高级工程师的质量。 我能告诉你的是,任何声称已经解决这个问题的人,无论是供应商、散文家还是会议演讲者,都是在推销某种东西。把培养管道视为你自己要负责的一个开放问题。它有着行动与证据之间最长的延迟,以及最少的纠错机会。 ## 我对老规矩的看法 **“总监不应编码。”** 那种浅尝辄止、审查拉取请求只为找存在感、并成为瓶颈的总监是真实存在的。同样真实存在的还有:对工作的心智模型落后五年、无法区分团队是真的更快了还是在大量产生自信但错误的输出(垃圾炮)的总监。解决方法是校准。你不需要交付代码。你需要与工具和输出有足够的直接接触,这样你就不会被任何一方——无论是炒作还是贬低——所愚弄。 **“保护团队免受业务干扰。”** 这条规则背后的假设是注意力有限且上下文切换成本高昂。这个假设依然成立。改变的是让团队缺乏上下文信息的成本。工程师在没有业务上下文的情况下使用 AI 工具,只会大量产生流畅、看似合理但错误的工作。修正方案不是让每个人淹没在信息中,而是停止默认过滤,开始有选择地决定:哪些上下文、给谁、以什么详细程度。 **“在承诺前需要达成共识。”** 共识始终关乎承诺和协调,以及承受廉价转型的成本。廉价转型改变的是哪些决策根本需要共识。可逆决策,或双向门,应由尽可能小的团队快速做出,因为错误的可逆决策现在撤销成本很低。不可逆决策仍然值得缓慢的流程。真正的技能是分类,而大多数组织不断错误分类,将可逆的技术选择视为永久性的,将永久的组织选择视为随意性的。 **“我们需要更多人员编制。”** 产出的单位经济学发生了变化,因此每个请求都应比三年前受到更严格的审视:这项工作中哪部分是判断力,哪部分是我们仍在雇佣人类进行生产?但不要矫枉过正。向一个迟到的项目增加人员仍然会让它更迟。协调成本、入职摩擦和沟通开销并没有随着语法价格的下降而改变。审视人员编制是因为人均产出发生了变化,而不是因为人不再是昂贵的部分。 ## 为什么这些模式持续存在 三年下来,我对此的看法如下。实践之所以持久,是有原因的,这些原因总是混合的:有些过时,有些仍然有效,有些是政治性的。当你听到一条老规矩被重复时,你通常听到的是一个人在用一个错误的论点捍卫有效的部分,或者用一个曾经奏效的论点来捍卫过时的部分。 把持久性视为愚蠢,是每一种管理时尚的失败模式,AI 时尚也不例外。五年后看起来最糟糕的领导者,不会是那些谨慎的人,而是那些用一套新口号(即使是听起来准确的口号)取代思考,并根据仍未测量的说法来运营组织的人。 ## 工作就是分类 当一项如此重大的技术到来时,诱惑是选择一种姿态:烧掉旧剧本或捍卫它。两种姿态都是懒惰。剧本从来不是一个单一的对象。它是一百页,有些关于打字成本,有些关于人类本质,它们被紧密地绑在一起,以至于我们忘记了它们是可以分离的。 不要让任何人,包括一篇自信的文章,包括本文,说服你那些曾经是同一页。 ## 机器会进行分类吗 最近有人告诉我,AI 很快也会完成管理工作,包括分类。我思考了整个周末,我认为部分正确。 管理具有信息路由功能:汇总状态、跟踪进度、将更新转化为仪表板、预测时间表、整理绩效数据。管理层日常所做的大部分工作是在格式和人之间移动信息。LLM 在这方面非常出色,其价值正在趋近于零。如果你的管理层靠总结 Jira 来体现价值,那么是的,那已经结束了。 然后是判断功能:招聘、解雇、晋升、决定哪种规则适用于当前情况下的这些人、为错误的决策承担责任。这与验证具有相同的结构。有人检查输出与现实是否相符,有人承担后果。 我们回到上面提到的生成论点,但将其应用于管理工作:管理产出变得丰富,因此廉价。但以上所有论点的核心是,当生成变得丰富时,验证就是约束条件。机器生成的管理仍然需要人类根据组织的实际行为对其进行验证,并对结果签字确认。因此,这也许不是管理者的终结,而是管理者降级为编辑和所有人的终结。这与个人贡献者正在经历的转变完全相同。 将分类委托出去还有一个问题。分类需要一个关于你的组织实际如何运作的模型:信任关系、小道消息、过去决策的后果。这些几乎都没有被记录下来。一个组织的书面记录是组织的一个很小、经过打磨的部分,而模型会基于这个记录进行分类。更糟糕的是,模型从其训练中编码的是行业平均的判断力。一个 LLM 会大致按照中等水平组织的方式来分类你的剧本。如果你的策略是成为中等水平组织,那没问题。差异恰恰存在于你拒绝委托的那些决策中。 我诚实承认,分类作为一项智力活动是可以自动化的。我用 AI 对本文的部分内容进行了压力测试,它的一轮审查还算不错。但无法自动化的是政治和道德工作。 未来的走向:管理控制范围扩大,层级压缩,管理的信息路由层确实面临风险,而头衔比职能持续得更久。幸存下来的管理工作是那些无法被写下来、无法被平均化、也无法由其他人签字的工作。 ## 什么会幸存 工程工作的剩余是规范和所有权。管理工作的剩余是判断和所有权。相同的形式,两个层级。 在组织的每一个层级,幸存下来的工作正是那些需要有人签字的工作。 让我们把推断推到极限,以彻底说明这一点。想象一个组织,其中 agent 编写代码、运行检查、路由状态、安排工作、起草计划。人类设定方向、定义何为正确、并签字。从签字到交付结果之间的所有都是机器。现在沿时间线倒推:想象这个组织先出现,有人提出了你实际运行的那个组织:“我们将雇佣数百名昂贵的人,让他们以打字速度手工生产文本。我们将他们分层排列,每一层的工作是为上一层总结下一层的内容。我们将他们的日历同步到会议室,以便他们可以互相告知已经发生的事情。我们将用他们的产出量来衡量其价值。”没有人会资助这个提案。它很慢,每次交接都会丢失信息,并且它消耗了组织中最稀缺的资源——信任和注意力。

相似文章

几乎不具普罗米修斯精神

Lobsters Hottest

这篇文章讨论了LLMs对软件开发的影响,认为虽然AI降低了编码成本,但将瓶颈转移到了维护和协调方面,并对DHH的乐观观点进行了批评。

论问责制

Lobsters Hottest

一篇关于软件工程和大型语言模型开发中缺乏问责制的反思文章,源自ICST 2024的一个主旨演讲,该演讲呼吁应像其他工程领域一样承担责任。