Often dependencies – also occasionally called blockers, impediments, issues and risks – are the cause of missing both delivery targets and expected customer value.
The broader the team formation – meaning it can cover on its own all the work needed to deliver customer value – the less likely it will incur dependencies. However, teams often work on separate portions of customer value, leading them to be impacted by dependencies. This is because a certain customer value will need contribution of multiple teams leading to cross-team dependencies and integration issues. Adding to this dependencies on external groups.
How to proceed
Acknowledging the reality is the first step to improve. Most problems happen because we claim the teams are true product teams while they are not. In such setup, teams are work streams producing unfinished outputs. They lack the autonomy required to create customer value on their own.
Be transparent about the backlog, by putting the backlog item representing customer value at the level of collection of teams (overall product). Given the component nature of the teams, they can only produce a portion of the customer value or even just activities. The backlog items of each team are not customer value, rather they are activities aligned to a customer value residing at the overall level.
Acknowledge the Waterfall development process, because the work created by various teams represent just portions of customer value. This work needs to be tested at the team level, integrated with other teams, integration testing and more activities that are part and parcel of Waterfall.
Be realistic about which framework to use in this set-up. Unpopularity of Agile often happens when we try imposing Agile frameworks on a Waterfall setup. This creates non-value add process ceremonies/coordination that do not alleviate the real pain points of teams as well as those of the overall product group.
Given the above complexities, we could start by adopting Scientific Thinking at the team-level and across teams. There are many parameters entangled together that contribute to complexities that cannot be enumerated. We just can do one step at a time, learn from it, and use this learning to decide the next step.