Whose dependency is it anyway?

This relationship is ‘complicated’

If you’ve ever worked in an organisation with more than one delivery team, chances are you’ve had to manage a dependency or two at some point in your career.

You’ve also felt the frustration of trying to resolve that dependency, especially when the other team has conflicting priorities. They might have a critical release coming up, a shortfall of capacity, or maybe even completely different success criteria that prevents you from even opening a dialog in the first place.

Let’s explore a few different methods that can be applied to tackle the problem of dependency management, and assess the pros and cons for each.

First, start by analysing your system of dependencies

A view of all dependencies in a Jira instance, grouped together by project (coloured arcs) - App Link


Before we start creating solutions, we must first seek to understand the problems. Here we’ve used the Dependency Mapper for Jira app to visualise all existing dependencies between teams.

Using this information we can not only identify where clusters of dependencies lie, but also which teams share common sets of dependencies. What insights can you derive from the above picture?

It can also help inform a strategy for resolving these issues; could it be better to try and fix the problem ourselves? Do we maybe need to create some kind of contract or agreement to resolve multiple dependencies? The approach depends on what insights you derive from your analysis.

The DIY approach - Resolve the dependency yourself

Unless you have a small handful of dependencies to manage, trying to own and resolve them all may overwhelm your team - App Link


The first instinct a team may have is to both own and resolve the dependency yourself, after all if you’re consuming an asset or service then surely you have the right to contribute to it also right?

Unfortunately despite having good intentions, this approach can be frought with issues including, but not limited to:

The diplomatic approach - Create a contract between teams

If you share multiple dependencies with a team, it may be beneficial to strike a deal with them - App Link


A more tactical approach, especially in scaled organisations, may be to focus on striking up a trusted working relationship with the team/s you have the most dependencies on in order to resolve your issues in a timely manner.

Quite often teams start with this approach in mind, but forget to consider the other side of the equation; by requesting something from the other team, what’s in it for them? If you can find a scenario that ends in a mutual benefit to both teams then this can create further opportunities later in time with regards to cross-skilling and knowledge-sharing.

However, if a mutually scenario can’t be identified not all is lost. In some cases it can be possible to sit down with your dependant teams and create a type of ‘contract’ (similar to a social contract in the Agile world) that lays out the terms and conditions of the services provided by the responding team. This could include:

Re-organise around value streams - The system approach

Aligning work around Value Streams can yield benefits beyond the systemic elimination of dependencies - App Link


Last, and perhaps most difficult but rewarding, is the option of exploring opportunities to re-organise the structure of all teams within the system to deliver a fully realised value stream of work.

Despite the fact that eliminating all cross-team dependencies within a scaled organisation is practically impossible, there are quite often many opportunities to optimise teams away from ‘horizontal’ or ‘component’-owned assets and services and more towards ‘vertical’ end-to-end delivery mechanisms.

Aligning teams towards collaboration and delivery of real customer value can also have effects on workplace culture, enabling discussions around shifting from Key Performance Indicators (KPIs) and towards Objectives and Key Results (OKRs).

Conclusion

In closing, dependency management is a critical skill for any Scrum Master, Product Owner or Project Manager to master. There are various techniques to address dependencies, and depending on the context of your work may yield positive or negative results. Ultimately these conversations should lend themselves towards delivering frequent customer value, not just managing process.

How have you managed your dependencies in your organisation? I’d love to hear more about how your team currently operates! Feel free to contact me to start a discussion!

Want to enhance your agile reporting?

Are you a Jira user? Check out these apps that focus on themes like dependency management, scaled backlog views and WIP management to help your teams navigate and understand their complex environments!