Dependencies in Project Management – A Complete Guide

Updated Aug 3, 2022.
dependencies-in-project-management

Society and life in general is highly interconnected, and everything that happens usually affects something else, whether directly or indirectly.

For instance, an election in the United States might have an effect on fuel prices in Kenya. Similarly, it is possible for an occurrence in China to have an effect on the New York Stock Exchange.

Just like in society, tasks and activities within a project are highly interconnected and will affect other tasks and activities, both directly and indirectly. In project management, such relationships are referred to as dependencies.

In this guide, we’ll take a look at what dependencies are in project management, the different types of project dependencies, and how to manage dependencies.

What Are Project Dependencies?

Project dependencies are relationships between two or more project tasks and activities where the successful initiation or completion of one task or activity is dependent on another task being initiated or completed.

For instance, if you are building a website, you have to first complete wireframing and UI/UX design before you can start coding and development.

In this case, coding and development is dependent on wireframing and design. If wireframing and UI/UX design is delayed by a week, coding and development will also be delayed by a week, since the developers can’t start coding until they have the designs.

Dependencies are very important in project management. Poor management of project dependencies can easily lead to inefficient work, backlogs, late project completion, and budget overruns. In some cases, poorly managed project dependencies can lead to total failure of the whole project.

Blockers, Bottlenecks And Constraints

When discussing project dependencies, you’ll often come across the terms blockers, bottlenecks, and constraints. Below, let’s take a look at what each of these terms mean…

Blockers

These are factors that prevent a project task or activity from moving forward until the blocker is eliminated, fixed, or worked around. Blockers can be internal or external, and can be within or outside your control.

For instance, before you can start working on a construction project, you need building permits from relevant authorities. In this case, the building permits are blockers. The construction work will not move forward until you obtain the necessary permits.

Bottlenecks

Bottlenecks are resources that have lower output capacity than the demand placed on them at a given time. As a result, bottlenecks end up slowing the initiation or completion of the next task or activity.

Let’s say, for instance, you are running a soda bottling factory with three machines. Machine A to fill the bottles with soda, machine B to add caps to the filled bottles, and machine C to pack the bottles into crates ready for transportation.

If machine A has a capacity of 100 bottles a minute, while machine B has a capacity of 150 bottles a minute, machine A is a bottleneck, since it affects the productivity of machine B.

Note, however, that bottlenecks don’t always affect the delivery of the whole project, especially if the bottleneck occurs on tasks that are not considered high priority.

For instance, if the capacity of machine C is 80 bottles a minute, the bottleneck caused by machine A doesn’t really affect delivery. Even if you increase the capacity of machine A, final throughput will still remain at 80 bottles a minute.

Constraints

Constraints are factors that introduce boundaries within which a project has to be executed. Constraints affect the performance of the entire project.

In our previous example, machine C is a constraint, because it limits how many bottles the entire factory can produce in a minute. This means that constraints are bottlenecks, but bottlenecks are not necessarily constraints.

Other examples of project constraints include time, cost, and project scope.

Types Of Dependencies In Project Management

1. Logical Dependencies

Also referred to as causal dependencies, these are relationships between tasks where the dependency is inherent. It is impossible for the dependent task or activity to be initiated until the other task is initiated or completed.

Due to their inherent nature, logical dependencies cannot be avoided or executed in parallel. They represent the natural flow of tasks, and avoiding a task or step within the process will result in project failure.

For instance, if you are constructing a house, you cannot start digging the foundation until you complete the architectural designs. You cannot start constructing the walls until you complete the foundation. You cannot install the doors and windows until the walls are complete.

All these are examples of logical dependencies, because each step within the process relies on the output of the preceding step.

2. Resource Dependencies

Resource-based dependencies describe relationships between two tasks without a logical dependence, but which are reliant on the same resource for completion. The shared resource creates a constraint or bottleneck between the two activities.

Let’s say, for instance, you have a furniture project for a client, and you need to build a bed and a table. However, you only have one skilled carpenter, who is already working on the bed. 

In this case, construction of the table is dependent on construction of the bed, since the table will only be built after the carpenter is done working on the bed.

Resource dependencies extend beyond human resources. For instance, if you need to paint two cars, but you have only one painting booth, the second car will only be painted after the first one has been painted.

Since resource dependencies do not have a logical dependency between them, this means that without the shared resource, it would be possible for such activities or tasks to be completed in parallel.

In the above examples, for instance, if you have two skilled carpenters, both the table and the bed can be built at the same time. Similarly, if you have two painting booths, both cars can be painted simultaneously.

3. Preferential Dependencies

Preferential dependencies that are based on the preferences of the project team or stakeholders, industry standards, convenience, or best practice.

In most cases, preferential practices are introduced with the aim of enhancing the quality of the project deliverables

This means that preferential dependencies are not an absolute must. If you so wish, you can ignore preferential dependencies and keep the project moving forward, but then this could potentially lead to quality problems at the end of the project.

For instance, in the construction industry, industry standards require that a slab should be allowed to cure for at least 28 days. This industry standard is not an absolute must. There are some contractors who allow slab curing in less time, but this could potentially compromise the strength of the slab.

