team-topologies
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseTeam Topologies
Team Topologies
A team-first approach to organization design from Matthew Skelton and Manuel Pais's Team Topologies: four fundamental team types, three interaction modes, and deliberate attention to Conway's law and team cognitive load. Use it to structure engineering organizations for fast flow of change — and to keep evolving them as the system, technology, and market shift.
这是Matthew Skelton和Manuel Pais在《Team Topologies》中提出的以团队为核心的组织设计方法:包含四种基础团队类型、三种交互模式,并刻意关注Conway's law与团队认知负载。可用于构建工程组织以实现变更的快速流转,并随着系统、技术与市场的变化持续演进组织架构。
Core Principle
核心原则
The team is the unit of delivery, and organizations ship their communication structure. Conway's law guarantees that system architecture mirrors how teams actually communicate, so team boundaries and interactions must be designed as deliberately as the software itself. Size each team's responsibilities to its cognitive load, align most teams to streams of business change, declare how teams interact, and treat the resulting topology as a living architecture decision that optimizes for fast flow.
团队是交付的基本单元,组织的沟通结构决定了交付成果。 Conway's law 确保系统架构会映射团队实际的沟通方式,因此团队边界与交互必须像软件本身一样经过精心设计。根据团队的认知负载来确定其职责范围,让大多数团队与业务变更流对齐,明确团队间的交互方式,并将最终形成的团队拓扑视为一种动态的架构决策,以优化快速流转效率。
Scoring
评分标准
Goal: 10/10. Rate org and team designs 0-10 against the principles below. Report the current score and the specific changes needed to reach 10/10.
- 9-10: Stream-aligned teams own end-to-end slices sized to cognitive load; platform, enabling, and complicated-subsystem teams exist only to reduce that load; interaction modes are explicit and evolve deliberately
- 7-8: Mostly stream-aligned with a real platform, but some shared ownership, undeclared interaction modes, or one overloaded team
- 5-6: Team types named but boundaries cut by technology layer; collaboration unbounded; platform adoption mandated
- 3-4: Component teams everywhere; ticket-driven shared services; every change crosses several teams
- 0-2: Org ignores Conway's law: project-based staffing churn, "everyone talks to everyone", no notion of cognitive load
目标:10/10。 根据以下原则对组织与团队设计进行0-10分的评分,报告当前得分以及达到10分所需的具体调整。
- 9-10分: Stream-aligned团队负责端到端的业务切片,规模匹配认知负载;Platform、Enabling和Complicated-subsystem团队仅为减轻上述团队的负载而存在;交互模式明确且会刻意演进
- 7-8分: 大部分为Stream-aligned团队,拥有真实的平台,但存在部分共享所有权、未明确的交互模式或负载过重的团队
- 5-6分: 已定义团队类型,但边界按技术层划分;协作无限制;平台采用为强制要求
- 3-4分: 全为Component团队;基于工单驱动的共享服务;每项变更都需跨多个团队
- 0-2分: 组织无视Conway's law:基于项目的人员配置频繁变动、“所有人都互相沟通”、无认知负载概念
Framework
框架
1. Conway's Law and the Inverse Conway Maneuver
1. Conway's Law与逆康威法则
Core concept: "Any organization that designs a system will produce a design whose structure is a copy of the organization's communication structure" (Mel Conway). Org communication and system architecture are homomorphic — they mirror each other by force, not by metaphor. The inverse Conway maneuver exploits this: decide the architecture you want, then shape teams and their communication paths so that architecture becomes the natural outcome.
Why it works: Teams can only build interfaces they can coordinate, so the space of designs an org can discover is constrained by its communication paths. Reshaping the org reshapes the system; fighting Conway's law instead produces permanent friction and architecture erosion.
Key insights:
- Interfaces emerge where teams communicate; seams emerge where they don't — the system records your org's conversations
- The actual communication structure (chat, code review, meeting invites) drives architecture, not the org chart
- "Everyone talks to everyone" produces tangled systems: unconstrained communication means unconstrained coupling
- A well-designed org needs less inter-team communication, not more — broad cross-team chatter signals wrong boundaries, not healthy collaboration
- Anyone who shapes teams, reporting lines, or hiring is making architecture decisions — architects must co-design the org, and reorgs need architectural review
- When the target architecture and the team structure conflict, the team structure wins
Applications:
| Context | Application | Example |
|---|---|---|
| Target architecture | Shape teams first; expect the architecture to follow | Want decoupled services → small decoupled teams with independent deploys |
| Reorg proposal | Review it as an architecture change | Tech lead/architect signs off on a team merge, not only HR |
| Tangled system | Map actual communication, not the org chart | Chat and review graph reveals hidden coupling between "independent" teams |
核心概念: “任何设计系统的组织,所产出的设计结构都会复制该组织的沟通结构”(Mel Conway)。组织沟通与系统架构是同构的——它们会强制彼此镜像,而非仅为隐喻。逆康威法则利用这一点:先确定想要的架构,再塑造团队及其沟通路径,使该架构成为自然结果。
为何有效: 团队只能构建他们能够协调的接口,因此组织可探索的设计空间受其沟通路径限制。重塑组织会重塑系统;反之,违背Conway's law会产生持续的摩擦与架构侵蚀。
关键见解:
- 接口在团队沟通处产生;分割线在团队不沟通处产生——系统会记录组织的沟通轨迹
- 驱动架构的是实际沟通结构(聊天、代码评审、会议邀请),而非组织架构图
- “所有人都互相沟通”会产生混乱的系统:无约束的沟通意味着无约束的耦合
- 设计良好的组织需要更少的跨团队沟通,而非更多——广泛的跨团队交流信号表明边界设置错误,而非健康协作
- 任何塑造团队、汇报线或招聘的人都是在做架构决策——架构师必须参与组织设计,重组需经过架构评审
- 当目标架构与团队结构冲突时,团队结构会胜出
应用场景:
| 场景 | 应用方式 | 示例 |
|---|---|---|
| 目标架构 | 先塑造团队,再让架构自然跟进 | 想要解耦服务 → 组建小型、解耦且可独立部署的团队 |
| 重组提案 | 将其视为架构变更进行审核 | 技术负责人/架构师需签署团队合并方案,而非仅由HR审批 |
| 系统混乱 | 梳理实际沟通路径,而非依赖组织架构图 | 聊天记录与代码评审图谱揭示“独立”团队间隐藏的耦合关系 |
2. The Four Fundamental Team Types
2. 四种基础团队类型
Core concept: Reduce every team to one of four types. Stream-aligned teams own a flow of business change end to end — the primary type, and most teams. Enabling teams grow capabilities in stream-aligned teams and then move on. Complicated-subsystem teams encapsulate deep specialist knowledge (an ML model, a codec, a pricing engine). Platform teams provide a compelling internal product that reduces stream-aligned teams' cognitive load.
Why it works: Ambiguous charters ("the API team", "the DevOps team") accumulate work that belongs nowhere and interact unpredictably. Four well-defined types make gaps and overlaps visible, give every team a clear purpose relative to the flow of change, and make the rest of the org's expectations legible.
Key insights:
- Stream-aligned is the default; the other three types are justified only by the load they remove from streams
- An enabling team that never disengages has become a dependency — measure it by capabilities transferred, not tickets closed
- Complicated-subsystem teams are justified by genuine specialism, never by managerial convenience — most orgs need zero or one
- A platform exists to remove load from streams: if adopting it is harder than self-hosting, it is a liability, not a platform
- Anti-patterns: shared-services teams become ticket-queue bottlenecks; a "DevOps team" between dev and ops adds a third silo; component teams everywhere mean every feature crosses many teams
Applications:
| Context | Application | Example |
|---|---|---|
| Ambiguous team charter | Force a choice among the four types | "Core services team" → platform with internal customers and SLAs |
| Deep specialist capability | Complicated-subsystem behind a simple interface | Recommendation-engine team exposes a scoring API to streams |
| New practice rollout | Enabling team, time-boxed | Test-automation specialists coach each stream for 8 weeks, then exit |
See: references/team-types.md
核心概念: 将所有团队归为四种类型之一。Stream-aligned团队负责端到端的业务变更流——这是主要类型,大多数团队属于此类。Enabling团队帮助Stream-aligned团队提升能力后便退出。Complicated-subsystem团队封装深度专业知识(如ML模型、编解码器、定价引擎)。Platform团队提供有吸引力的内部产品,以减轻Stream-aligned团队的认知负载。
为何有效: 模糊的职责(如“API团队”、“DevOps团队”)会累积无归属的工作,且交互不可预测。四种明确定义的类型可使缺口与重叠清晰可见,让每个团队相对于变更流都有明确的目标,并让组织其他成员的期望清晰可辨。
关键见解:
- Stream-aligned是默认类型;其他三种类型的存在仅以减轻Stream团队的负载为理由
- 从未脱离的Enabling团队会成为依赖项——衡量其价值的标准是转移的能力,而非关闭的工单数量
- Complicated-subsystem团队的存在理由是真正的专业性,而非管理便利——大多数组织需要0个或1个这类团队
- 平台的存在是为了减轻Stream团队的负载:如果采用平台比自行部署更难,那它就是负担而非平台
- 反模式:共享服务团队成为工单队列瓶颈;Dev和Ops之间的“DevOps团队”增加了第三个孤岛;全为Component团队意味着每个功能都需跨多个团队
应用场景:
| 场景 | 应用方式 | 示例 |
|---|---|---|
| 模糊的团队职责 | 强制从四种类型中选择 | “核心服务团队” → 转型为拥有内部客户与SLA的Platform团队 |
| 深度专业能力 | 将Complicated-subsystem封装在简单接口后 | 推荐引擎团队向Stream团队暴露评分API |
| 新实践推广 | 组建限时的Enabling团队 | 测试自动化专家为每个Stream团队提供8周指导后退出 |
参阅:references/team-types.md
3. The Three Interaction Modes
3. 三种交互模式
Core concept: Teams interact in exactly three modes: collaboration (two teams work closely together for discovery), X-as-a-Service (one team consumes something another provides over a clear interface), and facilitating (one team helps another learn or improve). For every pair of interacting teams, choose one mode and declare it explicitly.
Why it works: Most organizational pain is an undefined interaction: a team expecting a service gets dragged into joint design; a team expecting coaching gets a ticket queue. Declared modes set mutual expectations, bound coordination cost, and turn interpersonal friction into a usable design signal.
Key insights:
- Collaboration is for discovery and is expensive — it blurs boundaries and raises both teams' cognitive load; time-box it, and limit each team to one collaboration at a time
- X-as-a-Service trades discovery speed for predictability — right for established interfaces, wrong while the boundary is still unknown
- Modes should evolve deliberately: collaborate to discover an interface, then shift to X-as-a-Service as it stabilizes
- Persistent friction is organizational sensing data: awkward collaboration suggests a wrong boundary; a clunky service suggests the platform needs product work
- A temporary, declared switch back to collaboration is the standard way to adopt a major new platform capability
Applications:
| Context | Application | Example |
|---|---|---|
| New platform capability | Collaborate first, then X-as-a-Service | Stream and platform pair on a logging API for 6 weeks, then consume it |
| Two teams in endless meetings | Declare the intended mode | Agree it is a service relationship → cut standing syncs, publish the API |
| Capability gap in a stream | Facilitating engagement | Enabling team pairs on observability practices, exits within a quarter |
See: references/interaction-modes.md
核心概念: 团队间仅存在三种交互模式:协作(两个团队紧密合作进行探索)、X-as-a-Service(一个团队通过清晰接口使用另一个团队提供的服务)、赋能(一个团队帮助另一个团队学习或提升)。对于每一对交互的团队,需明确选择并声明一种模式。
为何有效: 大多数组织痛点源于未定义的交互:期望获得服务的团队被拖入联合设计;期望获得指导的团队面对的是工单队列。明确的模式可设定共同期望,限制协调成本,并将人际摩擦转化为可用的设计信号。
关键见解:
- 协作用于探索,成本高昂——它会模糊边界并增加双方团队的认知负载;需设定时间限制,且每个团队一次只能参与一项协作
- X-as-a-Service以探索速度换取可预测性——适用于已确立的接口,不适用于边界仍不明确的情况
- 模式应刻意演进:先协作探索接口,待稳定后转为X-as-a-Service模式
- 持续的摩擦是组织的感知数据:尴尬的协作表明边界错误;笨拙的服务表明平台需要产品层面的优化
- 临时明确切换回协作模式是采用平台新核心能力的标准方式
应用场景:
| 场景 | 应用方式 | 示例 |
|---|---|---|
| 平台新能力 | 先协作,再转为X-as-a-Service | Stream团队与Platform团队花6周时间合作开发日志API,之后转为使用该API |
| 两个团队陷入无休止的会议 | 明确预期的交互模式 | 约定为服务关系 → 取消固定同步会议,发布API |
| Stream团队存在能力缺口 | 采用赋能式互动 | Enabling团队协助构建可观测性实践,一个季度内退出 |
参阅:references/interaction-modes.md
4. Team Cognitive Load and Team-Sized Software
4. 团队认知负载与团队规模适配的软件
Core concept: Match responsibilities to the team's cognitive capacity. Three load types apply to teams: intrinsic (the skills and technology the work inherently demands), extraneous (delivery mechanics: tooling, environments, process), and germane (the value-adding domain thinking). Minimize extraneous load, account for intrinsic load, and protect capacity for germane load — and size software to the team, never the reverse.
Why it works: When load exceeds capacity, teams thrash: context-switching, shallow ownership, defensive planning, rising lead times, on-call dread. Limiting domains per team keeps ownership deep enough for mastery, and long-lived teams amortize the months it takes a group to gel.
Key insights:
- Measure domains, not headcount: one complicated domain per team, never two; a team can hold two or three simple domains; never split one complicated domain across teams
- Bigger teams are not the fix for overload — fewer domains are; if the software exceeds team size, split the software
- A team API makes the team consumable: code, docs, on-call, chat channels, and working agreements that let others interact without meetings
- Long-lived teams beat project staffing — disbanding a gelled team discards months of trust, then pays the gelling cost again
- Respect Dunbar-sized groupings: ~5-9 people per team, then natural limits near 15, 50, and 150 for groupings of teams
- Extraneous load is the cheapest to remove: paved roads, templates, and platform services buy back germane capacity without a reorg
Applications:
| Context | Application | Example |
|---|---|---|
| Team reports thrash | Count and classify its domains | 1 complicated + 3 simple domains → shed two simple ones |
| Slow cross-team onboarding | Publish team APIs | Each team lists owners, docs, on-call, channels, request path |
| Project ends | Keep the team, move the work | Re-point the gelled team at the next stream; never disband by default |
See: references/cognitive-load.md
核心概念: 让职责与团队的认知能力匹配。团队面临三种负载:固有负载(工作本身所需的技能与技术)、外在负载(交付机制:工具、环境、流程)、有效负载(增值的领域思考)。最小化外在负载,考虑固有负载,保护有效负载的能力——并让软件规模适配团队,而非反之。
为何有效: 当负载超过能力时,团队会陷入混乱:上下文切换、浅层次所有权、防御性规划、交付周期延长、值班恐惧。限制每个团队负责的领域数量,可让所有权足够深入以实现精通,且长期存在的团队可分摊团队磨合所需的数月成本。
关键见解:
- 衡量领域数量,而非人数:每个团队负责一个复杂领域,绝不多于一个;团队可负责两到三个简单领域;绝不能将一个复杂领域拆分给多个团队
- 扩大团队规模不是解决负载过重的办法——减少领域数量才是;如果软件规模超出团队承载能力,就拆分软件
- 团队API让团队可被“消费”:代码、文档、值班安排、聊天渠道以及工作协议,让其他团队无需开会即可与之交互
- 长期存在的团队优于基于项目的人员配置——解散磨合良好的团队会浪费数月建立的信任,之后还需再次支付磨合成本
- 遵循邓巴数分组:每个团队约5-9人,团队分组的自然上限约为15、50和150人
- 外在负载最容易消除:标准化流程、模板和平台服务无需重组即可换回有效负载的能力
应用场景:
| 场景 | 应用方式 | 示例 |
|---|---|---|
| 团队报告工作混乱 | 统计并分类其负责的领域 | 1个复杂领域 + 3个简单领域 → 剥离两个简单领域 |
| 跨团队入职缓慢 | 发布团队API | 每个团队列出负责人、文档、值班安排、沟通渠道、请求路径 |
| 项目结束 | 保留团队,转移工作内容 | 将磨合良好的团队转向下一个业务流;默认绝不解散团队 |
参阅:references/cognitive-load.md
5. Fracture Planes: Splitting Software for Team Ownership
5. 拆分边界:为团队所有权拆分软件
Core concept: Split software along natural seams — fracture planes — so each piece can be fully owned by one team. Business domain (a DDD bounded context) is the default plane; the others are regulatory compliance, change cadence, team location/timezone, risk, performance isolation, technology, and user personas.
Why it works: Software larger than one team's cognitive load forces shared ownership, and arbitrary or layer-based splits recreate cross-team coupling. Splitting along seams that change together keeps most changes inside one team — and when service boundaries match team boundaries, Conway's law works for you instead of against you.
Key insights:
- Default to business-domain splits; reach for another plane only with a concrete forcing reason (PCI scope, 10x performance hot spot, clashing change cadences)
- Technology is usually the worst plane — frontend/backend/DBA splits guarantee every feature needs three teams
- Litmus test for any proposed split: could this piece be offered as an independent service or SaaS? If not, the boundary leaks
- "Monolith" is more than code: monolithic databases, coupled release trains, and mandatory org-wide standardization all fight team independence
- Code owned by three teams is owned by no one — give every artifact one owner, extract it to a platform, or run it as inner source with a steward
- Different parts of one system can split along different planes; one plane need not rule the whole system
Applications:
| Context | Application | Example |
|---|---|---|
| Monolith decomposition | Map bounded contexts first | Orders, payments, catalog → three team-owned services |
| Compliance burden everywhere | Split by regulatory scope | PCI flows isolated in one audited service and team |
| Mixed change rates | Split by cadence | Weekly-changing pricing separated from yearly-changing ledger |
See: references/fracture-planes.md
核心概念: 沿着自然的拆分边界(fracture planes)拆分软件,使每个部分可由一个团队完全负责。业务领域(DDD限界上下文)是默认边界;其他边界包括法规合规、变更节奏、团队位置/时区、风险、性能隔离、技术、用户角色。
为何有效: 超出单个团队认知负载的软件会导致共享所有权,任意或基于层级的拆分会重现跨团队耦合。沿着同步变更的边界拆分,可让大多数变更在单个团队内完成——当服务边界与团队边界匹配时,Conway's law会为你所用而非作对。
关键见解:
- 默认按业务领域拆分;只有存在具体强制理由(如PCI范围、10倍性能热点、冲突的变更节奏)时,才选择其他边界
- 技术通常是最差的拆分边界——前端/后端/DBA拆分确保每个功能都需要三个团队协作
- 任何拆分提案的测试标准:该部分能否作为独立服务或SaaS提供?如果不能,边界存在漏洞
- “单体应用”不止指代码:单体数据库、耦合的发布流程、强制的全组织标准化都会阻碍团队独立性
- 由三个团队共同拥有的代码相当于无人拥有——为每个工件指定一个所有者,将其提取到平台,或作为内部源由专人管理
- 同一系统的不同部分可沿不同边界拆分;无需用单一边界统管整个系统
应用场景:
| 场景 | 应用方式 | 示例 |
|---|---|---|
| 单体应用拆分 | 先映射限界上下文 | 订单、支付、商品目录 → 三个由团队分别负责的服务 |
| 合规负担遍布各处 | 按法规范围拆分 | PCI流程隔离在一个经过审计的服务与团队中 |
| 变更速率混合 | 按节奏拆分 | 每周变更的定价模块与每年变更的总账模块分离 |
参阅:references/fracture-planes.md
6. Platform as a Product and Sensing/Evolving
6. 平台即产品与感知演进
Core concept: Run the platform as an internal product whose customers are the stream-aligned teams, starting from the Thinnest Viable Platform — the smallest thing that accelerates streams, which can be a wiki page curating vetted services. Then treat the whole topology as dynamic: use friction, wait times, and on-call signals to sense when team boundaries and interaction modes must change.
Why it works: Mandated platforms with captive users decay into bureaucracy because failure has no feedback channel; optional adoption forces the platform to stay compelling, and product discipline keeps it solving real needs. Orgs that treat topology as a one-time reorg drift back into Conway misalignment as products and markets shift.
Key insights:
- A platform is judged by cognitive load removed, not features shipped — bigger platform is not better platform
- Thinnest Viable Platform discipline: start with curation and docs ("use these services, this way"); build software only where curation stops being enough
- Internal developers are customers: do user research, publish a roadmap and SLAs, track adoption and developer experience like product metrics
- If streams can leave, the platform must compete on value — mandates hide platform failure until it is catastrophic
- Shadow platforms, growing wait times, recurring cross-team friction, and on-call pain are sensing signals that the topology needs to evolve
- No topology is final — revisit team boundaries and interaction modes every few quarters, on signals rather than ceremony
Applications:
| Context | Application | Example |
|---|---|---|
| Forming a platform team | Adopt product practices | Roadmap, internal user research, office hours, versioned APIs with SLAs |
| Platform sprawl | Re-anchor on the TVP | Cut to the six services streams actually use; curate the rest |
| Org feels "off" again | Run a sensing review | Friction log and wait-time data drive one deliberate boundary change |
See: references/case-studies.md
核心概念: 将平台作为内部产品运营,其客户是Stream-aligned团队,从最精简可行平台(Thinnest Viable Platform)起步——即能加速Stream团队工作的最小方案,可能是一个整理了经过验证的服务的维基页面。然后将整个拓扑视为动态结构:利用摩擦、等待时间和值班信号来感知何时需要调整团队边界与交互模式。
为何有效: 强制使用的平台因没有反馈渠道会退化为官僚体系;可选采用会迫使平台保持吸引力,产品纪律使其专注于解决实际需求。将拓扑视为一次性重组的组织,会随着产品与市场的变化重新陷入Conway法则的错位。
关键见解:
- 平台的评判标准是减轻的认知负载,而非交付的功能——平台越大并不意味着越好
- 最精简可行平台原则:从整理与文档开始(“按此方式使用这些服务”);只有当整理不再足够时才构建软件
- 内部开发者是客户:开展用户调研,发布路线图与SLA,像跟踪产品指标一样跟踪采用率与开发者体验
- 如果Stream团队可以选择不使用,平台必须靠价值竞争——强制使用会掩盖平台的失败,直到问题变得灾难性
- 影子平台、等待时间增加、反复出现的跨团队摩擦和值班痛点都是拓扑需要演进的感知信号
- 没有最终的拓扑——每隔几个季度根据信号而非仪式重新审视团队边界与交互模式
应用场景:
| 场景 | 应用方式 | 示例 |
|---|---|---|
| 组建平台团队 | 采用产品实践 | 路线图、内部用户调研、办公时间、带SLA的版本化API |
| 平台扩张失控 | 回归最精简可行平台 | 保留Stream团队实际使用的六项服务;整理其余服务 |
| 组织再次感觉“不对劲” | 开展感知评审 | 摩擦日志与等待时间数据驱动一项明确的边界调整 |
参阅:references/case-studies.md
Common Mistakes
常见错误
| Mistake | Why It Fails | Fix |
|---|---|---|
| Creating a "DevOps team" between dev and ops | Adds a third silo and another handoff queue | Platform team for self-service tooling, or enabling team to grow capability |
| Permanent enabling teams | Capability never transfers; streams stay dependent | Time-box engagements with explicit exit criteria |
| Mandating platform adoption | Captive users hide failure; platform decays into bureaucracy | Keep adoption optional; make the platform compete on value |
| Splitting teams by technology layer | Every feature crosses several teams; handoffs dominate lead time | Split along business-domain fracture planes; stream-aligned ownership |
| Disbanding teams when projects end | Discards gelled trust; re-pays forming-storming cost every time | Long-lived teams; flow work to teams, not people to projects |
| Shared-services team as a ticket queue | Serializes every stream's work through one bottleneck | Convert to platform-as-product (self-service) or enabling team |
| Sizing teams by headcount, not cognitive load | Large teams still thrash when domains are too many or too complex | Count and classify domains; max one complicated domain per team |
| Leaving interaction modes implicit | Mismatched expectations; coordination meetings metastasize | Declare a mode per team pair; review and evolve it deliberately |
| 错误 | 失败原因 | 修复方案 |
|---|---|---|
| 在开发与运维之间创建“DevOps团队” | 增加了第三个孤岛和另一个交接队列 | 组建提供自助工具的Platform团队,或组建提升能力的Enabling团队 |
| 永久存在的Enabling团队 | 能力从未转移;Stream团队始终依赖 | 为参与设定时间限制与明确的退出标准 |
| 强制采用平台 | captive用户掩盖了失败;平台退化为官僚体系 | 保持采用可选;让平台靠价值竞争 |
| 按技术层拆分团队 | 每个功能都需跨多个团队;交接主导交付周期 | 沿业务领域拆分边界;采用Stream-aligned所有权模式 |
| 项目结束时解散团队 | 浪费了磨合建立的信任;每次都要重新支付组建-动荡阶段的成本 | 保留长期团队;将工作分配给团队,而非将人员分配给项目 |
| 共享服务团队作为工单队列 | 每个Stream团队的工作都需通过一个瓶颈串行处理 | 转型为平台即产品(自助服务)或Enabling团队 |
| 按人数而非认知负载确定团队规模 | 即使团队规模大,领域过多或过复杂仍会导致混乱 | 统计并分类领域;每个团队最多负责一个复杂领域 |
| 交互模式不明确 | 期望不匹配;协调会议泛滥 | 为每对依赖团队明确模式;刻意评审与演进 |
Quick Diagnostic
快速诊断
| Question | If No | Action |
|---|---|---|
| Can each stream-aligned team deliver its typical change without handoffs? | Flow is blocked by queues between teams | Realign teams to end-to-end slices of business change |
| Is every team identifiable as one of the four types? | Ambiguous charters accumulate orphaned work | Classify each team; convert or dissolve the misfits |
| Is the interaction mode declared for each pair of dependent teams? | Friction from mismatched expectations | Declare collaboration, X-as-a-Service, or facilitating per pair |
| Is each team's domain count within cognitive-load heuristics? | Thrash, shallow ownership, slow delivery | Reassign domains; max one complicated domain per team |
| Do service and repo boundaries match team boundaries? | Conway misalignment; shared ownership creeps in | Re-split along fracture planes; one owner per artifact |
| Is platform adoption optional and measured by load removed? | Mandate is masking a failing platform | Run the platform as a product; track voluntary adoption and DevEx |
| Are enabling engagements time-boxed with exit criteria? | Permanent dependency replaces learning | Set end dates and capability-transfer goals up front |
| Is there a recurring mechanism to sense and evolve the topology? | Design rots as system and market shift | Quarterly review of friction, wait times, and on-call signals |
| 问题 | 如果答案为否 | 行动 |
|---|---|---|
| 每个Stream-aligned团队能否无需交接即可完成典型变更? | 流程被团队间的队列阻塞 | 将团队重新对齐到端到端的业务变更切片 |
| 每个团队能否归为四种类型之一? | 模糊的职责累积了无归属的工作 | 对每个团队进行分类;改造或解散不符合类型的团队 |
| 每对依赖团队的交互模式是否已明确? | 期望不匹配导致摩擦 | 为每对团队明确协作、X-as-a-Service或赋能模式 |
| 每个团队负责的领域数量是否符合认知负载准则? | 工作混乱、浅层次所有权、交付缓慢 | 重新分配领域;每个团队最多负责一个复杂领域 |
| 服务与代码库边界是否与团队边界匹配? | Conway法则错位;共享所有权悄然出现 | 沿拆分边界重新拆分;每个工件对应一个所有者 |
| 平台采用是否可选,且以减轻的负载为衡量标准? | 强制使用掩盖了平台的失败 | 将平台作为产品运营;跟踪自愿采用率与开发者体验 |
| Enabling团队的参与是否有时间限制与退出标准? | 永久依赖取代了学习 | 提前设定结束日期与能力转移目标 |
| 是否有定期感知与演进拓扑的机制? | 随着系统与市场变化,设计逐渐失效 | 每季度评审摩擦、等待时间与值班信号 |
Further Reading
延伸阅读
- "Team Topologies: Organizing Business and Technology Teams for Fast Flow" by Matthew Skelton & Manuel Pais
- "Accelerate: The Science of Lean Software and DevOps" by Nicole Forsgren, Jez Humble & Gene Kim
- "The Mythical Man-Month: Essays on Software Engineering" by Frederick P. Brooks Jr.
- Matthew Skelton & Manuel Pais所著《Team Topologies: Organizing Business and Technology Teams for Fast Flow》
- Nicole Forsgren, Jez Humble & Gene Kim所著《Accelerate: The Science of Lean Software and DevOps》
- Frederick P. Brooks Jr.所著《The Mythical Man-Month: Essays on Software Engineering》
About the Authors
关于作者
Matthew Skelton is the founder of Conflux, a consultancy for fast flow in software organizations, and co-author of Team Topologies. Manuel Pais is an independent IT organizational consultant and trainer specializing in team interactions and delivery practices. Both focus on team-first organization design that optimizes for fast, sustainable flow of change.
Matthew Skelton是Conflux的创始人,该咨询公司专注于软件组织的快速流转,同时也是《Team Topologies》的合著者。Manuel Pais是独立IT组织顾问与培训师,专注于团队交互与交付实践。两人均致力于以团队为核心的组织设计,优化快速、可持续的变更流转。