Data Team Organization

Quote

“A fast flow of change requires that teams are loosely coupled — each team should be able to deliver value without waiting on other teams.”

Matthew Skelton & Manuel Pais, Team Topologies (2019)

Team Topology Models

Four primary models describe how data engineering capability is distributed across an organization. Each sits on a spectrum between centralization (one team serves all) and distribution (every business unit owns its own).

Model 1: Centralized Data Team

All data engineers, analysts, and scientists sit in a single team — usually called the Data Engineering or Data Platform team — that serves the entire organization.

┌─────────────────────────────────────────────┐
│              Central Data Team              │
│  DE  DE  DE  AE  AE  DA  DA  DS  DS  Arch  │
└──────────────────┬──────────────────────────┘
                   │ serves
     ┌─────────────┼─────────────┐
     ▼             ▼             ▼
  Marketing    Engineering    Finance
  (consumer)   (consumer)    (consumer)

Best for: Early-stage organizations (< 50 analysts), companies where data is primarily analytical (not operational), situations where data standardization is critical.

Model 2: Embedded Model

Data engineers and analysts are embedded within product or business teams. There is no central data team, or only a small platform team providing infrastructure.

┌───────────────┐  ┌───────────────┐  ┌───────────────┐
│  Marketing    │  │  Engineering  │  │   Finance     │
│  Team         │  │  Team         │  │   Team        │
│  DE  DA       │  │  DE  DA       │  │  DE  DA       │
└───────────────┘  └───────────────┘  └───────────────┘
        │                  │                  │
        └──────────────────┼──────────────────┘
                           ▼
              ┌─────────────────────┐
              │  Platform Team      │
              │  (infra only, tiny) │
              └─────────────────────┘

Best for: Organizations where data drives product decisions (not just reporting), fast-moving product teams that can’t wait for a central queue, companies with strong domain ownership culture.

Model 3: Hub-and-Spoke

A central “hub” team owns shared infrastructure and standards. Domain-embedded “spoke” engineers own domain-specific pipelines and work closely with their business teams — but they report to and align with the hub.

                  ┌─────────────────┐
                  │   Hub Team      │
                  │  Platform  Arch │
                  │  Standards CoE  │
                  └────────┬────────┘
           ┌───────────────┼───────────────┐
           ▼               ▼               ▼
     ┌──────────┐    ┌──────────┐    ┌──────────┐
     │Marketing │    │Eng Spoke │    │ Finance  │
     │  Spoke   │    │  DE  DA  │    │  Spoke   │
     │  DE  DA  │    └──────────┘    │  DE  DA  │
     └──────────┘                   └──────────┘

Best for: Mid-to-large organizations that need both speed (spoke autonomy) and consistency (hub standards), companies going through DataOps maturity improvement.

Model 4: Federated / Data Mesh

Fully autonomous domain teams own their entire data lifecycle — ingestion, transformation, quality, and serving — as “data products.” A thin platform team provides enabling infrastructure, not services. Governance is federated through computational policies.

┌──────────────────────────────────────────────────────────┐
│                  Data Platform Team                       │
│    (self-service tooling, storage, compute, policies)    │
└──────────────────────────────────────────────────────────┘
        │                  │                  │
        ▼                  ▼                  ▼
┌───────────────┐  ┌───────────────┐  ┌───────────────┐
│  Domain A     │  │  Domain B     │  │  Domain C     │
│  (owns data   │  │  (owns data   │  │  (owns data   │
│   as product) │  │   as product) │  │   as product) │
│  DE DA DS PM  │  │  DE DA DS PM  │  │  DE DA DS PM  │
└───────────────┘  └───────────────┘  └───────────────┘

Best for: Large organizations (1000+ employees) with strong domain boundaries, companies with multiple business units that have genuinely different data needs, mature data cultures.

See data-mesh-architecture for a deep dive on federated teams.

Topology Comparison Table

