Teams who are building products or completing projects necessarily rely on each other. Identifying and keeping track of dependencies can be difficult, particularly across multiple teams or external or shared teams. Dependencies management is often something that can be taken for granted as part of a standard operating procedure. In this article, we will look more closely at the process of identifying, troubleshooting and resolving any dependencies that prevent work from being delivered.
A common example is if one piece of working software depends on an external plugin or third party tool. If that plugin fails to operate, then the working software may fail as well. Similarly, large organizations working on multiple pieces of software at once may have habitual or recurring dependencies between different teams in order to operate. This is why agile teams need processes to monitor dependencies so they won’t disrupt development or inhibit flow.
The more complex dependencies become, ironically, the more simple a process you need to manage them at scale. Complexity compounds complexity, so finding an approach whether it is a tool or a framework that works within the context of your teams and your organization is the key to unlocking dependency management in a sustainable way.
Let’s take a closer look at how you may approach managing dependencies within your organization.
Similarly, agile frameworks such as LeSS and SAFe can help with dependencies management in large organizations. Finally, finding ways to visualize the dependencies in an organization is a highly effective way to mitigate the risks of delaying projects.
Now, close your eyes and imagine the rest. Just kidding, read on...as if your agility depends on it. 😂
Types of dependencies in project management
Before we discuss tools and frameworks, let's outline a few different types of dependencies:
- Direct dependency: This common dependency type is one where one project or feature depends on the delivery of another.
- Transitive dependencies: This is where we have an indirect connection between two projects, usually by way of a connecting project. For example, Feature A depends on Feature B, and Feature B depends on Feature C. Therefore, Feature A indirectly depends on Feature C.
- External dependencies: These dependencies can be out of the remit of your team, group of teams or organization. It helps to be aware of them and it is worth identifying them separately as the addressing of these dependencies may be outside of the scope of the team or group level ceremonies.
Let’s dive in now to some frameworks for a blueprint of how to approach this.
Agile frameworks for organizations to improve dependency management
You're probably familiar with the most common agile frameworks for software development — Kanban and Scrum. These frameworks are mostly suited for individual team organizations. But what about frameworks for cross-functional agile teams in a large organization who need help with dependencies management?
LeSS for dependency management
LeSS is a framework that helps multiple Scrum teams who are working together on a single project to scale. Think of LeSS as Scrum at a large enterprise scale — you still have a single product backlog, a product owner, a Scrum master, and software developers. But the key difference is that there are many teams working towards the same goal and the same definition of done (rather than a single team).
One of the most important tasks for the product owner role in the LeSS framework is making sure that dependency information is provided across teams. In LeSS, product backlog refinement (PBR) is an organized event that makes sure dependency risks are consistently identified. PBR allows multiple teams to plan sprints in parallel and to identify if there are any cross-team dependencies that risk project completion.
SAFe approach to managing dependencies
The SAFe (Scaled Agile framework) provides principles and workflow patterns to guide organizations through their dependencies. SAFe promotes transparency and alignment across large organizations so they can be more nimble in meeting their business objectives. Being able to respond to changes quickly can be hindered by size and scale. Dependencies can often tangle work and trip up teams due to the inability to see and appreciate cross-functional team dependencies.
Just as scrum has ceremonies to keep a single agile team aligned, an essential ceremony to keep multiple teams aligned and communicating with each other according to the Scaled Agile Framework (SAFe) is Program Increment / Planning Interval Planning - better known as PI Planning. During PI Planning, teams create their dependencies and through cross-functional collaboration can adjust their plans to manage these dependencies.
Unlike startups, who are small and can typically make organizational changes quickly, large organizations often become too big to make rapid changes. One common cause of this is the inability to manage dependency resolution because dependencies are less visible for cross-functional teams.
Just as Scrum has ceremonies to keep a single agile team aligned, an essential ceremony to keep multiple teams in the Scaled Agile Framework communicating with each other is Program Increment (PI) Planning. It’s a way to keep even the largest organizations nimble.
One key output of PI Planning is the program (dependency) board or ART planning board (SAFe 6.0).
PI Planning for large organizations
PI Planning is a periodic ceremony that happens throughout the year. Teams within an organization gather to compile their thoughts on product features and the product roadmap, and to discover any dependencies that exist between them.
One key feature of PI Planning is an ART planning board (program board). ART planning boards help give Agile Release Trains (ART) — a group of agile teams working together on a common goal — a visual representation of what the teams have planned to complete from their PI Planning.
Visualize your dependencies
Easy Agile Programs for Jira is a complete tool for dependencies management at a program level. By utilizing visualizations and by providing transparency across projects, teams can confidently scale without the risk of unforeseen dependencies and disruptions. It does this by providing three views:
- Program roadmap: an overview of all of the scheduled increments or iterations for a program or group of teams
- Program Board (ART Planning Board): an at-a-glance visualization of all of the teams within a program, including all of their cross-team dependencies
- Team planning board: where teams break down committed features for the upcoming increment, create dependencies with other teams, estimate and schedule their work.
Unlock your organization's common dependencies
Managing dependencies comes first from being able to see what you need to manage and then to be able to focus where is needed. As a highly visual and filterable tool, Easy Agile Programs can support in many ways:
- Highly visual dependencies: The color of the dependency lines reflects their health status. A red dependency represents a conflict, yellow indicates at risk, green signifies a healthy state and black indicates external dependencies outside the current view, such as work in the backlog or in an other Program Increments. The colours support product managers, release train engineers or scrum masters to know where to focus. To avoid bottlenecks, you need to address the red dependencies and the yellow where possible.
- Team alignment to each other and business outcomes: Adding in third level hierarchy issues to capture and communicate higher level business initiative or priorities helps teams to understand the context of the bigger picture and why they are delivering what is scheduled. Making sure that all of your ART or group of teams work is represented and visible on a board that is always up to date helps keep teams aligned.
- Focus mode: Alignment needs to be maintained beyond planning. With a number of filters applicable to the program board to focus on teams, epic or issue status, dependency health or initiative, it is easy to focus the work - and conversations - on what is most important.