If a project team decides to follow the industry standard, this introduces a preferential dependency for other activities that are reliant on the slab being completed before they can be initiated.

4. External Dependencies

External dependencies describe situations where the initiation or completion of a task is dependent on factors that are outside the control of the project manager or project team.

Despite being outside the project manager’s control, it is possible for the project manager to anticipate some external dependencies and develop contingencies on how to deal with them. Some external dependencies, however, are impossible to anticipate and account for.

For example, if a project requires some raw materials that will be supplied by an external supplier, this creates an external dependency. If the supplier delays the delivery of the materials, this will result in a delay on the project. The same applies for projects that require approvals from state or federal agencies.

In the above examples, the project manager knows that these external dependencies exist. In such situations, a skilled project manager will put in place measures to properly manage the dependency with minimal risk to the project.

Sometimes, however, it is impossible to anticipate and plan for external dependencies.

For instance, when the Covid 19 pandemic broke out, many countries locked down their borders. If you had a project that was dependent on materials from another country, for instance, the movement restrictions would introduce an unexpected external dependency into the project.

In this case, the project would have been delayed until the cross-border lockdowns were lifted.

5. Cross-Team Dependencies

Sometimes, projects involve multiple teams. This is particularly common in large projects or large organizations. In such situations, there is huge risk for cross-team dependencies.

Cross-team dependencies occur when the actions of one team could potentially affect the initiation or completion of a different project task or activity by another team.

Let’s say, for instance, you are working on a project launch campaign that involves the engineering team, the design team, and the marketing team.

The design team has to wait for the engineering team to complete the product development before they can come up with product graphics, videos, and other marketing material. The marketing team in turn has to wait for the design team to complete the marketing material before they can start marketing the new product online.

This relationship creates a situation where delays in one team will cause delays in the activities of the other teams and ultimately affect the entire project.

Understanding Task Dependencies In Project Management

To properly manage project dependencies, you need to first understand the relationships between the dependent activities and how they affect each other. Generally, there are four types of relationships in project dependencies…

1. Finish To Start Dependency

Finish To Start Dependency
Source: Tiemchart

This is the most straightforward dependency relationship, and is probably the first you’ll encounter as a project manager. Logical dependencies typically have a finish to start relationship.

With a finish to start dependency, one activity has to be completed satisfactorily before the successor activity can be initiated. This is usually due to the fact that the successor task uses the output of the preceding task as an input.

For example, if you are making a cake, you have to finish preparing the dough before you can put it in the oven to bake.

2. Finish To Finish Dependency

Finish To Finish Dependency
Source: Tiemchart

A finish to finish dependency describes a relationship where one task can only be completed after the preceding task has been completed. Note, however, that both tasks don’t have to be completed at the same time.

For example, writing an article has to be completed before editing can be completed. Editing can start while writing is ongoing, or after the whole article is completed, but it can only be completed after writing is completed.

3. Start To Start Dependency

Start To Start Dependency
Source: Tiemchart

Here, the successor task can only be initiated after the preceding task has also been initiated. However, both tasks don’t have to start at the same time.

Going back to the previous example, editing can also be considered as having a start to start dependency on writing.

You can wait until the article is complete before you start editing, or you can start editing while other sections of the article are being written, but you can only start editing after writing has started, not before.

4. Start To Finish Dependency

Start To Finish Dependency
Source: Tiemchart

Start to finish dependency occurs where one task can only be completed successfully after another task has been initiated.

The best example of a start to finish dependency is seen in shift work schedules. The outgoing shift worker can only finish their shift after the relief worker comes in and starts their shift. If the relief worker doesn’t show up, the outgoing shift worker cannot end their shift.

How To Manage Dependencies In Project Management

Dependencies are inevitable in projects. Every project manager, therefore, needs to be highly skilled in identifying and managing project dependencies.

Proper identification and management of project dependencies lowers project risk, while at the same time improving the quality of project deliverables.

So, what’s the best way of managing project dependencies?

The answer to this question will vary from one project to another, depending on the specific conditions and requirements of each particular project. 

That said, however, there are some dependency management strategies that are applicable to most projects. Let’s check them out below.

1. Identify And Visualize The Dependencies

Before you can properly manage dependencies, you need to be aware of the dependencies in the first place.

The first thing you need to do, therefore, is to go through your project plan and project workflow and identify any possible instances where dependencies might occur. The best way to do this is to visualize your project workflow using Gantt chart software or Kanban visualization tools.

Visualizing your workflow in the form of Gantt charts or Kanban boards allows you to see how different activities and tasks in your project plan relate to each other, thus helping bring all dependencies to the fore.

Once you’ve identified the dependencies, make a record of each dependency, along with all key details concerning the dependency. Some of the details you’ll want to capture include…

  • The dependency’s name or unique ID
  • The activity, or task causing the dependency
  • The expected output for the task or activity causing the dependency
  • The expected completion date for the task or activity causing the dependency
  • The person or team responsible for the dependency (in the case of external dependencies, include contact information for the external party)

Recording these details about the dependency makes it easier for you to track the dependency and ensure it doesn’t end up jeopardizing the project.

