Terrible Software · 2026-03-03

为什么没有人因为简约而获得晋升

摘要

文章揭示了工程团队中一个普遍存在的激励机制问题:复杂度被奖励,简约被忽视。工程师A用简单直接的方案快速交付功能,工程师B花费三周构建复杂的抽象层和配置框架,后者在晋升时能写出令人印象深刻的叙述,而前者的工作因为看起来太简单而难以被认可。这种问题从面试阶段就开始了,面试官会推动候选人展示更复杂的解决方案,而不是接受简单有效的方案。作者强调,真正的高级工程师不是学习更多工具和模式,而是学会何时不使用它们。

内容框架与概述

文章首先通过两位工程师的对比案例,生动地展示了简约与复杂在晋升评价中的不同待遇。工程师A用50行代码几天解决问题,工程师B用三周构建复杂架构,后者的工作几乎自动转化为令人印象深刻的晋升材料。这个对比揭示了一个核心问题:没有人因为避免了复杂度而获得认可。

作者随后追溯了这个问题的根源,指出它不仅存在于晋升决策中,还贯穿于招聘面试和设计评审的各个环节。在系统设计面试中,候选人被鼓励添加更多服务、队列和分片来展示思考深度;在设计评审中,工程师被问及是否应该面向未来,结果添加了不必要的抽象层。

文章澄清了作者的立场:复杂度本身并非坏事,真正的问题是未赢得的复杂度。当问题本身需要复杂方案时,复杂是合理的;但为了避免假设的未来需求而预先添加复杂度,则是值得警惕的。作者指出,通向高级工程师的道路不是学习更多工具和模式,而是学会何时不使用它们。任何人都可以增加复杂度,但需要经验和自信才能克制住不添加不必要的复杂度。

核心概念及解读

未赢得的复杂度(Unearned Complexity):指为了应对假设的未来需求而预先添加的复杂度,而非解决当前实际问题所必需的复杂度。

简约需要可见性:简单的工作不会自动说话,工程师需要学会用不同的方式描述自己的决策过程,突出评估多种方案后选择最简单方案的专业判断。

复杂度税:添加不必要的抽象层和配置框架会增加系统理解和维护的成本,即使它们看起来更专业、更工程化。

克制即智慧:真正的高级工程师不是掌握更多工具和模式,而是学会何时不使用它们。增加复杂度很容易,但需要经验和自信才能克制住不添加不必要的复杂度。

将简约设为默认:领导者应该改变提问方式,从是否考虑了规模转向什么是最简单的版本,以及什么具体信号表明我们需要更复杂的方案。


原文信息

字段内容
原文Nobody Gets Promoted for Simplicity
作者Terrible Software
发表日期2026-03-03

此摘要卡片由 AI 自动生成