ESC
Type to search guides, tutorials, and reference documentation.
Verified by Garnet Grid

Engineering Team Structure: Organizing for Delivery

Choose team structures that optimize for your organization's constraints. Covers team topologies (stream-aligned, platform, enabling), Conway's Law, optimal team size, cross-functional composition, and how to reorganize without destroying productivity.

Team structure is the most powerful and most dangerous lever an engineering leader has. Get it right and teams move fast with minimal coordination overhead. Get it wrong and brilliant engineers spend their days in meetings, waiting on approvals, and working around organizational boundaries instead of building software.

This guide covers the team structures that work, the ones that do not, and how to transition between them without losing 3 months of productivity to a reorg.


Conway’s Law: Your Org Chart Becomes Your Architecture

“Any organization that designs a system will produce a design whose structure is a copy of the organization’s communication structure.” — Melvin Conway, 1967

This is not a guideline. It is a law of nature. If you have a frontend team, a backend team, and a database team, you will get a frontend, a backend, and a database — with communication overhead at every boundary.

Org structure:                   System architecture:

  Frontend Team ──────────────── Frontend App
       │ (API contract)                │
  Backend Team  ──────────────── Backend Service
       │ (schema reviews)              │
  Database Team ──────────────── Database
       │ (ticket queue)                │
  Infrastructure Team ────────── Infrastructure

Result: 4 teams, 3 handoffs, every feature takes 4 sprints

The Inverse Conway Maneuver

Instead of letting your org chart dictate your architecture, design the architecture you want and then organize teams to match:

Desired architecture:            Team structure:

  User Service ──────────────── User Team (full-stack: FE + BE + DB + infra)
  Order Service ─────────────── Order Team (full-stack)
  Payment Service ───────────── Payment Team (full-stack)
  Platform (shared) ─────────── Platform Team (tools + infra)

Result: Each team owns a service end-to-end. Features ship in 1 sprint.

Team Topologies: A Modern Framework

Team TypePurposeSizeExamples
Stream-alignedDeliver business value for a specific domain5-9”Checkout team,” “Growth team,” “Search team”
PlatformProvide internal tools and infrastructure4-8”Developer platform,” “Data platform,” “Infrastructure”
EnablingHelp stream-aligned teams adopt new capabilities2-4”DevOps enablement,” “Security champions,” “ML advisors”
Complicated subsystemOwn technically complex components3-6”ML inference engine,” “Real-time streaming,” “Compiler team”

Stream-Aligned Teams (The Default)

Most teams should be stream-aligned — organized around a business capability or user journey, owning the full stack from UI to database.

Stream-aligned team: Checkout
  ├─ Frontend engineers (2)
  ├─ Backend engineers (2-3)
  ├─ Product manager (1)
  ├─ Designer (0.5-1)
  └─ QA engineer (0.5-1)

Owns:
  ├─ Checkout UI
  ├─ Cart service
  ├─ Payment integration
  ├─ Order service
  └─ Checkout analytics

Can deploy independently: Yes
Needs to coordinate with other teams: Rarely

Platform Teams (Multipliers)

Platform teams exist to make stream-aligned teams faster. They build the tools, infrastructure, and golden paths that every product team uses.

Platform team is doing well when:
  ✅ Product teams can deploy without opening a ticket
  ✅ New services are production-ready in < 30 minutes
  ✅ Infrastructure changes are self-service
  ✅ Product teams rarely need to think about infrastructure

Platform team is failing when:
  ❌ Product teams wait days for infrastructure changes
  ❌ Platform team is a bottleneck
  ❌ Product teams work around platform limitations
  ❌ Platform team builds tools nobody asked for

Optimal Team Size

Team SizeCharacteristicsBest For
2-3Pair/trio, high bandwidth communicationComplex R&D, proof of concepts
5-7Full-stack team, manageable coordinationStream-aligned product teams
8-9Upper limit of effective teamBroad domain ownership
10+Too large for effective communicationSplit into 2 teams

Dunbar’s numbers for engineering:

  • 5-7: “Pizza team” — everyone knows what everyone is working on
  • 15: “Dinner party” — you still have casual hallway conversations
  • 50: “Division” — need explicit communication structures
  • 150: “Tribe” — organizational overhead becomes significant

Rule of thumb: If a team has more than 9 members, split it. If a team’s standup takes more than 15 minutes, it is too large.


Cross-Functional Composition

RoleFull-Time on Team?Why
Software engineersYes (3-6)Core delivery
Product managerYes (1)Owns what to build
DesignerShared or embedded (0.5-1)Design consistency across team
QA engineerShared or embedded (0.5-1)Quality ownership
Data analystShared (0.25-0.5)Measuring outcomes
SRE/DevOpsShared or enabling teamOperational support
SecurityEnabling teamSecurity reviews

Reorganizing Without Destroying Productivity

Every reorg has a productivity dip. The question is how deep and how long.

Productivity during reorg:

100% ───╮
        │          ╭────────── New structure is productive
 80% ───│──────────│
        │          │
 60% ───│────╮     │
        │    │     │
 40% ───│    ╰─────╯

        Day 0     6-12 weeks
        (Reorg    (Recovery)
        announced)

Typical recovery: 6-12 weeks to return to pre-reorg productivity
Best case: 4-6 weeks (clear communication, minimal scope change)
Worst case: 3-6 months (unclear roles, poorly communicated rationale)

Reorg Principles

DoDo Not
Explain the “why” clearly and honestlyReorganize without an articulated problem
Minimize the number of people who change teamsShuffle everyone simultaneously
Keep reporting chains stable if possibleChange managers AND teams AND scope at once
Set a 90-day moratorium on further changesDo another reorg 3 months later
Preserve institutional knowledge (team wikis, runbooks)Assume knowledge transfers automatically

Implementation Checklist

  • Map your current architecture to your team structure (Conway’s Law audit)
  • Identify teams that are blocked waiting on other teams > 2 times/sprint
  • Organize around business domains, not technical layers (stream-aligned default)
  • Target team size of 5-7 engineers (split teams > 9)
  • Ensure every team can deploy independently without tickets to other teams
  • Create platform teams only when > 3 stream-aligned teams need the same infrastructure
  • Staff enabling teams to spread knowledge, not to be permanent gatekeepers
  • Document team charters: mission, ownership, interfaces, on-call responsibility
  • After a reorg: enforce a 90-day stability period (no further changes)
  • Measure team health quarterly: delivery velocity, blockers, satisfaction
Jakub Dimitri Rezayev
Jakub Dimitri Rezayev
Founder & Chief Architect • Garnet Grid Consulting

Jakub holds an M.S. in Customer Intelligence & Analytics and a B.S. in Finance & Computer Science from Pace University. With deep expertise spanning D365 F&O, Azure, Power BI, and AI/ML systems, he architects enterprise solutions that bridge legacy systems and modern technology — and has led multi-million dollar ERP implementations for Fortune 500 supply chains.

View Full Profile →