2. Communicate With The Project Team And Stakeholders

As the project manager, you’ll be aware of the dependencies that pose a risk to your project, but there’s a chance that the other parties involved in the project do not. Communication is therefore very important when managing project dependencies.

First, you need to talk to the team members whose tasks create the dependencies. Make it clear to them that other project tasks are dependent on what they are handling, and explain exactly how their work will affect the rest of the project.

It’s also important to keep an open line of communication with these team members as the project progresses. This way, you’ll always be aware of how these tasks are progressing, making it easier for you to notice any delays that might jeopardize the project.

Using team collaboration software can also increase transparency and make everyone aware of how their work affects the work of other team members. 

For dependencies caused by third parties, you’ll also need to communicate with these third parties and let them know how their work affects the rest of the project. Check in with them regularly to ensure that their work is moving smoothly at all times.

Aside from communicating with the project team, you also need to communicate with the project stakeholders and make them aware of the dependencies that exist within the project, and how they could potentially affect the project.

Explaining the project dependencies to stakeholders keeps everyone on the same page and prevents surprises in the event that a dependency causes delay to the project.

3. Create A Risk Log

The reason why managing dependencies is so crucial is because dependencies create risks to the project.

To avoid project dependencies from turning into project risks, you need to identify and track the risks associated with each dependency.

Let’s say, for example, you are building a mobile app for a client. For the app to work, it needs to tap into a database that is currently being built by a different team, creating a dependency between your work, and the database development team.

This dependency creates the risk of your work getting delayed due to delays from the database team. There is also the risk of being forced to build the database from scratch (leading to time and budget overruns) should the database team fail to deliver a fully-functional database.

The best way to identify and track risks arising from your project dependencies is to use a risk log. In your risk log, you should determine the likelihood of the risk occurring, factors that might result in the risk occurring, and how the risk will affect successor tasks, as well as the entire project.

4. Come Up With Contingency Plans For Dealing With The Risks

Now that you are aware of the risks that could result from project dependencies, the next step is to come up with plans on how to keep the project running smoothly should the risk occur.

For instance, if your project is dependent on supplier A to deliver certain materials, you might have in place a contingency plan to get the materials from supplier B should supplier A fail to deliver the materials on time.

Another way to mitigate dependency risk is to create a buffer between the dependent activities

For instance, let’s say you are working on a product launch campaign that has two tasks – design of digital posters, and running a social media campaign. The two tasks have a finish to start relationship, meaning that the flyer design has to be completed for the social media campaign to start.

The design team can deliver the posters within 2 days. Rather than scheduling the social media campaign to start on day three, however, you can schedule it for day 4. This creates a one day buffer between the two activities.

Even if there’s a one-day delay in the completion of flyer design due to factors like unexpected revisions, the buffer keeps the delay from affecting the start of the social media campaign.

5. Regularly Track The Project Dependencies

Things will not always go according to plan once a project is underway. Even when you have plans in place to deal with dependencies, changes might occur that render these plans obsolete.

To avoid being caught off-guard, you should determine a clear way for tracking the dependencies. This allows you to notice any deviations from the plan early enough and make adjustments before the dependencies turn into risks.

In situations where dependencies are caused by external factors, you should put in place procedures on how each party will communicate changes so that none of you is caught by surprise.

6. Use A Project Management Tool

If you’re working on a small project with minimal dependencies, you can easily use something like a simple spreadsheet to keep track of the dependencies throughout the life of the project.

When working on a long, complex project with multiple dependencies, however, a simple spreadsheet won’t cut it. In this case, the best option is to use project management software.

Project management software doesn’t only help in identifying dependencies. It also simplifies the process of monitoring these dependencies and making adjustments when things change.

For instance, if a task gets delayed, project management software will automatically make updates to all tasks that are dependent on the delayed task and automatically reschedule their start and completion dates.

Using a project management tool also makes it easier for you to evaluate the effect of dependencies on your project

For instance, if a team member asks for time off, you can easily model this into the project management tool and evaluate how their absence will affect the project and the workload of other team members before approving their request.

7. Build Cross-Functional Project Teams

Managing cross-team dependencies is usually a huge challenge for project managers. When two or more teams work independently on different aspects of a project, they have different processes, and sometimes, different goals. This creates a situation where risks and delays are unavoidable.

Rather than trying to keep two separate teams in sync, a better way to manage cross-team dependencies is to form a cross-functional project team.

Build Cross Functional Project Teams
Source: Perfectial

For instance, instead of having both the design team and the engineering team working independently, you can create a single project team made up of both designers and engineers.

When they work together as a single team, the team will follow the same processes and have a common goal, and therefore, there’ll be reduced probability of risks and delays.

Martin Luenendonk

Editor at FounderJar

Martin loves entrepreneurship and has helped dozens of entrepreneurs by validating the business idea, finding scalable customer acquisition channels, and building a data-driven organization. During his time working in investment banking, tech startups, and industry-leading companies he gained extensive knowledge in using different software tools to optimize business processes.

This insights and his love for researching SaaS products enables him to provide in-depth, fact-based software reviews to enable software buyers make better decisions.