DimensionCentralizedEmbeddedHub-and-SpokeFederated
Speed to deliverSlow (queue)FastMedium-FastFast
Consistency / standardsHighLowHighMedium (policy-enforced)
Domain expertiseLowHighMediumHigh
Operational overheadLowHighMediumHigh
Coordination costLowHighMediumVery High
Data duplication riskLowHighMediumMedium
Autonomy for domainsLowHighMediumVery High
Hiring complexitySimpleComplexMediumComplex
Best org sizeSmall–MediumMediumMedium–LargeLarge
DataOps maturity neededLowMediumMediumHigh

Start Centralized, Evolve to Hub-and-Spoke

Most organizations should start centralized and evolve to hub-and-spoke as domain teams prove they can own data quality. Jumping directly to federated without the platform maturity to support it is a common failure mode.


Role Definitions

Data teams are not monolithic. Multiple distinct roles exist, and conflating them leads to wrong expectations, poor hiring, and frustrated engineers.

Core Roles

Data Engineer (DE) Builds and maintains data pipelines, infrastructure, and the systems that move and transform data at scale. Primary focus: reliability, scalability, and correctness of data movement.

  • Typical skills: Python/Scala, SQL, distributed systems, orchestration, cloud data warehouses
  • Outputs: Pipelines, DAGs, ingestion connectors, infrastructure
  • Does not own: business logic, reporting, ML model training

Analytics Engineer (AE) Owns the transformation layer between raw data and analytical consumption. Applies software engineering discipline to SQL-based transformations. The “translator” between data engineers and analysts.

  • Typical skills: Advanced SQL, dbt, data modeling, dimensional modeling, Kimball/Data Vault
  • Outputs: Semantic models, metrics definitions, clean curated datasets
  • Does not own: infrastructure, ML, raw ingestion

Data Analyst (DA) Answers business questions using data. Builds reports and dashboards. Collaborates closely with stakeholders to define questions and interpret answers.

  • Typical skills: SQL, BI tools (Looker, Tableau, Power BI), statistics, communication
  • Outputs: Dashboards, ad-hoc analyses, insights, requirements for new data
  • Does not own: pipeline reliability, model building

Data Scientist (DS) Applies statistical and machine learning methods to solve business problems. Works with analysts on problem framing and with engineers on model deployment.

  • Typical skills: Python, statistics, machine learning, experimentation, feature engineering
  • Outputs: Models, experiments, predictions, recommendations
  • Does not own: production pipelines, BI dashboards

Data Architect Designs the overall data platform architecture: storage patterns, integration patterns, governance frameworks, technology choices. Sets the standards that others implement.

  • Typical skills: System design, deep knowledge of multiple data technologies, vendor evaluation, cost modeling
  • Outputs: Architecture documents, standards, reference implementations
  • Does not own: day-to-day pipeline operations

Data Platform Engineer Builds and maintains the internal developer platform that data engineers use: orchestration, CI/CD, observability tooling, self-service infrastructure. The “platform team” in hub-and-spoke.

  • Typical skills: DevOps, Kubernetes, cloud infrastructure, Python, open-source data tooling
  • Outputs: Developer platform, CI/CD pipelines, observability dashboards, self-service tooling
  • Does not own: domain-specific pipelines or business logic

Data Product Manager (DPM) Owns the roadmap and strategy for data products and the data platform. Prioritizes work, manages stakeholder relationships, and ensures data investments deliver business value.

  • Typical skills: Product management, data literacy, stakeholder management, prioritization
  • Outputs: Roadmaps, product specs, OKRs, stakeholder communication
  • Does not own: technical implementation

Role Comparison Table

DimensionData EngineerAnalytics EngineerData AnalystData ScientistPlatform Engineer
Primary languagePython / ScalaSQLSQLPython / RPython / Go
Primary toolAirflow / SparkdbtLooker / TableauJupyter / MLflowTerraform / K8s
FocusInfrastructureModelingInsightsPredictionDeveloper platform
Key outputPipelinesSemantic modelsDashboardsML modelsPlatform tooling
Closest analogyBackend engineerFull-stack (data)Business analystResearch engineerDevOps / SRE
Typical demandHighVery highVery highHighMedium
Avg. seniority at hireMidMid-SeniorJunior-MidMid-SeniorSenior

Analytics engineer role

The analytics engineer role (coined by dbt Labs around 2019) fills the gap between raw data engineering and business analytics. In organizations without this role, analytics engineers either don’t exist (causing poor model quality) or data engineers do their job (causing context switching and slow delivery).


