← Back · Tenet

Conway's Law

DATE=2026-07-24

Conway's Law(康威定律)由 Melvin Conway 于 1967 年提出,大意是:

设计系统的组织,其产生的设计等价于组织内的沟通结构。

系统模块边界与接口形态,往往会反映团队划分与沟通路径。

典型表现

  • 四个互不通气的小组开发编译器,往往得到四遍扫描的编译器。
  • 前端 / 后端 / 平台三支队伍若仅在接口评审时协作,系统容易演变成三层大仓加厚适配层。
  • 期望微服务「按业务域切分」,却仍按技术栈分团队时,服务边界常漂移回「前端服务 / 某语言服务 / 数据服务」。

定律本身是观察,不是处方。忽略它时,架构图上的理想边界常在组织摩擦下失效。

反向康威(Inverse Conway Maneuver)

现代实践常主动利用该规律:

  1. 先确定目标架构(服务边界、所有权、交互方式)。
  2. 再按该边界组织团队(或明确平台 / 赋能团队职责)。
  3. 使沟通路径与期望的接口路径一致,降低跨团队协调成本。

Team Topologies 中的 stream-aligned、platform、enabling、complicated-subsystem 等形态,本质上是将组织设计作为架构杠杆

工程对照清单

  • 所有权:服务或模块是否有明确负责团队?「人人可改」通常等于无人负责。
  • 沟通成本:一次需求变更需跨几个团队协商?成本高处,接口往往变胖或变僵。
  • 平台边界:共享平台是自助赋能(清晰 SLA),还是所有功能的必经审批关卡?
  • 单体与分布式:组织仍是单一大团队时,强行拆分微服务,常只是把函数调用换成更昂贵的网络调用。

实践含义

架构评审中可增加一项检查:目标架构所对应的沟通结构是否存在。若团队边界与服务边界错位,应优先调整组织或边界之一,而不是仅叠加临时适配层。技术债有时是组织债的利息。