Before we jump into the profound topic of managing project dependencies, let's set the ground for what this article covers and what it doesn't.
First, this article will not educate you on what dependencies in a project are and why they harm your organization. If you're reading this, you're most likely aware of the topic already.
It's quite puzzling why some marketers would write about a complex subject but then waste two pages of text to walk you through the basics. Quite annoying, but not this time. This piece covers real-life, hands-on, practical content about managing dependencies in project management.
Second, we assume that you are aware that you should always strive to remove any dependencies that you can, as, by definition, they harm productivity and efficiency. This article would be valuable if you have run out of options on that front (removing dependencies).
With the context adequately set, let's now dig into the topic.
There are several things you can do to get better at managing project dependencies. We'll take a detailed look at each of the following:
- Use Kanban systems to visualize dependencies in a project.
- Establish clear Service Level Agreements on your software project proposal, for instance, and use flow metrics, such as Cycle Time and Block Time, to control them.
- Define the high-level roadmap of the project and work on the high-risk items earlier.
- Implement feedback loops to help resolve dependencies quickly.
- Extend your Kanban systems across your vendors/subcontractors.
Use Kanban Systems to Visualize Project Dependencies.
It comes as no surprise that we suggest you start using Kanban pull systems to manage dependencies. We believe that Kanban is the single most effective method of managing projects. It brings a lot of productivity improvements, but most of all, it prevents you from getting into the mess that most complex projects end up in.
Just an early warning: if you think that Kanban is just a few sticky notes on the whiteboard, you need more education on the topic. Kanban is a management method that has evolved into a massive body of knowledge. You can check the Kanban resources on our website or search for the Kanban Maturity Model book.
There are several strategies to visualize dependencies on a Kanban Board. Let's take a closer look.
1. Specialized column to visualize all work items with internal or external dependencies in project management:
If a card is moved in one of these two columns, it means that we're waiting on another party. Note that we've not labeled the parent column "Waiting for Others" but "Tracking others". It's a small thing, but the verb "Tracking" implies that we own the thing. On the other hand, "Waiting" implies somebody else has to do something, and we simply ignore it.
2. Specialized lane to visualize the work waiting on others:
The benefit of specialized lanes over specialized columns is that you can see at what stage of the process the cards had to stop due to a project dependency. However, we typically use the approach with the columns.
3. Independently of 1. and 2. above, you can use a "predecessor/successor" relationship between two or more cards. When a predecessor/successor relationship is visualized on a Kanban Board, it looks like this:
When two or more cards are linked as "predecessor" and "successor", the predecessor has to finish first, then the successor can be started.
4. Another idea is to use blockers. When you put a blocker on a card, it signals that the card cannot be completed due to a problem of some sort. It could be a dependency.
Please note that there is a difference between a waiting state and a blocking state.
Sometimes, the workflow will have a waiting state that is expected. For example, waiting on a review is a process step that is expected to occur. Therefore, it's not likely to block cards that wait on a review, but rather, use a column on the board that indicates that a card is ready to be reviewed. Blockers should be used when the card is blocked by a dependency (or something else), and this is not the expected flow of the process.
5. The last suggestion to visualize dependencies in a project is using card stickers. Stickers are an excellent visualization approach that radiates information:
Stickers are the virtual equivalent of a magnet that you put on a whiteboard. Depending on the software you use, you can define many stickers that transmit different information, including dependencies.
Establish Clear Service Level Agreements and Use Flow Metrics, such as Cycle Time and Block Time, to Control Them.
This is probably the single most effective way to manage project dependencies - having an agreement on how long dependencies shall take to resolve at maximum.
Let's imagine you have a third-party vendor that delivers all packaging materials for your production company. You should have a clear SLA in place that states something like this:
- 85% of all deliveries shall be delivered on the next day following the order
- 95% of all deliveries shall be fulfilled in three days, including the day of the order
When you have the SLAs established, you can use professional Kanban software like Kanbanize by Businessmap to help you track whether these SLAs are fulfilled. One practical way to track such dependencies is using the Time-based business rules engine. This rule will issue an automatic email to the vendor when a dependency has been in the corresponding column for more than two days:
Alternatively, the business rule can update the card, move it to a specific column or even link it to other cards.
If you are using blockers to indicate dependencies, you can use the Time-based business rule, but this time with the Block Time trigger:
With this example, you configure the system to send an email to a predefined address when the blocker "Waiting on others" had been applied more than two days ago.
Define the High-level Roadmap of the Project and Work on the High-risk Items Earlier.
This activity is quite popular, and virtually all project managers do it. However, there's a subtle but significant difference between the typical approach and what we recommend.
While the typical plan that project managers create is some sort of a Gantt chart describing when all work items should start and finish, in the Kanban world, we recommend creating a high-level plan only. This means that you create a timeline of the bigger work packages and let the tasks flow based on the team's actual capacity.
At first glance, this might look like a small thing, but the outcome is significantly better and results in a more resilient management structure. For a more detailed overview of this approach and why it works, please read this article on our blog: How to Create a Project Plan.
Implement Feedback Loops to Help Resolve Project Dependencies Quickly.
The Kanban method defines seven cadences (meetings) that create ten feedback loops:
Before you freak out, let us clarify that you don't have to create seven new meetings. You're most likely doing this already, in one form or another. It's just the agenda of the meetings that needs to be amended.
We won't go into the details of these meetings and why they need to be held. This is described in detail in this article on our blog: Kanban Cadences for Aligning Communication. What's more interesting is that you should use one or more of these meetings to go over all the cards that are blocked or waiting on a dependency, as well as the metrics associated with these cards.
When you do so, at the daily stand-up meeting, for example, the team has the chance to reflect on the problem and take action before too much time has passed. The service delivery review can help you discover common sources of delay/dependencies and develop a mitigation plan.
During the strategy or operations review meetings, you can identify critical areas for improvement based on the quantitative data collected.
Extend Your Kanban Systems across Your Vendors/Subcontractors.
This is the last and the most advanced step to improving how you manage project dependencies. This is what Toyota has been doing for ages, as part of its TPS (Toyota Production System), and it has been instrumental to their success as a global car manufacturer.
If you master the Kanban way of managing dependencies, you will be in the position to extend your ways of working across some or all of your subcontractors/vendors. If you manage to do so, you will benefit from managing all dependencies through a network of connected Kanban systems.
While this sounds a bit complex, it boils down to the following:
- Automated pull signals from company to vendor (we need something from you).
- Automatic signals from company to vendor when a delay occurs (SLA not met).
- Automated signals when the vendor is blocking the company or vice versa.
- Capturing statistics and metrics automatically.
CEO and Co-founder of Businessmap
Dimitar is a lean thinker and a Kanban practitioner with a solid background in the areas of software development and process improvement. He is passionate about achieving extreme performance at scale and applying Lean/Agile principles outside IT.