← All posts 此文章100% AI 生成,请读者放心阅读

编译器判定对错,层级判定合格

张明和李婷在同一天入职,同一家互联网公司,同样刚毕业。

张明做后端开发,李婷做行政专员。三个月试用期结束,两人的遭遇截然不同。

张明在第二周就独立提交了他的第一个功能。代码审查由组里的 senior 工程师在 GitHub 上完成,评论直接、具体:”这里可以用并发优化”“缺少边界情况处理”。没有会议室,没有”再斟酌一下”,没有”让总监看看”。第三周他的代码上线,跑在生产环境,监控系统显示一切正常。他的试用期评估里写着:”已具备独立 deliver 能力。”

李婷的第二周在改一份会议纪要。初稿交给主管,主管圈出三处”措辞需要更正式”。改完再审,总监批注”这个结论是不是下得太早”。第三版递到 VP 秘书那里,回复”领导这周没空,下周再说”。三周后,这份纪要终于定稿,但讨论的事项已经过时。她的试用期评估里写着:”还需要更多时间熟悉公司风格。”

这不是能力差距,不是努力程度差距。这是验证机制的差距。


一段被忽略的历史

今天的扁平化技术团队,走过一段漫长的弯路。

1968 年,NATO 在德国召开了一场后来被载入史册的会议。软件项目频繁延期、预算超支,工业界意识到需要一种”像工程一样严肃”的方法论。这场会议诞生了”软件工程”这个概念,也催生了一套模仿传统工程的管理体系:详细的需求文档、严格的阶段评审、层层签字确认。

瀑布模型在 1970 年被正式提出:需求分析→系统设计→编码实现→测试验证→运维交付,每个阶段完成后才能进入下一个。这套方法在 1970-1990 年代主导了软件行业,组织架构模仿传统制造业:项目经理、系统架构师、模块负责人、程序员,层级分明;需求评审会、设计评审会、代码评审会、上线评审会,会议不断。

Fred Brooks 在 1975 年出版的《人月神话》中记录了这个时代的困境。他提出了那个著名的定律:”给一个延期的软件项目添加人手,只会让它更延期。”沟通成本随人数指数增长,层级虽然提供了控制,但也制造了瓶颈。

转变发生在 2001 年。敏捷宣言发布,17 位软件先驱提出:个体和互动高于流程和工具;工作的软件高于详尽的文档。这不是管理哲学的进化,是工具进化倒逼的组织变革。

Git 在 2005 年诞生,分布式版本控制让异步协作成为可能。GitHub 2008 年上线,把 pull request、代码审查、持续集成整合进一个工作流。验证成本骤降:代码对不对,CI 告诉你;设计好不好,PR review 讨论;功能有没有用,上线数据说话。

验证机制从”人审批”转向”机器+数据”,层级存在的必要性消失了。


可验证性光谱

所有工作都可以放在一条光谱上测量:你的产出,多久、以什么成本、被谁验证对错。

光谱最左端是程序员。写完代码按 Command+B,编译器在 0.3 秒内告诉你对错。提交 PR,CI 流水线跑一遍测试,15 分钟后给出覆盖率报告。有问题,当场打回;没问题,直接合并。整个验证过程不需要任何人”品鉴”、”把关”。

光谱右端是组织里的另一群人。市场部写了一份年度品牌策略。这份东西对不对?没人能在三天内给出答案。也许六个月后市场份额会给出反馈,但那时候负责人可能已经离职。在”对错”揭晓之前,这份策略需要经过主管把关、总监评审、VP 拍板。不是因为这些人比执行者聪明,而是因为在结果揭晓之前,层级本身就是唯一的确定性来源

扁平不是态度,是可验证性的副产品。当工作可以被机器或数据客观判定时,监督层级就变得冗余。Git 的 diff 比任何主管都更清楚地告诉新人”哪里写得不对”;Sentry 的报错日志比任何 mentor 都更精准地指出问题所在。

官僚也不是态度,是模糊性的应急方案。当工作缺乏客观验证标准时,组织必须发明一套替代机制来制造”临时确定性”。这个机制就是层级:每一层级的”同意”,都是在为最终结果的不确定性买保险。五级审批不保证决策正确,但保证如果错了,责任是分散的、流程是合规的。


四种验证机制

把组织的验证机制分层拆解,程序员和非技术工种分别站在不同的组合上。

机器验证是程序员最核心的特权。编译器、自动化测试、CI/CD、监控告警——这些工具以接近零的成本判定对错。代码审查的重点通常不是”对不对”(机器已经验证了),而是”好不好”。这意味着审查者不需要是”上级”——任何有经验的同事都可以审查。在开源社区,一个匿名 contributor 的 PR 可以被任意 maintainer 审查,不需要知道对方的职级。

