Dependencies are common in knowledge work like software development. While Agile teams strive to be self-sufficient and fully cross-functional, external and internal dependencies will still pop up. When dependencies are not properly managed and planned, it often results in delays and rework. In Project Management Institute (2021). Beyond Agility: Flex to the Future. Pulse of the Profession® we learn that only about 55% of projects are completed on time. Without planning and managing dependencies, your team may have lower chances of completing your project on time. You need to manage dependencies properly if you want to meet your deadlines and deliverables completely.
What are dependencies in Agile teams?
Projects are not done in a vacuum. This is true, not only for knowledge work but all projects in general. Dependencies are relationships between tasks and activities. This means one task needs to be done first before the next task can continue. To manage dependencies, you first need to know what these dependencies are and what characterizes them.
There are four types of dependencies that Agile teams experience.
- Mandatory dependencies are dependencies that are required or inherent in the logic of the work to be done. For mandatory dependencies, the predecessor activity needs to be completed before the next activity can start.
- Discretionary dependencies are dependencies that are defined by the choice or preference of the project team. The flow of work isn’t necessarily linear and there is more than one sequence to execute the work.
- External dependencies are dependencies that are outside of the project team’s control. This often happens when there are dependencies to people, processes, or systems that are outside of the project.
- Internal dependencies are dependencies within the project and are within the project team’s control.
Why do we need dependency management?
Dependency management is the process of identifying and organizing dependencies between tasks and activities. This allows teams to properly plan resources and schedule activities appropriately. When teams effectively manage dependencies, they increase predictability and heighten control in their projects.
Here are more reasons why you should manage dependencies:
- Faster cycle times and lead times
- Reduce friction between and within teams
- Improve capacity planning and resource allocation
- Reduce context switching
- Reduce delays and rework by improving work sequence
- Better alignment between project teams and stakeholders
Using a Kanban board to manage dependencies
The first step to manage dependencies is to know where and what these dependencies are. To do this, Agile teams must learn how to visualize them. Doing a dependency map or diagram will help teams visualize dependencies. Agile teams that are doing Kanban can leverage their Kanban board to visualize and map dependencies.
You can use visual indicators in your Kanban cards to signal dependencies between them. An effective way to show and visualize dependencies on a Kanban board is to do parent-child relationships. Linking cards within Kanban Zone boards is one of the most useful features of the tool and allows you to manage dependencies more seamlessly. You can also show the predecessor-successor relationship between cards in Kanban Zone.
By visualizing these dependencies, your team can easily know which tasks need to be done first and how each task affects and relates with each other. This will help you in task planning and resource allocation. It will also help you spot patterns in dependencies and easily identify where you’ll need external help to move your tasks along.
In Kanban Zone, you can link cards across different boards. So if you have multiple teams working on the same project, it’s easier to visualize dependencies between those teams. With dependencies clearly mapped out on your Kanban board, you can do Portfolio Kanban and manage your projects and programs more effectively.
Manage your dependencies with Kanban to improve workflow
While dependency management may seem counterintuitive in Agile, the reality is dependencies are inevitable in projects. No matter how much we strive to keep teams self-sufficient there will be coordination work required from external teams or parties. Some activities must be done first before other activities can start. There are technological dependencies that must be provided so activities can commence. These are just some of the dependencies that you and all teams would face daily. To manage dependencies, we must accept that they are part of any project and realize that we should not be restrained by them.
By visualizing dependencies, mapping them out, and establishing their relationships, we can control how they affect our project outcomes. Dependencies are neither bad nor good. Your project outcomes will boil down to how you manage dependencies. So before your dependencies become the cause of delays and rework in your projects, start dealing with them wisely and use Kanban to improve how you manage dependencies.