The T-Shaped Engineer

The T-shaped model describes an engineer with:

  • Broad knowledge across the data engineering landscape (the horizontal bar of the T)
  • Deep expertise in one or two specific areas (the vertical bar of the T)
Broad: SQL  Python  Cloud  Orchestration  BI  ML  Governance  Streaming
         ─────────────────────────────────────────────────────────────
                              │ Deep: dbt + data modeling │
                              │                           │
                              │                           │

For data engineers, common “vertical bars” (deep specializations):

  • Streaming and real-time pipelines (Kafka, Flink)
  • Data modeling and dimensional design
  • Data platform and infrastructure
  • ML infrastructure and feature stores
  • Data governance and catalog management
  • Performance optimization (query tuning, partitioning)

Hire for T-Shape, Train for Breadth

When hiring, prioritize depth in at least one area and genuine curiosity about others. An engineer who is shallow in everything is hard to rely on. An engineer who is deep in one area and curious about others will grow quickly.


Career Progression

Data engineering careers follow a progression from individual contributor execution to increasing scope, influence, and leverage.

Individual Contributor (IC) Track

LevelTitleScopeAutonomyKey Behaviors
1Junior Data EngineerSingle pipeline or taskWorks under guidanceLearns quickly, delivers assigned work, asks good questions
2Data EngineerMultiple pipelines, one domainWorks independentlyOwns work end-to-end, participates in design, mentors interns
3Senior Data EngineerDomain or systemLeads small projectsSets technical direction for domain, unblocks others, improves team process
4Staff Data EngineerCross-domain or platformLeads multi-team effortsDefines standards, solves org-wide problems, drives architectural decisions
5Principal Data EngineerOrganization-wideSets directionDefines long-term technical strategy, external thought leadership, evaluates new technologies

Management Track

LevelTitleTypical Team SizeKey Responsibilities
M1Engineering Manager4–8 engineersDelivery, people development, process, hiring
M2Senior Engineering Manager2–3 teamsCross-team coordination, org design, strategic planning
M3Director of Data EngineeringFull data functionOrganizational strategy, executive partnership, budget
M4VP / Head of DataMulti-functional (DE + DS + DA)Company-level data strategy, executive leadership

IC vs. Management Is Not a Promotion

Moving to management is a career change, not a promotion. Many organizations have parallel IC and management tracks at equal seniority and compensation. A Principal Engineer and an Engineering Manager at the same level should have equal impact — in different directions.

What Changes at Each Level

WhatJuniorSeniorStaffPrincipal
Time horizonDays to weeksWeeks to monthsQuartersYears
Failure domainOwn taskOwn team deliveryCross-team systemOrganization
CommunicationReceive directionGive direction within teamAlign multiple teamsSet organizational direction
Technical breadth neededNarrow (one domain)Medium (one system)Wide (multiple systems)Full stack
Meeting loadLowMediumHighVery High
Code contributionPrimary activityPrimary + reviewSecondary (reviews, spikes)Tertiary (influence > code)

Collaboration Models

Data Team ↔ Business Team Collaboration

The relationship between data teams and their stakeholders defines delivery speed and alignment. Three models exist:

Order-taking model (anti-pattern)

Business teams file tickets. Data team processes them in order received. No prioritization, no context, no partnership. Result: slow delivery, wrong priorities, frustrated stakeholders.

Embedded partnership model

Data engineers and analysts attend business team standups, participate in business planning, and have direct relationships with decision-makers. Work is pulled from a shared prioritized backlog.

Shared OKR model

Data team and business team share outcome-based OKRs. Both teams are accountable for business results, not just data delivery. This is the highest-maturity collaboration model.

Move Toward Shared OKRs

The shift from “data team delivers dashboards” to “data team and marketing team jointly own the activation rate metric” fundamentally changes how work gets prioritized and how impact gets measured.

Internal Data Team Collaboration

Daily standups: 15 minutes. What did I do yesterday? What am I doing today? What’s blocking me? No deep discussions — take them offline.

Sprint planning: Bi-weekly. What work gets pulled from the backlog into this sprint? Does everyone have capacity? Are dependencies clear?

