Let’s start with a definition. Task dependencies are the links between project activities. Understanding how tasks link to and rely on each other lets you create a project schedule so that everything happens in the right order.
There are four types of task dependency:
Start-to-start: Both tasks start at the same time, or one task has to start before the other can start. For example, if you were building a shopping website you can start writing the code for taking payment and the code for finding the nearest outlet at the same time (assuming you had enough developers and the two pieces of code didn’t have any overlaps).
Finish-to-finish: Let’s assume you’re working in an Agile environment where you’re testing and tweaking that shopping website until it exactly meets your requirements. Instead of having Test-Update Code-Test-Update Code-Test-Update Code-Test ad nauseum on your plan, you can have Test and Update Code with a finish-to-finish dependency where updating the code finishes at about the same time or before testing.
Finish-to-start: One task ends before the other task begins. This is the most common type of dependency and creates sequential tasks. On your shopping website, you have to finish the testing before you can demo the solution to the Marketing team. There is a finish-to-start relationship between testing and doing the demo.
Start-to-finish: One task starts before another task finishes. This is the least common type, and you have to look hard to find examples you could use in real life. Here’s one: your team is working in shifts to develop code for your shopping website. Fred’s shift is due to finish but he has to brief Mason about the bug he’s found before he can leave. Mason is held up in traffic. The start of Mason’s shift controls the finish of Fred’s shift. You can see from that how start-to-finish relationships work, but you’ll probably never use one on your schedule.
Getting the right work done at the right time is essential if you want to deliver your project successfully. Unfortunately, the links between tasks aren’t always clear, and you don’t always want to work on tasks one after the other. Dependencies enable you to work out the best order for your project tasks, giving you the fastest route through the project and getting everything done in a structured way.
Here are the steps you should take to manage task dependencies effectively:
List the Project Tasks
First, make sure that you have a complete list of project tasks. Include everything that you need to do in order to complete the project. Work from your own knowledge but don’t rely on that alone. Schedule a workshop with your team so they can collaborate on the To Do list because many dependencies fall during the handoff of a task to another team. For example, there might be certain steps one team member requires before they can “take delivery” of the task to complete their actions. Knowing this upfront means you’ve got time to schedule and plan the work – and nothing comes as a surprise.
Define Internal Dependencies
Look through your complete project task list and work out where the natural links are between activities. These are internal dependencies that occur within the environment of the project itself. A good example is sequential activities. For example, being able to demo your product to a user group is dependent on having completed the prototype.
Many projects have elements that the internal team can’t deliver alone, and third party contractors are brought in to complete a particular task, like shipping equipment from one location to another or building a piece of software. Note these dependencies as well, as they all have an impact on your project team.
The good news is that project managers can manage internal dependencies and the success of managing them is within your span of control.
Define External Dependencies
Now think about the links that your project has to the world outside your team. It might be affected by other projects or other initiatives happening in the company. For example:
- Another project has to finish before a task on your project can begin.
- A resource working on another initiative has to be available before a task on your project can begin.
- Two projects need the same task doing, so one person is going to do that activity for both projects at the same time.
These are external dependencies and project managers tend to have less control over them. You’ll have to build good working relationships with other project managers and the wider organization in order to manage these effectively. Get your project sponsor involved as he or she may be aware of dependencies that you don’t know about.
Choose Dependency Types
Choose the right dependency type for the link you want to create between your tasks. In 90% of situations the finish-to-start dependency will be the right one, but think creatively about how you use all these types. For example, running tasks in parallel with start-to-start dependencies will save you time overall, as long as you have the resources to work in separate streams.
As the project manager you can run with the schedule and overall control of the project delivery falls to you. However, it’s worth nominating owners for each dependency so that someone has the responsibility to keep a watching brief on how the linked tasks are going.
When links between internal project tasks are happening in a certain order then the task owners are the natural dependency owners as well. If your dependency list includes a reliance on suppliers then pick someone who can monitor the relationship with that supplier and check that they are on track to complete their tasks on time.
Update Your Schedule
Enter the correct dependency information into your project schedule. When you update your schedule in your project management software with dependency data you’ll notice that the end date of the project will change. The software automatically calculates the impact of linking tasks on the plan and works out the fastest time that you can complete the project.
When Dependencies Go Wrong
You’ve understood all your project dependencies, nominated owners and entered the data into your project plan. That’s great, but does your team really understand why they’ve worked with you to do all this?
The impact of getting a dependency wrong can be devastating for a project. If a task is scheduled to complete on a certain date, the resources who are next in line down the chain will be waiting to take over. If the task doesn’t complete as scheduled, they might not be able to pick up any other work so they are either sitting around costing you money but doing nothing, or their manager will pull them off the project and you’ll have to wait until someone else with similar skills is available.
If a task finishes early, you think you can save time and tell the stakeholders that you are ahead of plan. But the owners of the next task in line might not be ready to do their step. They have to finish their last activity before they start the next one, so no time is saved after all.
If two tasks are scheduled to start at the same time and one isn’t ready, the other one will also be delayed.
Whatever the reason, the outcome is nearly always the same: your project gets delayed. That’s why it’s important to monitor dependencies regularly and communicate effectively between the team so that everyone knows when to expect work to be coming their way.
Dealing with Changes
Entering the data into your project schedule is a great start, but managing dependencies isn’t a one-off activity. Project changes result in adding in additional tasks or taking tasks out of the project in order to meet the new requirements. This has an impact on your schedule so you’ll need to monitor your project’s progress and the dependencies between tasks as the project progresses.
As you make changes to tasks, review the linkages between them, adding in new connections and deleting those you no longer need. Your project management tool will automatically take this into account and recalculate the schedule. This saves you a lot of time and lets you communicate the impact of those changes with stakeholders more quickly.
In summary, understanding task dependencies lets you manage the project work more efficiently and make sure that the right resources are lined up at the right time to get everything done. Fantastic project management systems make it even easier by keeping you on top of your changing project schedule at all times. As an example, ProjectManager.com auto-schedules your project based on the latest task dependencies in real time, making it easy to manage your plans.