Dependency Management the Agile Way

Nikolay Tsonev

Nikolay Tsonev

Product Marketing Manager

Table of Contents:

When managing knowledge work projects, the word "dependency" is often associated with delay. Honestly, that comes as no surprise because the traditional way of managing dependencies (using Gantt Charts) is not reliable in an environment where requirements frequently change.

Following the same old approach requires project managers to rework their initial plans often. In turn, this causes the existing dependencies to be constantly renegotiated and updated.

When we add multiple projects and cross-team dependencies to the equation, the Gantt chart view becomes extremely cluttered, non-communicative to stakeholders, and hard to maintain.

So what is the way out?

In this article, we will explain what the best Agile approach to managing project or cross-team dependencies is, in our opinion, and show you a practical way of doing it with the help of Kanbanize.

Agile Solution to Managing Dependencies

In Kanban, every organization is seen as a network of interdependent services.

Instead of reorganizing that network to perform better, the idea is to start where you are now and then gradually look for improvements. So, instead of looking for ways to eliminate dependencies to reduce delays, Kanban suggests visualizing them first and then managing the flow between them.

This is done by applying visual links between tasks as well as interconnected Kanban boards. In the next section, we will introduce you to a practical way of doing that within the Kanbanize system.

How to Manage Dependencies with Kanbanize?

In Kanbanize, the process of managing dependencies happens with the help of parent-child and predecessor-successor relationships between Kanban cards. This also includes the application of related Kanban boards when we talk about multiple projects or teams. For internal and external constraints or bottlenecks causing dependencies (ex. emergent necessary input from other teams), you can use visual blockers inside the software.

Managing Dependencies on Team Projects

To set the ground, let's start with a basic scenario where you need to manage dependencies between team projects' tasks. Your first step to doing that would be to set up a Kanban board and visualize projects and tasks that your team is working on.

projects and tasks visualized on a team kanban board

For simplicity, let's imagine that you've just committed to a team project for the last quarter of 2020 ("Project Q4 2020" from the image above), whose completion depends on four individual work items. To visualize this structure, all you have to do is build parent-child relationship links between the project and its building components.

parent child relationship in team project management

Once that's done, let's imagine that to enter the "In progress" area, one of your work items needs input from the completion of another one. This creates a basic finish-to start dependency (an activity needs to finish before another one can start). To deal with that, Kanbanize allows you to visualize the dependency with the help of predecessor-successor links between the two work items.

predecessor and successor dependencies between team tasks

As you can see from the image above, once the link is created, the Kanban cards automatically generate visual signals, indicating the relationship between the two work items. This can be very beneficial to any team project manager as it provides instant visibility into the dependencies between individual tasks.

Managing Cross-Team Dependencies

When dealing with multiple projects across teams, there are often dependencies between them that you need to be aware of. Here, the structure can be a little bit more complicated but the idea of visualization remains the same. You only have to take it one step above - to the portfolio level.

Having said that, your first step to visualizing cross-team dependencies between multiple projects is to create a Portfolio Kanban board within a Management Workspace. This will act as a management hub where you can plan your high-level projects or initiatives without losing track of their execution across teams, including the dependencies between them.

For example, let's imagine that you've linked two team boards to your Portfolio Kanban board and you want to create a finish-to-start dependency between "Project Q4 2020" from the first team and "Project 2021" from the second.

visualizing two teams on a portfolio kanban board

All you have to do in practice is drag the project from the "Team 1" board and link it to the project from the "Team 2" board. In this case, it makes sense to link "Project Q4 2020" as a predecessor to "Project 2021" because the former is expected to start before the latter.

predecessor and successor dependency between teams on two separate projects

As a result, the first project will act as an enabler of the second one. This means that "Team 2" will expect input from "Team 1" before they can start planning the project in more detail and eventually work on it.

Just like the dependencies between team tasks, when the two projects are linked together, you will see visual signs on the Kanban cards indicating that "Project Q4 2020" is a predecessor to "Project 2021".

predecessor and successor cross-team dependency visualized by signs on the two projects

Dependencies between One Common Project

Another case is when both teams have to contribute to one common project. The only difference here is that the teams will be working on the project's components which can be deliverables, Agile epics, or user stories (depending on the acronyms you use in your organization).

The idea, however, still remains the same. Your aim should be to visualize cross-team dependencies between the deliverables and thus enable clear transparency for all concerned parties across the project structure.

successor-successor cross-team dependency on a common project

Managing Constraints with Visual Blockers

In the world of project management, often there are internal and external constraints that form dependencies between teams or individual team members which can contribute to delays. To deal with those in Kanban, you should also visualize them and make sure that the party which you are dependent on, provides their input as soon as possible.

Continuing from the portfolio example above, let's imagine that a project unexpectedly becomes dependent on another team inside the organization. This can happen due to many reasons, such as insufficient details, unavailable resources, need for rework, etc.

Within the Kanbanize system, you can deal with this by visually signaling that a new dependency has just emerged. To do this in practice, you can apply a visual blocker to one of the projects, as seen in the image below.

apply visual blockers for constraints causing dependencies in kanbanize

Once that's done, your next step would be to inform the internal party that their input is necessary for the work to resume. We suggest that you make sure you follow-up with them regularly so the dependency can be resolved quicker.

Use Cases and Benefits of Dependency Visualization

Managing dependencies through visualizing your existing structure with the help of interconnected Kanban boards proves to be extremely beneficial in situations where uncertainty is present. Let's take a look at some of the benefits and scenarios below.

  • Improve Team Collaboration
    The bigger the organization or department, the more cross-team dependencies there will be. Visualizing them doesn't only enable managers to understand structures and workflows but also improves cross-departmental collaboration. Visualization encourages team members to engage in discussions and develop their own service delivery policies.

  • Full Transparency For Stakeholders During Meetings
    Visualizing dependencies in a single management hub enables all relevant stakeholders to better understand the sequence of projects and links between teams. As a result, managers become equipped with a tool to better prioritize projects/initiatives and more quickly adapt to emerging changes or problems.

  • Smoother Agile Transformation
    When embarking on their Agile journey, a lot of companies look to apply new structures and ways of working with the idea to reduce dependencies as much as possible and deliver faster. However, in the core of agility lies adaptation which means that you need to adapt your processes to what works best for your unique environment.

    That's why we suggest that you first unhide optimization potential within your organizational network through visualization before taking any revolutionary actions. Once that's done, you should look for ways to evolve your processes which will eventually lead to a smoother Agile transformation.

Final Words

Managing dependencies is a huge topic and a frequent problem in Agile that I've only scratched the surface of. Regardless of that, the principle remains the same.

You should look to visualize dependencies between teams, team members, tasks, or projects with the help of Kanban boards before making any revolutionary changes in the way you work. Once you have the foundations, then experiment to see what works best for you.

If that means reorganization - reorganize! Just don't rush to do that only because it has worked for somebody else.

Tags

Product Help Topics

Kanban

Lean/Agile

Nikolay Tsonev

Nikolay Tsonev

Product Marketing Manager

Proactive person, passionate about project management, digital transformation, growth hacking and entrepreneurship. Nick is enthusiastic about football, movies and watches.