Team Topologies — Book Summary
Chapter 1: The Problem with Org Charts
Wiki topics:
🥊 · Combat Sports
Team Topologies — Book Summary

Chapter 1: The Problem with Org Charts
- Treat the org chart as a compliance artifact, not a delivery map; draw the real “value creation” network (who must talk to whom to ship).
- Map the end-to-end flow of change (idea → running software) and highlight every handoff; treat each handoff as a candidate to remove.
- Make “team” the atomic unit of delivery; stop designing around interchangeable individuals and instead invest in stable, cohesive teams.
- Actively manage team cognitive load: list the domains/systems/tools each team touches and remove/streamline anything that doesn’t directly support their mission.
- Use delivery bottlenecks as “sociotechnical signals”: if one team becomes the dependency magnet, reduce what they own or create a platform/enabling capability.
- Explicitly design how teams interact (don’t leave it to “we’ll just coordinate”); choose interaction modes on purpose.
- Reduce unnecessary coordination by pushing ownership closer to where the work is; prefer one team owning a coherent slice over many teams sharing a component.
- Don’t confuse “more process/tools” with “better outcomes”; prioritize clarity of ownership, boundaries, and interactions first.
- Use lightweight flow indicators (WIP, lead time, dependency count) to spot overload early — before burnout and quality issues show up.
- Treat people+software as a single sociotechnical system: when outcomes are bad, assume structure/interactions are a root cause, not just “execution.”
Chapter 2: Conway’s Law and Why It Matters
- Draw the system architecture next to the team communication map; assume the architecture will mirror the communication paths unless you intervene.
- Use Reverse Conway intentionally: decide the architecture you want (clear modular boundaries) and then reshape team boundaries/interactions to match.
- Restrict unnecessary communication: if “everyone needs to talk to everyone,” you’ll get a “everyone coupled to everything” system.
- Treat frequent cross-team meetings as a design smell: either the software boundary is wrong or the interface (API/contract) is too weak.
- Design “team-scoped flow”: aim for most changes to happen within one team’s scope (single backlog, single on-call, single release ownership).
- Plan for architecture pushback: changing team boundaries without paying down technical coupling creates friction; budget explicit decoupling work.
- Avoid naive Conway: don’t assume any org structure is “good” because it’s simple — optimize for modularity and flow, not reporting lines.
- Involve technical leadership in org design (not just HR): team shapes are an architectural decision as much as a management one.
- Use platform thinking to reduce “forced communication” (e.g., self-service capabilities instead of bespoke support threads).
- Re-check Conway alignment after major product/tech shifts; treat team topology as a living control surface, not a one-off reorg.
Chapter 3: Team-First Thinking
- Make small, long-lived teams your default; optimize for “team maturity over time,” not short-term resource juggling.
- Keep teams stable and move work to teams (not people to projects); treat constant reshuffling as a top-tier anti-pattern.
- Create and publish a Team API for every team (ownership, interfaces, comms preferences, support model, SLAs, office hours).
- Version your Team API like a product: announce breaking changes (ownership shifts, support hours changes, interface changes).
- Cap cognitive load explicitly: define what the team owns now, what it will not own, and what must be moved/automated if new scope is added.
- Make interactions explicit and lightweight: prefer a well-defined interface over “DM the expert” (which creates hidden queues and hero culture).
- Ensure engineering fundamentals exist (CI/CD, test automation, observability); without them, team autonomy becomes fragility.
- Give teams real autonomy but not isolation: ownership boundaries + clear interaction modes beat “independent but constantly blocked.”
- Tie teams to outcomes: teams owning a stream should feel responsibility for operational and product impact, not just code output.
- When remote/hybrid, double down on explicit Team APIs and interaction agreements to prevent coordination debt.
Chapter 4: Static Team Topologies
- Identify your current “static” topology and name the anti-patterns you see (handoff-heavy functional teams, ticket-based ops gatekeeping, component silos).
- Use DevOps Topologies as a diagnostic: decide what you are today and pick a realistic “next evolution”, not an idealized end state.
- Optimize for flow of change: measure where work waits (queues, approvals, environment access, release coordination) and redesign to remove the wait.
- Stop “adhoc team design”: don’t create new team shapes per initiative; constrain team types and interaction patterns to reduce chaos.
- Replace project teams with stable teams; change missions and backlogs, not membership.
- Track dependencies explicitly (task, knowledge, resource); set thresholds (“if we depend on 5+ teams to ship, we must redesign”).
- Treat operations as input, not output: incident patterns and on-call pain are high-signal indicators that team boundaries/interfaces are wrong.
- Avoid “one central DevOps team” as a permanent answer; evolve toward shared responsibility with platform/enabling support.
- Choose topology based on context (org size, engineering maturity, domain complexity); don’t cargo-cult Spotify-style shapes.
- Make evolution continuous: run small topology experiments, keep what improves flow, discard what adds friction.
Chapter 5: The Four Fundamental Team Topologies
- Make stream-aligned teams the default: each owns an end-to-end flow of customer value (build + run + improve).
- Use enabling teams as capability accelerators: they coach/enable stream teams to adopt practices/tech, then move on (avoid permanent “helpers”).
- Use complicated-subsystem teams only when the work truly needs specialized expertise; their job is to reduce stream team cognitive load by providing a clear interface.
- Build platform teams as product teams: define internal customers, onboarding, UX, docs, reliability, and a roadmap driven by stream-team needs.
- Start platform scope with a Thinnest Viable Platform (TVP): ship the smallest set of APIs/docs/tools that measurably reduces cognitive load and speeds delivery.
- Keep the platform “just big enough”: if it grows faster than adoption/value, prune features and refocus on self-service.
- Avoid team silos: supporting teams exist to help stream teams move faster, not to create alternative handoff-heavy value streams.
- Convert common legacy team types (QA, DevOps, Architecture) into one of the four fundamentals by clarifying what outcome they serve and how they interact.
- Define explicit service boundaries between teams (APIs, SLAs, runbooks, “how to consume” docs) to keep X-as-a-Service low-friction.
- Review team type fit regularly: teams should change type when their purpose changes (e.g., temporary enabling work ends).
Chapter 6: Choose Team-First Boundaries
- Choose boundaries that minimize cognitive load: if a team must understand “everything,” the boundary is wrong — split by a meaningful fracture plane.
- Use fracture planes deliberately (business domain, customer journey, geography, technology stack, risk/compliance, change cadence) to carve ownership.
- Hunt “hidden monoliths” (shared DB, shared release train, shared libraries); treat each as a priority decoupling target because it forces coordination.
- Prefer team-sized architecture: services and repos structured so a single team can change, test, deploy, and operate without cross-team gating.
- When you must share something, share a service with a contract (API + SLOs), not shared mutable internals.
- Use domain thinking (bounded contexts) to ensure team boundaries match real-world business semantics, not org politics.
- Make platform boundaries explicit: “what the platform provides self-serve” vs “what stream teams must own.”
- Keep “ownership” crisp: one team owns a thing; other teams consume it. If two teams co-own, you’ve created a coordination hotspot.
- Use interaction modes as a boundary tool: collaboration for discovery, X-as-a-service for stable consumption, facilitating for capability transfer.
- Validate boundaries with data: if most work still requires multiple teams, either the boundary is wrong or the internal interfaces are too weak.
Chapter 7: Team Interaction Modes
- For every key team dependency, explicitly choose a mode: collaboration, X-as-a-service, or facilitating — don’t leave it implicit.
- Time-box collaboration and define the exit criteria (what must be learned/built so you can switch to a cheaper interaction later).
- Make X-as-a-service the default for mature capabilities: self-service, clear interfaces, strong docs, reliability guarantees, and low coordination overhead.
- Use facilitating for capability uplift: enabling teams coach others, remove impediments, and leave behind artifacts (templates, docs, paved paths).
- Document interaction contracts in the Team API (how to request support, expected response times, escalation path, and preferred channels).
- Watch for misuse signals: constant collaboration = hidden coupling; “service” that requires lots of meetings = not really a service.
- Choose mode based on uncertainty: higher novelty/risk → more collaboration; higher stability → more service mode.
- Model interactions visually to surface bottlenecks and mismatches (who depends on whom, and how).
- Review interaction modes regularly; modes should evolve as products/teams mature (they’re dynamic, not permanent).
- Treat internal platforms like products specifically to make X-as-a-service usable (onboarding, UX, docs, feedback loops).
Chapter 8: Evolve Team Structures with Organizational Sensing
- Build an “org sensing” loop: collect signals from delivery/ops + qualitative feedback, then adjust team boundaries/modes deliberately (not via random reorgs).
- Treat operations as high-fidelity sensory input: incident patterns and support load tell you where ownership/interfaces are failing.
- Quantify cross-team friction: track dependency count, handoffs, escalations, and “meetings per change” to detect when collaboration is too expensive.
- Use temporary collaboration to explore/learn, then shift to X-as-a-service once the interface stabilizes (don’t let discovery mode become permanent).
- Accelerate adoption of new practices with enabling teams, communities of practice, and “paved road” platform improvements.
- Expect multiple topologies to coexist: different streams may need different supporting shapes simultaneously (platform/enabling/complicated-subsystem).
- Define triggers for topology evolution (lead time spikes, rising incident rate, persistent dependency hotspots, cognitive overload) and act early.
- Make evolution safe: change one slice at a time, define success metrics up front, and keep reversibility in mind.
- Periodically re-check platform scope against TVP: if the platform expands without reducing cognitive load or increasing flow, prune and refocus.
Conclusion: The Next-Generation Digital Operating Model
- Use a constrained vocabulary to design orgs: four team types + three interaction modes; avoid inventing bespoke team shapes for every problem.
- Treat team cognitive load as the primary limiting factor; when overloaded, reduce scope, add platform support, or split by a fracture plane.
- Apply Conway strategically: drive architecture by shaping communication and boundaries, then pay down technical coupling to make it real.
- Make Team APIs standard practice across the org so interactions become predictable and discoverable.
- Start small: pick one value stream, form/confirm one stream-aligned team, and remove one major dependency hotspot before scaling.
- Add “just enough platform” to unblock that stream (TVP mindset) rather than building a massive internal platform upfront.
- Use enabling teams to spread capability and reduce bottlenecks; time-box their engagement and measure uplift.
- Make interaction modes explicit and revisitable; evolve modes as uncertainty drops (collaboration → service).
- Install a recurring “org sensing” cadence (quarterly is plenty for many orgs): review flow + ops signals and adjust boundaries/modes accordingly.
- Remember the warning: Team Topologies alone isn’t sufficient — pair it with strong engineering practices and product thinking or it devolves into a reorg fad.
메타데이터
- post_id
- bb4d93f206b1
- slug
- team-topologies-bb4d93f206b1
- url
- https://medium.com/@radupana/team-topologies-bb4d93f206b1
- canonical_url
- https://medium.com/@radupana/team-topologies-bb4d93f206b1
- author_url
- https://medium.com/@radupana
- status
- ok
- fetched_at
- 2026-06-26 03:39:16