Cross-Functional Teams and the Reality of Hidden Dependencies
Discover how cross-functional Scrum teams locate and remove hidden dependencies to deliver a usable and valuable Increment in every single Sprint.
Most organizations believe they have cross-functional teams when they actually have multi-disciplinary groups that still depend on outside gatekeepers. The 2020 Scrum Guide states that cross-functional teams have all the skills necessary to create value each Sprint. When a team cannot deliver a Done increment without external help, hidden dependencies quietly stall progress. These dependencies rarely appear on organizational charts, but they reveal themselves the moment work grinds to an unexpected halt.
The illusion of full autonomy
A company often puts a frontend developer, a backend developer, and a tester together, declaring the group cross-functional. Then the second Sprint arrives. The team needs a database schema update, but only a central database administrator team has permission to modify production tables. Next, the team needs security sign-off, but the security committee meets only once a month. The Developers sit idle, waiting for responses on tickets assigned to people who do not share their Sprint Goal.
These handoffs are hidden dependencies. They masquerade as necessary governance or specialized technical functions. Whenever work must leave the boundary of the team to become Done, the team is not cross-functional in practice. It remains an old assembly line bent into the physical shape of a circle.
Where dependencies hide
Hidden dependencies usually cluster around approvals, shared infrastructure, and legacy codebases. They look like minor inconveniences at first, but their compounding cost is severe. In Scrum, the goal of each Sprint is to produce a usable, valuable Increment. Every reliance on an external group turns that commitment into a gamble.
You can detect hidden dependencies by observing where work regularly pauses across the Sprint:
- Waiting for an external architecture review board before starting development work
- Relying on a centralized operations group to provision test environments
- Handing off code to a separate compliance team for security audits
- Needing an external platform team to update an internal service before completing a user feature
Mapping the path to Done
To eliminate hidden dependencies, you must first make them visible. The Definition of Done serves as your primary diagnostic tool. Review every requirement in your Definition of Done with the team. For each item, ask a simple question: can this team complete this step without asking anyone outside the team for permission or manual effort?
If the answer is no, you have found a structural dependency. You have two practical choices. You can bring that skill or permission inside the team, or you can automate the process to remove the gatekeeper entirely. If the team needs to deploy code to verify an Increment, grant them the access and the automated safety checks required to do so directly.
Broadening skills over adding heads
Managers frequently try to fix dependencies by hiring more specialists onto every single team. This expands team size, increases communication overhead, and creates internal handoffs. A cross-functional team does not require ten deep specialists covering ten distinct domains. It requires individuals who are willing to expand their skills into adjacent areas.
When a backend developer learns enough infrastructure scripting to configure a deployment pipeline, an external dependency disappears. When a tester coaches developers on writing robust automated tests, a quality bottleneck vanishes. Cross-functionality is a collective property of the team, not a requirement that every single person knows everything.
Autonomy requires structural redesign
Hidden dependencies are rarely accidental. They represent the residue of departmental silos surviving inside an organization that claims to be agile. If leadership expects the speed and focus that Scrum provides, leaders must dismantle the approval gates that tether teams to external departments.
Give Developers the authority, access, and training needed to deliver a finished Increment from start to finish. When a team truly controls its own destiny, accountability becomes clear, and progress becomes predictable.
