- ZeroBlockers
- Posts
- The 4 Types of Team Dependencies That Kill Performance (and How to Spot Them)
The 4 Types of Team Dependencies That Kill Performance (and How to Spot Them)
Dependencies remove autonomy, which kills accountability. Once you have handoffs you allow people the wiggle room to throw up their hands and say "I did my job". We need to remove dependencies if we want teams to be accountable for outcomes - and that start with identifying the different types of dependencies that can exist.
While most organisations talk about improving alignment and speed, they rarely diagnose the structural constraints that quietly erode both.
If you want to scale product delivery effectively, you need to spot and break the hidden dependencies between teams. Here are four types that silently undermine autonomy and momentum.
1. Structural Dependencies
These are the most obvious and yet often the hardest to untangle. Structural dependencies are a byproduct of how work is divided and how teams are organised. When one team’s work is inherently tied to another's output or capacity, there is no real autonomy.
When you have two teams that rely on each other to get a product shipped you don’t have two teams, you have one large team.
Some common examples of structural dependencies include:
Component or Platform Dependencies: A team can’t complete their work until another team, usually a backend, infra, or platform team, ships an enabling piece.
Example: A frontend team waits for a backend team to build an API.
Sequencing Dependencies: One team’s work must be completed before another can begin.
Example: A data team must finish pipeline work before the analytics team starts.
Coupled Releases: Multiple teams must coordinate to release a feature end-to-end.
Example: Backend and mobile teams need to release in lockstep.
Shared Resources: Teams rely on shared staging environments, test teams, or deployment pipelines.
Example: A bottlenecked QA team blocks multiple squads.
Why it matters: These dependencies force teams into coordination mode rather than x-as-a-service mode. They dilute accountability and slow down learning loops.
2. Governance & Alignment Dependencies
These are less visible but equally damaging. Governance dependencies arise from decision-making constraints such as teams needing permission, budget, or alignment before moving forward.
Some common examples of governance dependencies include:
Stage Gate Reviews: Initiatives require formal approval at each milestone (e.g., problem definition, business case, solution sign-off).
Example: A team is ready to prototype but blocked until the Investment Committee approves the business case.
Cross-Team OKR Negotiation: Teams are blocked because their goals depend on commitments from others.
Example: The growth team can’t move forward unless the onboarding team adjusts their goals to support the experiment.
Review Boards or Approval Committees: Architecture, security, or legal reviews happen late-stage and block releases.
Example: A release is delayed for 3 weeks waiting for legal approval on data usage wording.
Why it matters: These dependencies disempower teams. The team has no real control over what they build so when features inevitably fail to deliver the expected value they are quick with the “it’s not my fault” response. And they’re not wrong - after all the initiatives were signed off by superiors.
3. Technical Dependencies
Technical dependencies emerge from the architecture, codebase, or tooling choices. These constraints are often invisible until teams attempt to ship changes.
Some common examples of technical dependencies include:
Tightly Coupled Code: Teams share the same monolithic codebase or have poorly defined module boundaries.
Example: A change to one feature affects other unrelated features owned by other teams.
Data Dependencies: Teams lack access to the data they need or are blocked by upstream schema changes.
Example: A personalisation team can't run an experiment without access to real-time user behaviour data.
Tooling Lock-In: Teams are blocked by centralised or fragile CI/CD pipelines.
Example: Only one pipeline exists, maintained by a DevOps team, and it’s overloaded.
Why it matters: Technical entanglement increases coordination cost and creates unintended blast radius for even small changes. It punishes speed and discourages experimentation.
4. Knowledge & Cognitive Dependencies
These are perhaps the most under-appreciated form of dependency. Even when teams have autonomy on paper, they may lack the knowledge, context, or access to act on it.
Some common examples of knowledge dependencies include:
Domain Knowledge Gaps: Teams don’t understand the user, system, or regulatory environment deeply enough to make confident decisions.
Example: A team tasked with improving customer retention lacks insight into customer pain points.
SME Bottlenecks: A single subject-matter expert becomes the gatekeeper for multiple teams.
Example: A privacy specialist needs to review all new features before release.
Centralised Research or Discovery: Teams rely on a central research or analytics team to validate ideas.
Example: Discovery is delayed because researchers are supporting a different initiative.
Why it matters: When knowledge is siloed, teams hesitate to act, defer decisions, or make suboptimal calls. It kills ownership and momentum.
Breaking the Cycle
Dependencies have long been known to kill performance. The problem is that we assume that they are just an unavoidable tax on large organisations with complex products. The usual response is to hire more managers to “manage” the dependencies, where each new layer is added to solve problems created by the previous one. Project managers struggling with cross-team dependencies lead to program managers, who then require portfolio managers for business alignment, while teams losing customer focus necessitate product owners, whose conflicts then demand chief product owners.
The result is slower, and more expensive, delivery thanks to an ever-growing management structure.
The other option is to identify and remove all of the dependencies. I am not advocating for anarchy, I am challenging you to identify alternative ways to achieve the benefits of each management layer in a different way that doesn’t slow down delivery.
The first step is visibility. Audit your team’s workflows and ask:
Where are we blocked or waiting?
Who do we need to talk to before we can act?
What approvals slow us down?
What systems or knowledge are we missing?
Once dependencies are mapped, you can start redesigning team boundaries, replatforming for decoupling, pushing decision-making lower, and investing in capability building.
If you want to skip the hard work of identifying alternative approaches you can look at the case studies of companies who have already done this. Or go one step further and read the recommendations in the ZeroBlockers framework which has distilled all of the insights from these case studies.