How you organize your engineering teams is one of the highest-leverage decisions a growing tech company makes — and one of the least reversible. Get it right and teams ship independently, communication is cheap, and ownership is clear. Get it wrong and you end up with a coordination tax that compounds every quarter: every feature needs four teams, every decision needs three meetings, and no one is quite sure who owns the broken thing in production.
The vocabulary has exploded in recent years. Squads, tribes, guilds, chapters, stream-aligned teams, platform teams, enabling teams — each term comes from a specific model with specific assumptions about how organizations should work. This guide cuts through the terminology to explain what each model actually means, where it works, where it fails, and how to avoid the most common restructuring trap: copying Spotify's org chart without understanding the culture and constraints that made it work for Spotify.
Why Team Structure Is an Architectural Decision
Conway's Law (1967) states that organizations design systems that mirror their own communication structures. If your backend team and your frontend team are separate departments with separate managers and separate roadmaps, your system will develop a strong backend-frontend boundary — regardless of whether that's the right technical design. The split will show up in your APIs, your deployment pipelines, and your incident response.
This cuts both ways. The Inverse Conway Maneuver — deliberately designing your team structure around the architecture you want — is one of the most powerful tools available to engineering leaders. Before you restructure, ask: what system boundaries and ownership model are we trying to create? The team structure should follow that answer, not precede it.
"Any organization that designs a system will produce a design whose structure is a copy of the organization's communication structure." — Melvin Conway, 1967
Team structure also sets the upper bound on cognitive load. Each team can only hold so much context — about the codebase they own, the customers they serve, the systems they depend on. When a team's ownership domain grows too large, delivery slows because engineers spend more time context-switching than building. When it's too narrow, teams spend all their time coordinating with other teams rather than shipping autonomously. Structure is fundamentally a cognitive load management problem.
The Spotify Model: Squads, Tribes, Chapters, and Guilds
The Spotify model emerged from a 2012 blog post by Henrik Kniberg and Anders Ivarsson describing how Spotify organized its engineering teams at the time. It became enormously influential — and enormously misapplied. Understanding it requires understanding what it actually says, what it doesn't say, and how Spotify itself has evolved away from it.
The four units
The autonomy-alignment tension
The core idea the Spotify model tries to solve is the tension between autonomy and alignment. Squads need autonomy to move fast and make local decisions without bottlenecks. But complete autonomy produces incoherence — squads that drift in different technical directions, duplicate each other's work, or solve the same problem five different ways.
Chapters and guilds are the alignment mechanisms. Chapters ensure practice standards (coding standards, security practices, testing requirements) propagate across squads without becoming central mandates. Guilds create informal networks that spread knowledge and surface cross-squad concerns before they become production incidents.
What Spotify didn't publish — and later acknowledged
The 2012 blog post was a snapshot of a specific moment in Spotify's growth, not a prescriptive playbook. Several things worth knowing:
- Squads frequently failed to achieve true autonomy in practice — most features touched multiple squads, requiring significant cross-squad coordination.
- Chapter Leads holding both line management and technical leadership responsibilities created role confusion that many organizations never resolved cleanly.
- Spotify themselves have significantly evolved their structure since 2012 and have explicitly noted that the model shouldn't be copied wholesale.
- The model worked in the context of Spotify's culture, scale (~1,000 engineers at the time of publication), and product domain. The same structure applied to a 40-person startup or a 10,000-person enterprise produces very different results.
Team Topologies: A More Principled Framework
Published in 2019 by Matthew Skelton and Manuel Pais, Team Topologies offers a more rigorous and prescriptive framework than the Spotify model. It defines four fundamental team types and three interaction modes between them — and argues that every engineering organization should be able to describe itself in these terms.
The four team types
The three interaction modes
Team Topologies also defines how teams should interact — and argues that most teams should default to one primary mode, with others used sparingly:
- Collaboration: two teams work closely together on a shared problem for a bounded period. High bandwidth, high cognitive load. Use for discovery and innovation, not ongoing operations.
- X-as-a-Service: one team provides a clearly defined service consumed by another with minimal interaction. Low cognitive load. This is the target steady state for platform teams serving stream-aligned teams.
- Facilitating: an enabling team works with a stream-aligned team to help them acquire a new capability, then steps back. Time-bounded by design.
The power of the framework is in what it discourages: permanent collaboration between teams (a sign that ownership boundaries are wrong), ad-hoc X-as-a-Service relationships with no clear API (a sign that a platform team is needed), and enabling teams that never disengage (a sign they've become a permanent dependency rather than a capability builder).
Functional vs. Feature Teams: The Classic Trade-off
Before either of those models existed, engineering organizations were organized in one of two basic ways — and the choice between them still underlies every more complex structure.
| Dimension | Functional Teams | Feature (Cross-functional) Teams |
|---|---|---|
| Organized by | Skill: Frontend, Backend, QA, DevOps | Outcome: Checkout, Onboarding, Search |
| Strength | Deep specialization, clear skill development paths | End-to-end ownership, fast delivery of user-facing value |
| Weakness | High coordination overhead; every feature needs all teams | Risk of duplicated infrastructure, inconsistent practices |
| Dependency model | Sequential handoffs (design → backend → frontend → QA) | Parallel work within the team, minimal external handoffs |
| Best for | Early-stage teams (<15 engineers), deep technical domains | Product companies shipping user-facing features at scale |
| Scales to | Poorly — coordination cost grows quadratically | Well — adding a new squad adds capacity without adding coordination |
| Conway's Law risk | Architecture mirrors team splits (hard backend/frontend boundaries) | Architecture mirrors product domain (feature-aligned services) |
Most mature engineering organizations land somewhere between these two poles. The dominant pattern: cross-functional squads for product development (feature teams), with functional chapters or communities of practice maintaining skill standards and preventing practice fragmentation across squads. This is essentially what both the Spotify model and Team Topologies recommend at the team level.
Choosing the Right Structure for Your Stage
No single structure is right for every organization. The right structure depends on your scale, your product complexity, the maturity of your engineering practices, and — critically — the organizational culture you're building toward. Here is a practical guide by stage:
| Stage | Engineers | Recommended Structure | Key Signal to Restructure |
|---|---|---|---|
| Seed / early | 1–8 | One flat team. Everyone works on everything. No formal structure needed. | Work regularly blocks because the same two people are needed on every task simultaneously. |
| Series A | 8–20 | Light functional split (backend/frontend/platform) or 2 cross-functional tracks. | Features regularly stall waiting on another team's availability. PRs queue for days. |
| Series B | 20–60 | 2–5 product squads + nascent platform team. Introduce chapters or CoPs for standards. | Squads are unblocked but infrastructure is becoming a drag shared by everyone and owned by no one. |
| Series C+ | 60–200 | Full squad/tribe model or Team Topologies approach. Dedicated platform and enabling teams. | Tribes are forming naturally around product areas anyway. Formalize and give them ownership. |
| Scale | 200+ | Multiple tribes, strong platform org, domain-specific enabling teams. Explicit interaction modes. | Cross-tribe coordination is becoming a full-time job. Need formal governance without creating bureaucracy. |
The best structures create clear ownership boundaries that minimize the coordination tax between teams. This connects directly to how you set goals at the team level. Teams with vague ownership tend to have vague OKRs; teams with clear domain boundaries can set specific, measurable objectives. See our guide on OKRs for engineering teams for how to connect team structure to goal-setting.
Common Mistakes When Restructuring Engineering Teams
Restructuring to solve a culture problem
If your engineering culture is poor — low trust, poor communication, misaligned incentives — restructuring won't fix it. The dysfunction will reproduce in the new structure. Address the culture first, or restructure alongside genuine culture work, not instead of it.
Creating squads without true autonomy
The defining property of a squad is end-to-end ownership — the ability to take a feature from idea to production without external dependencies. If a squad still needs to wait on a central QA team to test their features, a central ops team to deploy, or a central security team to approve, they are not a squad — they are a development silo with extra vocabulary. True squad autonomy requires investing in CI/CD, automated testing, feature flags, and observability before reorganizing around squads.
Building platform teams too early
Platform teams are expensive — they don't ship features, they build infrastructure that enables other teams to ship features faster. At small scale, this trade-off isn't worth it. Below ~30 engineers, shared infrastructure is often better handled by a "platform chapter" (a working group of engineers from across teams who share platform work part-time) than a dedicated platform team. Form a dedicated platform team when the shared infrastructure burden is consuming more than 20–30% of multiple product teams' capacity.
Over-indexing on the model, under-investing in the interfaces
The structure is less important than the interfaces between teams. Clear ownership documentation, internal API contracts, published SLOs, and explicit "team APIs" (how to ask for help, how long to expect for a response, what is and isn't in scope) matter more than which model you've chosen. Teams that have great interfaces work well together regardless of org chart. Teams with poor interfaces create coordination debt regardless of how carefully they've been organized.
Restructuring too frequently
Every restructure carries a significant hidden cost: the 3–6 month performance trough as teams re-form, re-establish trust, learn new domain boundaries, and figure out how to work together. If you restructure annually — or more often — you spend more time in the trough than at peak performance. Restructure deliberately and selectively, and measure the cost honestly. Use DORA metrics to baseline before restructuring and measure recovery after — it takes longer than most people expect.
Principles That Work Across Any Structure
The specific model — Spotify, Team Topologies, functional, or feature — matters less than whether certain foundational properties are present. These work regardless of what you call your teams:
- Clear, written ownership. Every service, codebase, and on-call rotation has a named team. No shared ownership without an explicit decision about who coordinates it.
- Team APIs. Every team publishes: what they own, what they don't own, how to request things from them, and how long to expect. This reduces the coordination overhead that makes inter-team work frustrating.
- Minimal viable process. Each team chooses the process that works for them. Teams doing Scrum or Agile ceremonies should do so because it helps them, not because it's mandated. Standardize outcomes, not methods.
- Explicit cognitive load management. Regularly ask: is any team trying to own too much? Are engineers context-switching across too many systems? Reduce scope before adding people — more engineers on an overstretched team usually makes things worse initially.
- Make structure changes visible. When team ownership changes, announce it broadly, update documentation immediately, and allow 4–6 weeks of dual-ownership transition before cutting over. Silent restructures create confusion that costs far more than the announcement.
Give every squad its own workspace in Projiq
Projiq's org-level workspace gives each squad its own board, backlog, and sprint while letting leadership see across teams in one view. No per-seat pricing — your whole engineering org, one flat price.
Start Free — No Credit Card Required