Architecture reviews: For any significant design decision, a structured review with senior engineers before implementation. Documented with decision records (ADRs).

Code review: All code goes through peer review before merging. Review is not optional. Review comments are discussions, not edicts.

Retrospectives: At the end of each sprint or monthly. What went well? What didn’t? What one thing will we change next sprint?


RACI Matrix

RACI defines Responsible (does the work), Accountable (owns the outcome, one person), Consulted (provides input before the decision), and Informed (notified of the outcome).

RACI for Common Data Engineering Activities

Legend

  • R = Responsible (does the work)
  • A = Accountable (owns outcome)
  • C = Consulted
  • I = Informed
ActivityData EngAnalytics EngData AnalystData ScientistPlatform EngData ArchData PMStakeholder
Pipeline deployment to productionR/ACIICIII
Schema change to source tableCRCCIAIC
Data quality incident responseRRCICAII
Quality fix (model logic bug)CR/ACIICII
New data source onboardingRCCICARC
Dashboard publishICR/AIIIIC
Data contract definitionCRCCIACR
Access policy changeCCIIRACC
Analytics engineering model refactorCR/ACIICII
ML model deploymentCCIRCIAI
Data catalog entryCRRCIAII
Infrastructure provisioningCIIIR/ACII
Sprint prioritizationCCCCCCR/AC

One Accountable Owner Per Activity

The most common RACI failure is having multiple “Accountable” owners, which means nobody is truly accountable. If multiple teams share accountability, you need to pick one — and ensure that person has the authority to make decisions.

Fix: Assign Accountability Before Work Begins

During sprint planning or project kick-off, explicitly name a single accountable owner for each activity in the RACI matrix. Record the assignment in writing. If two teams both claim accountability, escalate to a manager to arbitrate — do not leave it unresolved.


On-Call and Incident Management

Data teams need an on-call rotation, just like software engineering teams. Data incidents — silent data errors, broken pipelines, freshness violations — erode stakeholder trust faster than anything else.

On-Call Structure

Primary on-call: One engineer who is the first responder for any data incident during their rotation. Carries the pager. Available to respond within 15 minutes during business hours, 30 minutes outside.

Secondary on-call: Backup if primary is unreachable. Often the previous primary.

Escalation path

Alert fires → Primary on-call → (if no response in 15 min) Secondary → (if no response) Engineering Manager → Director

Incident Severity Levels

SeverityDescriptionExampleResponse TimeWho Is Notified
P0 (Critical)Production data is wrong, stakeholders are making bad decisionsRevenue numbers wrong in finance dashboardImmediate (< 15 min)On-call + Manager + Stakeholders
P1 (High)Data is delayed beyond SLA, widely used pipeline is downDaily sales pipeline 4 hours late< 1 hourOn-call + Manager
P2 (Medium)Partial data issue, workaround existsOne segment missing from cohort analysisNext business dayOn-call
P3 (Low)Minor issue, minimal impactNon-critical report showing stale dataScheduled workTicket

Blameless Postmortem Template

For P0 and P1 incidents, run a blameless postmortem within 48 hours:

  1. Timeline — Exact chronology of what happened, minute by minute
  2. Root cause — The actual systemic cause (not “human error”)
  3. Impact — Who was affected? What decisions were made on bad data?
  4. Detection — How was the incident detected? How long before detection?
  5. Response — What was done to mitigate and resolve?
  6. Action items — Concrete prevention and detection improvements, with owners and due dates
  7. What went well — Even in incidents, something went right

Human error is never root cause

If your postmortem concludes “the engineer made a mistake,” you have not found the root cause. Ask “why was it possible for that mistake to cause this incident?” The root cause is always a process, system, or architectural failure that allowed the human error to propagate.


Building a Data Team from Scratch

If you are the first data hire, or building a data team at an early-stage company, here is a recommended sequencing:

Stage 1: Foundation (Hire 1–3)

First hire: Data Engineer with analytics engineering skills. This person sets up the data warehouse, builds the first ingestion pipelines, and creates the first semantic models in dbt. They own everything.

Second hire: Data Analyst. The engineer is now spending too much time answering ad-hoc questions. The analyst takes over stakeholder-facing work, freeing the engineer to build infrastructure.