用户验证解决”功能有没有用”。A/B 测试让”哪个版本更好”由转化率数字决定,不需要开评审会。用户行为数据(DAU、留存率、功能使用频率)构成产品的”体检报告”,PM 直接按数据决策。

专家验证的标准相对明确。代码好不好,行业有共识——可读性、可维护性、性能、安全性,这些维度可以被讨论、被学习、被标准化。

层级验证是前三者都失效时的 fallback。写一份品牌战略,没有编译器告诉你”语法错误”。做一份预算规划,没有 A/B 测试告诉你”哪个版本转化率更高”。这些工作的对错标准是模糊的、延迟的、主观的。每一层级的”同意”,都是在为决策买保险。更重要的是,层级在模糊性工作中扮演了”标准生成器”的角色:这个方向符合领导意图,那个措辞不够谨慎,这个预算超出惯例。

程序员可以依赖 1+2+3,完全绕开 4。非技术工种只能依赖 4。这是扁平与官僚的分界线。


论文之外的现实

同一个 Google,工程师团队和市场团队的结构截然不同。

工程师可以质疑 VP 的技术决策,因为技术对错有客观标准。一个工程师在邮件列表里指出 VP 的方案性能有问题,附上一个 benchmark 数据,VP 要么反驳这个数据,要么接受结论。职级在这里不影响对错。

但涉及市场活动的预算审批、品牌合规、供应商选择,每一步都需要签字。这不是 Google”双标”,是市场活动的产出无法被机器验证,必须通过层级来制造确定性。

把硅谷科技公司和中国大型国企放在一起看,表面是文化差异,实际是业务差异。

某央企的审批链:科员起草→科长审核→处长把关→部长审批→分管领导签字。五级甚至七级。这家企业的核心业务是政策执行、资源调配、关系协调。这些工作的对错标准本身就是模糊的、情境依赖的。在结果揭晓之前(可能三年后才知道一个决策对不对),层级是唯一能提供”临时确定性”的机制。

反过来,如果把这套七级审批搬到 Google 的代码开发流程,会发生什么?编译器已经能在 0.3 秒内判定对错,七级审批是在为已经确定的事实”开会确认”。工程师会崩溃,产品会延期,优秀人才会离开。

合理的组织结构,不是追求”越扁平越好”或”越规范越好”,而是让验证机制与工作性质匹配

工具进步会移动这个边界。数据分析领域已经见证了这种移动:二十年前,分析师的报告需要层层审核;今天,数据 pipeline 的自动化、数据 lineage 的可追溯,让”数据对不对”在很大程度上可以被工具验证。结果是,数据分析团队可以比市场团队更扁平。


怎么选:从三个问题出发

三个问题帮你定位团队该多扁平:

问题一:你的核心产出能被机器在 24 小时内判定对错吗? 如果可以,你有条件扁平。如果不行,你需要层级或其他形式的”人造确定性”。

问题二:如果取消所有中层,你的团队还能运转多久? 中层通常扮演验证(把关质量)和协调(信息传递)两个角色。在技术团队,这些功能已被机器和工具替代。在非技术团队,中层往往同时是验证器和协调器。取消后你会发现决策 paralysis。

问题三:你的”错误”平均多久暴露一次? 程序员每天被编译器纠错,错误暴露周期是分钟级。品牌策略、组织变革、战略投资的错误暴露周期是季度级、年级甚至三年。错误暴露周期越短,越可以激进扁平;越长,层级是你的保护机制。

根据回答,得出四种策略:

  • 高可验证性 + 想更扁平:你已经具备条件。投资工具链,进一步压缩验证成本,然后逐步减少层级。
  • 高可验证性 + 仍多层级:你在浪费资源。重新审视那些”传统上需要审批”的环节。
  • 低可验证性 + 想更扁平:你需要先投资”可验证性工具”。工具到位后,结构才能跟进。
  • 低可验证性 + 仍多层级:你可能是合理的。关注优化层级效率,而非盲目扁平。

组织结构没有 universally 正确的答案。技术团队扁平,非技术团队官僚,这种分野不是偶然,是各自对”验证成本”的理性响应。张明的扁平和李婷的层级,都是组织对工作性质的适应,不是个人能力的评判。

理解这一点,才能做出更好的决策:如果你追求扁平,先投资让工作可验证的工具;如果你不得不面对层级,理解它存在的功能价值,然后优化它。

不要被”硅谷都这么干”或”大公司都这么干”误导。关键是匹配,不是模仿。

Comments

Select any text to comment on a specific part. Existing inline comments appear as small numbered bubbles. Powered by GitHub Discussions.