🎯 什麼情境該想到我

當你發現「系統架構總是長得像組織圖」、或跨團隊協作成本高到架構改不動時。

⚙️ 怎麼用

「設計系統的組織,其產出的架構會複製該組織的溝通結構。」

  1. 想要某種架構,先設計對應的團隊結構(逆康威):想要獨立的微服務,就要有能獨立負責的小團隊。
  2. 一個服務由一個團隊擁有:邊界對齊團隊,減少跨團隊的協調摩擦。
  3. 團隊之間的介面 = 服務之間的介面:把高頻溝通留在團隊內,團隊間走清楚的契約。
  4. 組織重組時,預期架構也會(該)跟著變。

★ 原始陳述與它真正的含意

“Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations.”
—— Melvin Conway, 1967

白話:系統的架構,會長成你的組織溝通結構的樣子。

為什麼必然如此:

兩個模組要能協作 → 兩群人要能溝通
溝通成本高的兩群人 → ★ 會傾向把介面定義得「簡單、少變動」
溝通成本低的一群人 → ★ 會傾向讓模組之間緊密耦合(因為改起來很方便)

★ 這不是「應該」的規範,是「已經發生」的觀察。
你的架構圖畫什麼不重要;真正決定架構的是「誰跟誰能輕鬆講上話」。

★ 逆康威手法(Inverse Conway Maneuver)

既然組織結構會決定架構,那就「先改組織,讓它長成你要的架構」。

想要:三個獨立部署、鬆耦合的服務
❌ 做法:一個大團隊分工寫三個服務
   → ★ 因為他們天天在一起,介面會越切越細、越耦合,最後還是一坨
✅ 做法:先分成三個「有完整能力、能獨立出貨」的團隊
   → 跨團隊溝通有成本 → 自然會把介面定得粗、穩定、少變動

★ 這是組織設計成為技術決策的少數場合之一,而且它的效果遠大於任何架構規範文件。

★ 「完整能力團隊」的判準

❌ 依技能分(水平切)✅ 依價值流分(垂直切)
前端組、後端組、DBA 組、QA 組★ 每個團隊有前端、後端、資料、測試
★ 一個功能要跨四個組排程★ 一個團隊能從需求到上線自己走完
交接多、等待多交接少
★ 沒人對「結果」負責團隊對結果負責

★ 判準:這個團隊能不能「自己把一個功能送到使用者手上」?
不能 → 它會產生大量的跨團隊協調成本,而那個成本最終會以「耦合的架構」的形式固化下來。

★ 團隊拓撲(Team Topologies)的四種團隊

類型做什麼
★ 串流對齊團隊(stream-aligned)對某條價值流負責,端到端。大多數團隊都該是這種
賦能團隊(enabling)幫其他團隊提升能力,不代做
複雜子系統團隊需要專業知識的部分(推薦演算法、風控引擎)
★ 平台團隊提供自助服務的內部平台,降低其他團隊的認知負荷

★ 平台團隊的關鍵是「自助」:

如果其他團隊要「開單請平台團隊幫忙」,那它不是平台,是瓶頸
——而且這個瓶頸會在架構上表現為「所有服務都依賴某個中心元件」
(見 自助服務平台)。

★ 認知負荷才是團隊規模的真正限制

一個團隊能負責多少東西,取決於它的認知負荷上限,不是人數。

團隊負責的服務越多、技術棧越雜、領域越廣
  → ★ 認知負荷超載 → 品質下降、交付變慢、人員流失

★ 這解釋了「兩個披薩團隊」為什麼有效——不是因為 6–8 人這個數字神奇,
而是因為超過這個規模,溝通路徑()與認知負荷就開始失控
(見 兩個披薩團隊、工具-布魯克斯定律)。

降低認知負荷的手段:縮小團隊負責的領域、提供好的平台與工具、減少團隊需要知道的「別人的細節」(這正是好的邊界在做的事)。

🧪 我實際套用的紀錄

  • 2026-07-15:(待填)

⚠️ 注意 / 什麼時候不適用

  • ★ 逆康威手法的代價很高。改組織會影響人的職涯、歸屬感與士氣。
    不要為了一個架構偏好就重組——要有清楚的業務理由。
  • ★ 改組織不會自動改好架構。既有的程式碼不會因為組織變了就重構——
    它只是讓「往正確方向演進」變得比較容易。 還是要有人去做那個重構。
  • 康威定律是描述性的,不是規範性的。它告訴你「會發生什麼」,不告訴你「該怎麼組織」。
  • ★ 地理與時區也是溝通結構。跨時區的團隊之間,介面自然會變粗——
    這可能是好事(強制解耦),也可能是災難(需要頻繁協調的部分被硬切開)。
  • 遠端工作改變了「溝通成本」的結構,所以也改變了康威定律的作用方式。不要照搬 1967 年的假設。
  • 小團隊不適用。十個人的公司,康威定律說的是「你們會產生一個單體」——而那是對的。

🔗 相關工具