Third hire: Another Data Engineer or Analytics Engineer. By now you have real scale requirements and the first engineer is the bottleneck on everything.

Stage 2: Scale (Hire 4–8)

Add specialization: a dedicated analytics engineer, a second data analyst per domain, and a first data platform/infrastructure engineer when the platform starts to be a bottleneck.

Establish practices: code review, CI/CD, on-call rotation, sprint process.

Stage 3: Maturity (8+)

Add: data architects, data scientists, data product managers. Consider moving to hub-and-spoke. Invest heavily in self-service so you can scale analyst capability without linear headcount growth. See self-service-data-platform.

Hiring Anti-Patterns

Anti-PatternWhy It Fails
Hiring a data scientist before data engineeringNo reliable data to train on; DS wastes time on data wrangling
Hiring an analyst before a data engineerAnalyst can’t do anything without pipelines and models
Treating all data roles as interchangeableWrong expectations, wrong tools, burnout
Hiring for current tools, not fundamentalsTools change; fundamentals don’t
Under-leveling to save costSenior engineers don’t do the same work as junior engineers; false economy
Building a team with no senior anchorNo one to set technical direction; technical debt accumulates immediately

Remote and Distributed Data Teams

Most modern data teams are partially or fully distributed. Specific practices help distributed teams succeed:

Async-First Communication

  • Bias toward written documentation over verbal explanation
  • Use recorded video (Loom) for complex explanations that would otherwise be calls
  • Make decisions in writing (GitHub PRs, Confluence, Notion) — not in calls that some people can’t attend
  • Set clear response time expectations (e.g., “Slack messages during working hours, response within 4 hours”)

Overlap Windows

Ensure every pair of engineers has at least 3 hours of daily overlap, even across time zones. This enables real-time unblocking without making someone work outside normal hours.

Documentation Standards for Distributed Teams

Documentation becomes load-bearing for distributed teams in a way it isn’t for co-located teams:

  • Every pipeline must have a README: what it does, why it exists, how to run it, how to debug it
  • Every architectural decision must have an ADR (Architecture Decision Record)
  • On-call runbooks must exist for every alert
  • Onboarding documentation must be self-sufficient — the new hire should be able to get productive without a week of 1:1s

Async Standups

For highly distributed teams (multiple time zones), written async standups (Geekbot, Standuply, or a Slack thread) can replace or supplement synchronous standups. Each engineer posts: Yesterday / Today / Blockers. Blockers get immediate async responses.


Team Metrics

Track these metrics to understand team health and improve continuously:

Delivery Metrics

MetricDescriptionTarget
Deployment frequencyHow often pipelines are deployed to productionWeekly or more frequently
Lead timeTime from requirement to production< 2 weeks for standard work
Sprint velocityStory points completed per sprintStable and predictable (not maximized)
Backlog ageAverage age of items in the backlog< 90 days (older items need re-evaluation)

Quality Metrics

MetricDescriptionTarget
Incident rateP0/P1 incidents per monthDecreasing trend
MTTRMean time to recover from incidents< 1 hour
Change failure rate% of deploys causing incidents< 10%
Test coverage% of models with automated tests> 80%

Team Health Metrics

MetricDescriptionHow to Measure
On-call burdenAverage hours per engineer per month on incidentsIncident tracking system
Stakeholder satisfactionHow satisfied are data consumers?Quarterly NPS survey
Engineer satisfactionAre engineers happy and engaged?Monthly eNPS or retrospective
Unplanned work ratio% of sprint capacity consumed by unplanned workSprint tracking
Attrition rate% of team leaving annuallyHR data

Don't Optimize for Velocity Alone

A team that maximizes story points by cutting corners on testing, documentation, and code review will appear high-performing in the short term and will collapse in the medium term. Velocity is a leading indicator; quality and reliability are the outcomes that matter.

Fix: Track Quality Metrics Alongside Velocity

Balance your sprint dashboard with paired metrics: velocity alongside change failure rate, and story points alongside MTTR. Set a team policy that velocity targets can only be met if quality thresholds (e.g., test coverage > 80%, change failure rate < 10%) are also maintained.