Skip to content

康威定律与团队拓扑 ​

定位:架构方法论深化系列之一。每张架构图的上游都藏着一张组织架构图。这篇整理康威定律与逆康威定律的工程化用法、团队拓扑四型与交互三模式。还有"服务边界必须对齐团队认知负荷"的判断标准。

康威定律到底说了什么 ​

1967 年 Melvin Conway 的原话意译:任何设计系统的组织,产出的架构都等价于该组织的沟通结构。注意"等价"这个词——不是"受影响",是"复制"。

三个推论,每个都能在现实中对号入座:

  • 接口长在沟通路径上:两个团队之间必须沟通,沟通的产物就是接口。三个团队协作的系统必然被切成三块。接口的粒度反映的是团队之间"谈得拢的粒度",不是技术上的最优粒度。
  • 组织沟通不顺畅的地方,架构必然出现一坨"胶水":跨部门交界处的代码质量,永远是全系统最差的。因为没人真正拥有它。
  • 调整组织比调整架构更有效:架构师的杠杆不在图上,在排兵布阵上。想让服务边界清晰,先让团队边界清晰。

组织图到架构图的映射:

组织结构                          产出架构
---------                        ---------
       CEO                             网关
      /   \                             |
  交易团队  风控团队            +--------+--------+
   /   \      |                |                 |
 下单  库存  规则引擎        交易服务           风控服务
 团队  团队   团队          /      \              |
                       下单服务  库存服务      规则引擎服务

团队有几条沟通线,架构就有几条集成线——一一对应,逃不掉。

逆康威定律:用架构反塑组织 ​

既然组织决定架构,那么想要什么架构,就先设计什么样的组织。这是逆向操作,也是团队拓扑这本书的立论基础。

  • 正向(默认发生):组织现状 → 架构复制组织 → 组织的坑变成架构的坑。
  • 逆向(主动干预):目标架构 → 倒推需要哪些团队与沟通路径 → 按此设置组织 → 架构自然长成目标形态。

工程上的检验方法很朴素:画出目标架构图,再画出组织架构图,把两图的"线"对齐。凡是目标架构里两个服务有调用、但两个服务分属两个没有日常沟通机制的团队。这条调用线就是未来的事故点。

团队拓扑:四类团队 ​

不是所有团队都该长一个样。按职责分四型:

团队类型职责典型例子考核要点
流团队(stream-aligned)端到端交付一条业务流,对业务结果负责交易团队、会员团队业务指标 + 流的变更吞吐
平台团队(platform)提供自服务能力,降低流团队的交付摩擦中间件团队、发布平台、IAAS/PAAS流团队的满意度与接入成本
使能团队(enabling)弥补流团队的技能缺口,教会后撤离架构辅导组、DDD 教练组团队"毕业"数量而非长期占有
复杂子系统团队(complicated-subsystem)攻克某个深水区专业问题风控算法引擎、推荐引擎子系统的专业深度与稳定性

四型团队的排布与交互:

                ┌──────────┐
                │ 使能团队  │ ──(促进)──> 流团队A、B:辅导、传授,时间盒之后撤离
                └──────────┘
                     │
   ┌─────────────────┼─────────────────┐
   │                 │                 │
┌──┴───┐   ┌────────┴────────┐   ┌────┴───┐
│流团队A│   │    平台团队      │   │ 流团队B │
│ 交易  │   │ 发布/存储/中间件 │   │  营销   │
└──────┘   └─────────────────┘   └────────┘
   │(协作:共建期)  │(便利:X即服务)   │
   └──────>───────┘<──────────────┘

复杂子系统团队(如风控引擎):对上游流团队按"便利"模式提供能力,
与流团队"协作"打磨的场景要克制,避免边界糊掉。

交互三模式 ​

团队之间的交互方式同样要约定,否则边界会糊:

模式含义适用场景退化形态
协作(collaboration)两团队短期紧密共建新能力探索期、边界还没想清楚长期协作=边界没人负责,糊死
便利(X-as-a-Service)平台做好自服务产品,流团队自助使用能力已成熟、规模化复制变成"提需求排队",平台成为瓶颈
促进(facilitating)使能团队辅导流团队成长技能差距、方法论导入使能变长期外包,团队永不毕业

