Engineers do get promoted for writing simple code
核心观点: 写简单代码的工程师实际上更容易获得晋升。"没人因为简单代码被晋升"是个误解。简单代码意味着更快交付、更好维护、更容易让其他工程师接手——这些都是经理看重的结果。
关键要点
1. 非技术经理不傻
虽然经理们最初可能把复杂代码当作高难度的标志,但他们最终会看结果。写简单代码的工程师完成任务更快,能在一年内完成更多项目,建立起"轻松交付"的声誉。
2. 简单代码让你能交付项目
经理们不关心工程,他们关心的是功能。能顺利交付功能的软件工程师会得到回报。写简单代码是顺利交付的强预测因子。
写简单代码的能力通常是理解系统足够好,以至于能看到新变化最适合放在哪里的能力。这很难,但不会花很长时间——如果你熟悉系统,你经常会一眼看出优雅的地方在哪里。
3. 二阶效应被高估了
"写复杂代码以避免被替代"是一个聪明人常犯的错误:执着于二阶效应(某些行为会导致与原目标相反的下游后果),却忘记了一阶效应。做一些糟糕的工作确实在某些方面让你更难被替代,但这被负面后果所抵消。
实战建议
- 不要故意把代码写复杂——政治上聪明地让你的工作听起来比实际更复杂是明智的,但实际做不必要的大量工作是愚蠢的
- 简单代码不等于简单——简单代码通常更难写,但好的工程师往往能同样快速地交付简单代码
- 避免"他们很聪明,但是..."的评价——这种话通常意味着"但是他们不能交付"