Dependency management in projects.
Managing dependencies in projects can be challenging and impact your projects. Learn how to identify and manage them.
In any project, dependency management is a key activity. They can make or break a project. Not managing dependencies can result in your project not being delivered, delays, or benefits not being realized.
Dependencies are things that your project depends on to deliver the benefit or outcome. Either the output of another project that your project needs to use. Or within a project, dependencies are between tasks.
An example is when the Internet banking app is dependent on the Enterprise Identity Access Management System (IAM) to determine that the correct customer can access the correct accounts on the app.
As you can see from this example, if this was not built properly or if there are delays in the development of the connection between the banking app and the IAM system, it would cause issues with the project.
It’s important to identify the dependencies on your project early and manage them proactively.
Why is dependency management hard?
Dependencies are hard because they are not in our direct control.
Some examples of challenges in dependency management are:
The project depends on other projects to deliver it and they might have different priorities and challenges.
Complex relationships between dependencies. Multiple tasks are dependent on each other.
Unclear requirements between dependent tasks or capabilities.
Resources working through multiple dependent activities; delay in tasks leading to delays in downstream dependent projects or tasks.
Other projects might have different priorities and external dependencies can be unpredictable.
What are the types of dependencies?
Start/ Finish: Component B cannot finish until Component A has started.
Start/ Start: Component B requires Component A to start before starting. These components can be run in parallel.
Finish/ Finish: Component A needs to finish before Component B can finish. The two components can be run in parallel.
Finish/ Start: Component A needs to finish before Component B can start.
What questions to ask
The first important step is to identify the dependencies. Nothing worse than going in blind and not realizing your dependencies and causing a problem.
Go under the hood with your team to understand the details of the dependencies.
What is the dependencies?
Why is it a dependency?
Is it a hard or soft dependency?
What type of dependency is it (F/S, S/F, S/S or F/F)?
What are the deliverables that you depend on?
What is the implication if the dependency is not met?
Is there a way to break the dependency?
Is the other project aware of the dependencies?
What are the options available to manage the dependencies?
Identifying Dependencies
Dependencies can be identified using various methods.
In SAFE, PI Planning is where dependencies between scrum teams and external teams can be identified. Discussions are had with all stakeholders to manage dependencies.
User Story mapping is another tool that can identify dependencies. A user story map is a visual representation of the customer steps and where the user stories sit in that customer flow. Team members can visually link dependencies on the story map and the Product Owner can plan out how the dependencies can be managed.
Solution design is also another way where dependencies can be identified. The solution design process is where the architect or designer determines the end-to-end solution and can highlight the dependencies.
Subject Matter Experts and stakeholders can also help identify dependencies during the planning stage and throughout the life cycle of the project. Make sure you tap into them throughout the project.
Managing Dependencies
Dependencies cannot be managed in isolation. They require teams to collaborate to come up with a plan that will minimize the risk of the dependencies.
Once the dependencies have been identified and understood, there are some options that are available.
Work with the other project or teams to sequence the dependencies. For example, if A cannot be completed until B is completed, sequence B first to be completed before starting with A.
For software development, the developers can create mocks or stubs to simulate the dependent component until it has been built and integrated. For example, the team builds a mock of component B and uses it to build and test component A. When the other project has completed B, then the team can remove the mock and integrate it with component B.
Remove the dependency. Working with the team and stakeholders, work out whether it’s possible to remove the dependency. This may mean a change in the solution, a change in requirements and scope or even bring in dependency into the team.
Include some slack in the dependent task in case the dependency is delayed.
Create a contingency plan for the dependencies.
Monitor the dependency and communicate with the dependency owner regularly.
Dependency management can make or break a project
Critical success factors for managing dependencies successfully are:
Your ability to communicate and collaborate with other projects, business stakeholders, and your own team.
Another is problem-solving. Your ability to analyze a problem and come up with creative ways to resolve it.
Practice these skills regularly. Keep on top of your dependencies. It will improve your chances of successfully delivering the project and reduce your stress level.
Other Articles that you may find useful
The articles below will help you in managing dependencies.
Do I need a Project Risk Management Plan?
This will be the last newsletter on project risk management. We’ll move on to another theme in the following newsletter.Thanks for reading Art and Science of Project Management! Subscribe for free to receive new posts and support my work. Let me know if there is a particular theme that you would like me to cover.
Four Simple Practices to Strengthen Your Risk Management Skills
Improve the chances of a successful project with these practices in risk management. Risk management is a key practice for project managers and for project teams. Risks can derail a project or a delivery of a feature easily. It’s something that team members need to keep on top of regardless of whether you’re running Agile o…
Daily Habits Of A Project Manager That Will Make You Own Your Day
These habits will help you take control of your day and proactively manage your day. How many of us have had those days where you have back to back meetings from 9 am all the way until 5 pm? And go through your emails and finish up at 7 pm. Exhausted and frustrated because you’ve been busy but not productive.
Tools to help you in your craft
Improve your practice with these...
It’s one thing to read something and another to be an expert in it. Expertise requires practice. And that means practising the right things. And practice it consistently. Even the experts need to keep their skills sharp. Here are some tools to help with your practice
The examples described are cool. One of the problems with dependency management is to understand the engagement level. Like in your post, the priorities of another party could be different than our own. As stated here, monitoring and communication are key. I typically identify all my external dependencies as a risk, which, therefore, requires some sort of strategy.