Learning
VOL. XI · NO. 11 · Bonus Models · 01 JAN 1970

康威定律:系统即组织

额外模型 · 01 JAN 1970 · 11 min read · 2,860 words
· · ·

"设计系统的组织,最终会被迫做出与其组织沟通结构一模一样的系统。"换句话说——你的代码架构就是你团队的组织架构图。

**预计时间:**20 分钟读完 + 25 分钟做练习 = 45 分钟。

本课核心论点
康威定律(Conway's Law)是 Melvin Conway 1968 年提出的观察:一个系统的架构会镜像设计它的团队结构。如果你有三个团队分别负责前端、后端、数据,你大概率会得到一个三个子系统组成的架构——即使从技术和业务看,更合理的划分可能是"按业务域"而不是"按技术层"。理解康威定律,意味着你理解:技术架构决策很大程度上是组织设计决策。

一、康威定律的三种应用方式

方式含义典型场景
诊断(反向)看系统的架构 = 你可以反推出组织的沟通结构看到一个系统有 3 个耦合紧密的模块 → 多半有 3 个各自为战的团队
预测(正向)给定团队结构 = 你可以预测系统的架构长什么样前端团队 + 后端团队 → 系统会有一个前后端分离的架构
设计(逆向)先定义你想要的架构 → 再设计与之匹配的团队结构想要微服务架构 → 先按照业务域组建跨职能团队

二、康威定律在科技行业的经典例子

2.1 Amazon 的”两个披萨团队”

Amazon 的组织设计(两个披萨团队——每个团队小到两个披萨够吃)直接催生了 AWS 的微服务架构。每个团队拥有一个服务,独立开发、独立部署、独立运维。这不是巧合——这是”组织设计驱动架构设计”的刻意实践。

2.2 Netflix 的”独立团队 + 混沌工程”

Netflix 的组织结构是”独立产品团队”——每个团队对一部分功能全权负责。对应的系统架构就是松耦合的微服务。混沌工程(Chaos Engineering)是这个组织的自然产物——因为每个团队独立部署,你必须在运行时验证整个系统的健壮性。

2.3 你的项目

如果你们的团队是按”前端组、后端组、测试组、DBA 组”组织的——系统架构大概率是一个前后端分离 + 中心化数据库的单体应用。不是”架构师选的”,而是”组织决定了”。要改变架构,先改变组织。

三、逆康威定律(Conway’s Law in Reverse)

3.1 什么是逆康威

如果你想要的架构是”按业务域划分的微服务”,但你的团队是”按技术层划分的职能组”——你可以通过”虚拟团队”(squad)结构来模拟未来的架构:

  • 组建临时跨职能团队,把前端 + 后端 + 数据的人放进一个队伍里
  • 让他们共同交付一个业务功能
  • 等跨职能协作变成习惯,组织自然就会调整了

3.2 逆康威的约束

逆康威不能硬推。如果组织结构是刚性的(比如 HR 的部门编制锁死),康威定律还是会按照组织图来塑造架构——不管你在技术上怎么做。康威定律描述的是”被迫”的结果——你无法完全通过技术手段绕过组织约束。

芒格怎么说
芒格在谈企业治理时说:"如果你想得到 X,你就要让组织的激励结构指向 X。"这和康威定律完全一致——你想得到"解耦的架构",你就要让团队的沟通结构(激励结构、汇报关系)就是解耦的。否则,你开了多少架构会议都没用。

四、实战案例

4.1 案例 1:一个微服务失败的真实故事

某公司决定转向微服务架构。他们保持了原有的 3 个团队不变:

  • 前端团队 → 做 Web UI
  • 后端团队 → 做 API
  • 数据团队 → 做数据库和 ETL

架构上,每个功能(如”用户管理""交易报告”)需要横跨这 3 个团队。结果是:每个功能的开发都需要三队人开会协调 → 交付周期从 2 周变成 6 周 → 微服务没有带来任何”独立部署”的好处,反而增加了协调成本。

问题不在技术——在组织:他们应该先按业务域重组团队(“用户管理 squad""交易报告 squad”),然后给每个 squad 独立的前端+后端+数据能力。

4.2 案例 2:Oracle 案例——OTP 系统

你们的 OTP 系统有多个功能模块(交易、清算、风控、报告)。康威定律视角:

  • 如果每个模块由独立的团队负责 → 系统架构会自然趋向”模块化、低耦合”
  • 如果所有模块由一个大团队负责 → 系统架构会趋向”单体、高耦合”
  • 如果你希望每个模块独立迭代能力强 → 先确认每个模块有独立的产品/开发/测试角色

4.3 案例 3:康威定律在架构评审中的应用

架构评审会上,技术负责人提出了一个新系统的架构方案。你可以用康威定律做”组织匹配度”检查:

  • “这个架构假设团队 A 和团队 B 需要紧密协作——但他们现在的沟通频率是每两周一次。合理吗?”
  • “这个架构设计了一个共享数据库——但数据团队和业务团队目前是独立管理的,他们能不能就数据库 schema 变化达成一致?”
  • “如果我们要实现这个架构,我们的团队结构需要做什么调整?“

五、测验(11 题)

1

康威定律的核心主张是?

2

如果你看到"一个系统有 3 个耦合紧密的模块"——最可能的原因是?

3

Amazon 的"两个披萨团队"是康威定律的哪种应用?

4

"逆康威定律"指的是?

5

某公司希望实现微服务架构,但组织仍然是前端/后端/数据的职能组——最可能的结果是?

6

康威定律对 PM/BA 最有价值的应用是?

7

一个功能需要 A 团队的前端、B 团队的后端、C 团队的数据才能上线——康威定律预测?

8

架构评审中,"组织匹配度检查"的核心问题是?

9

一个"全栈 squad"(前端+后端+数据在同一个小团队内)——康威定律最多会产出什么架构?

10

康威定律的启示是——如果你想改变系统的架构,第一步应该是?

场景题

R1

R1. 场景:你们公司有"交易组"和"报告组"两个团队。交易组做交易核心,报告组做报表。每次报告组需要一个新字段,都要提需求给交易组,交易组排期通常 2 个 Sprint。康威定律下怎么分析?

R2

R2. 场景:做架构评审——新系统的设计是"5 个微服务 + 事件总线"。你发现公司只有 2 个开发团队。康威定律下你会提出什么问题?

六、答题提示

展开提示

  • Q1-3 康威是”组织架构决定了系统架构”——不是反过来的。
  • Q4-5 逆康威是”用虚拟团队模拟目标架构”——但不能完全绕过刚性组织约束。
  • Q6-7 PM 视角:跨团队协作慢不是因为人懒——是因为组织的接口和系统的接口不匹配。
  • Q8-10 想要改变架构?先考虑改变组织。
  • R1-R2 两个场景的核心:“架构问题往往是组织问题的投影”。

七、本课行动清单

  1. 画一张你当前团队的沟通结构图(谁和谁常沟通,谁和谁几乎不沟通)。
  2. 拿你负责的系统架构图——放在团队沟通结构图旁边对比。你看到了什么映射关系?
  3. 下次架构评审时,加一个”组织匹配度”检查环节。
  4. 如果你希望系统朝着某个方向演进(更模块化/更解耦),想一下需要什么样的组织变化来支持。

八、参考来源

  • ② 经典:Melvin Conway,“How Do Committees Invent?”(1968)——康威定律的原始论文
  • ③ 严肃著作:Eric S. Raymond,《The Cathedral and the Bazaar》——开源社区的组织模式如何塑造了 Linux 的架构
  • ③ 严肃著作:Ruth Malan 和 Dana Bredemeyer——关于”组织架构即系统架构”的后续研究
  • ④ 实用读物:Team Topologies(Matthew Skelton & Manuel Pais)——如何在团队层面设计和调整以实现目标架构

**下一步:**看 Lesson 0012 · 路径依赖