原则:协作和促进是临时态,便利是稳态。交互模式长期停留在"协作"的两团队,应该考虑合并或重新划界。

认知负荷与服务边界对齐 ​

服务边界的最终约束不是技术,是一个团队能装下多少认知。认知负荷分三类:

类型含义例子设计目标
领域负荷理解业务域本身的复杂度资金清结算规则无法削减,只能选对人
系统负荷理解自己要改的服务/框架团队内的服务与依赖越少越好
协同负荷理解并等待其他团队跨团队联调、排期对齐接近于零

边界的判断标准由此推出:

  • 先切团队,再切服务:一个团队负责的域,必须是一个人能在大脑里装下的域。装不下就再拆团队,而不是拆出五个服务让同一个团队背(那是分布式单体)。
  • 协同负荷是边界划错的信号:一个需求频繁要三个团队一起改。说明真实的业务边界横切了团队边界。要么挪边界,要么合并。
  • 平台团队的度量是"流团队不用找人":接入一个 MQ、发起一次发布。如果必须拉平台团队的人进会议才能推进,平台就还是"人力平台"不是"产品平台"。

反例:按技术分层组织团队 ​

最常见也最贵的组织失误:前端一个团队、服务端一个团队、DBA 一个团队、测试一个团队。表面上"专业分工",实际效果:

按技术分层(每个需求穿 N 层)              按业务流切分(端到端闭环)
────────────────────────                ────────────────────────
   需求: 会员支持手机号登录                 需求: 会员支持手机号登录
        │                                      │
  前端团队排队 3 天                          会员团队(含前后端)
        │                                      │
  服务端团队排队 5 天                        内部排 1 次优先级
        │                                      │
  DBA 团队排队 2 天                         当周上线
        │
  测试团队排队 4 天
        │
  (期间任一环节返工,重新排队)

协调成本为什么会爆炸,可以粗略量化:

  • 交付周期 ≈ Σ 各团队排队时间,而排队时间随并行需求数增长。串行层数从 1 变 4,周期保守变长超过 4 倍。
  • 接口数量随层数组合增长:N 个业务功能 × M 个技术层,每格都是一次对齐会议。按业务切分后,跨团队接口数从 N×M 降到 N。
  • 责任被切散:白屏了找前端,前端说是接口问题,接口说 SQL 慢——每一层局部最优,整体无人负责。

判断组织是否掉进这个坑,看一个指标就够。一次普通业务需求,从立项到上线,需要几个团队审批/排期/联调。大于 2 个,康威定律已经开始向你收税了。

边界划分追问链 ​

划服务边界(也是划团队边界)时,按这条链连问自己:

1. 这个域的业务专家是谁?      -> 不是哪个团队最熟,就不该归哪个团队
2. 一个新人大约多久能装下这个域? -> 超过 3 个月,考虑再拆一层
3. 最常见的变更是横切还是纵切?  -> 横切多个服务的变更,说明边界切反了
4. 两团队现在多久开一次会?     -> 每周都开,要么合并要么重新划界
5. 谁对这条业务流的最终结果负责? -> 答不上来 = 没有流团队 = 会退化成按层组织

与库内其他篇的关系 ​

  • 边界划错后每次变更都在付兼容性税,四层检查见《系统设计如何全方位考虑兼容性问题》。
  • 团队边界与架构决策互相固化,重大划界应落成决策记录,见《技术决策与ADR》。
  • 跨团队协作的接口评审如何不流于形式,见《CR的技巧》的分级评审思路。
  • 服务边界划对是演进的前提,边界+度量如何继续深化,见《演进式架构与适应度函数》。

一句话总结 ​

组织结构是架构的第一因:想要什么架构,就先按目标架构去摆团队。边界对齐认知负荷,交互收敛到"便利"稳态。发现需求跨三个团队才能上线,别改架构,先改组织。

2026-10 新增(架构方法论深化系列)。