This article is the first in a series on the topic of dependencies and how to deal with them to achieve successful outcomes when utilizing agile at scale. In this short article I will define what I mean by dependencies and emphasize that shared dependencies are the ones that cause significant problems.
What are Dependencies?
Dependencies make it difficult for organizations to reliably deliver value on the promised date. Organizations adopting agile at scale typically must deal with many dependencies. Although all dependencies are important, it is the coordination of shared dependencies that is the real problem that organizations must address to be successful.
To better understand what I mean by “shared dependencies,” let’s start with my definition of a dependency.
A dependency exists when there is a relationship between two or more activities or resources that requires a level of coordination to achieve desired flow.
Below are some examples of dependencies that would be captured by this definition.
|Our teams are both dependent on the same test environment|
|My team is waiting on Legal to review the dialog box text|
|We need input from stakeholders to fully understand the desired feature|
|Carina is the only person who can do that work and five different teams need her|
|We need to complete Task 4 before we can start Task 5|
|A customer needs to pay before we will ship the product|
|Our team needs a component team to implement a service for us|
As you can see, this definition is broad enough to capture many (possibly all) different types of dependencies. However, I am not interested in all types of dependencies, rather I am interested in the dependencies that cause impactful problems in the companies adopting agile at scale. These are the dependencies where coordination is shared with at least one external entity. And, if coordination fails, the organization will incur significant economic damage due to impacts on the flow of work.
Scope of Coordination
To better appreciate the distinction I am making, assume there are two different scopes of dependency coordination:
- Single-entity coordination – where one entity (e.g., a team) can handle or manage all the dependency coordination within the entity itself without the need to engage any other entity in dependency-coordination activities.
- Shared coordination – where at least two distinct entities must coordinate their efforts to effectively manage a dependency.
In the previous list of examples, I provided the following dependency: “We need to complete Task 4 before we can start Task 5.” This is an example requiring single-entity coordination since our team alone can control the order in which we do the tasks. In other words, the dependency is fully managed within the context of our team.
Now let’s look at another of the example dependencies: “My team needs the Legal team to review text for a dialog box.” In this example, my team shares the coordination activities with the Legal team (an entity external to our team). What is particularly important in this example is that my team may have no influence (control) at all as to when the Legal team will perform the review of our text.
Shared coordination with one or more external entities is typically much more difficult to manage than the internal coordination of a dependency within a single team. In the shared-coordination case, every additional dependency on another entity cuts in half the probability that we will be able to deliver the completed work on the date we promised.
Don’t get me wrong, there can be real and significant (economic) consequences if our team does not properly sequence our work to complete Task 4 in a timely way that enables us to then complete Task 5 when needed.
When companies think about the dependency issues that are killing their ability to do agile at scale, the dependencies requiring single-entity coordination are NOT what is causing their real problems.
At scale it is the dependencies that exist between and among multiple entities that makes coordination difficult. And, if the various entities fail to coordinate their efforts in a way that impedes the fast, flexible, flow of customer-value, the organization will suffer severe economic consequences (e.g., slow time to market, missed opportunities, upset customers, etc.).
Given the large number of dependencies most organizations must deal with, it is important to focus our valuable time on the shared dependencies that require coordination among multiple entities.
The next article in this series deals with the economic consequences of dependencies.
To learn more about how to deal with dependencies at scale, you can attend my upcoming live online instructor-led course Dependencies Are Killing Your Agility: Learn to Fight Back on September 14, 2021.