
Last updated: October 7, 2026
There are four types of task dependency: Finish-to-Start, Start-to-Start, Finish-to-Finish, and Start-to-Finish. Most teams only use Finish-to-Start, which forces awkward sequencing onto work that actually runs in parallel or finishes together. Pick the type that matches the real constraint. Then keep the map inside your PM tool, where a weekly look catches a slip early.
Most project management tools let you link one task to another, but the four kinds of link work very differently. Finish-to-Start makes a task wait for its predecessor to finish. Start-to-Start lets two tasks kick off together. Finish-to-Finish ties their end dates together.
Start-to-Finish, the rare one, ties a task's finish to another task's start. Use the wrong one and your schedule either lies about how much work can happen in parallel, or misses a real constraint entirely.
This post covers the four types of task dependencies and which one fits each task pair. It also shows how to set them up so your project management tool keeps track of them, and how to keep the map true after kickoff.
The idea is older than the software. According to PMI's PMBOK Guide, sequencing activities and mapping their dependencies is one of the core processes of project schedule management, and the Critical Path Method has formalized it since the late 1950s.
| Type | Relationship | When to use |
|---|---|---|
| Finish-to-Start (FS) | Task B starts when Task A finishes | Most common; sequential work |
| Start-to-Start (SS) | Task B starts when Task A starts | Parallel work with shared kickoff |
| Finish-to-Finish (FF) | Task B finishes when Task A finishes | Coordinated end dates (e.g., dev + QA) |
| Start-to-Finish (SF) | Task B cannot finish until Task A starts | Rare; handoff timing constraints |
Task dependency: a defined relationship between two project tasks that fixes which one waits, which one leads, and how tightly their dates are tied. Four types exist, Finish-to-Start, Start-to-Start, Finish-to-Finish, and Start-to-Finish, and the type you choose decides whether a delay on one task cascades into the deadline or gets quietly absorbed.
Those tasks come from somewhere: you get them by breaking the project down into deliverables and work items, which is what a work breakdown structure produces before you ever start wiring up dependencies. Both eventually feed into the same project plan, where the dependency map becomes one section of a larger, living document.
Wiring dependencies is planning-phase work: the project management life cycle and its 5 phases, for what each phase owes before the next one can start.
Think of a relay race. The baton has to reach the next runner at the right moment, not just eventually.
Project tasks work the same way: the relationship between two tasks is a specific kind of handoff, and picking the wrong kind is what makes a schedule feel off even when every individual task is on time.
Setting one up is simple once you know the type: open the task, connect it to its predecessor or successor, and tell the tool which of the four relationships applies. Most tools handle this from a task detail panel, a dependency column, or by dragging a connector directly on a Timeline or Gantt view.
The part that matters more than the setup is what happens next. A tool worth using flags the affected chain the moment a predecessor slips, instead of leaving you to work it out by hand.
That's the real difference between a dependency you drew once and a dependency you can actually manage. In Quire, the dependency line on the Timeline turns red the moment two dates conflict. A project admin can also stop anyone from completing a task while its predecessor is still open.
Task dependencies and Timeline view come with Quire's Professional, Premium and Enterprise plans. The pricing page covers what each tier includes.
The best practices all protect one thing: a dependency map your team still trusts after the plan changes. Drawing a link takes a minute. Keeping it true until launch is the actual work.
These four habits keep it honest.
Dependencies only hold up when everyone can see them. Read more on transparency in communication.
Tools differ less on how many relationship types they expose and more on what happens after you draw a link.
Quire keeps dependencies to Finish-to-Start, the type that correctly covers most task pairs, and draws them as a visual dependency map so a slipped predecessor shows you which downstream tasks to re-sequence. Heavier tools expose more relationship models but ask for more setup in return.
| Tool | Dependency model | When a predecessor slips | Visual dependency map |
|---|---|---|---|
| Quire | Finish-to-Start | Highlights the affected downstream tasks to re-sequence | Yes |
| Asana | Finish-to-Start ("waiting on" / "blocking") | Auto-shifts dependent dates on the Timeline | Timeline arrows |
| Jira | Issue links (blocks / is blocked by), plus scheduled dependencies in Plans | Recalculates dates in Plans / Advanced Roadmaps | Dependency lines in Plans |
More relationship types are only worth the setup if your work genuinely needs them. For most teams, getting Finish-to-Start right and seeing a slip's knock-on effects at a glance beats a longer list of link types you never use.
Once your dependencies are set up correctly, they show you the critical path automatically: the chain of tasks where a slip moves your end date, versus the tasks with enough slack to absorb one without any impact.
McKinsey and the University of Oxford checked more than 5,400 IT projects against their original budgets and schedules. On average, the large ones ran 45 percent over budget and 7 percent over time, and delivered 56 percent less value than predicted.
Slippage on that scale rarely comes from one late task. It compounds down a chain nobody was watching.
Protecting the critical path is a planning problem. Put your buffer on the critical-path tasks instead of spreading it across the whole plan, and re-check the chain after every replan. Pad every task equally and you'll run out of slack on the one chain that mattered.
What happens when a critical-path dependency slips anyway is a different problem, covered in the domino effect of a single missed dependency.
Sometimes the relationship itself changes, not just the date. A task you modeled as Finish-to-Start might turn out to run in parallel once you free up a second person to work on it, which makes it Start-to-Start instead.
Don't just push the date around and leave the old relationship in place. Go back into the tool, change the dependency type on the link itself, and let it recalculate from there.
A dependency map that tracks the wrong relationship type is often worse than no map at all, because it tells you a task is blocked when it no longer is.
Changing a link is a decision, so write down why. A decision log next to the work stops your team from re-litigating the call three months later.
Four types cover every real dependency you'll run into: Finish-to-Start for sequential work, Start-to-Start for parallel work with a shared kickoff, Finish-to-Finish for coordinated end dates, and Start-to-Finish for the rare handoff-timing case.
Getting the type right is a five-minute decision per task pair. Getting it wrong is what makes a schedule quietly lie to you for the rest of the project.
Set dependencies up in a tool that flags a broken link on its own, and you stop checking the chain by hand. Start a free Quire workspace and link your next project's first dependency in Timeline view.
Finish-to-Start, Start-to-Start, Finish-to-Finish, and Start-to-Finish. Finish-to-Start covers most task pairs; the other three handle parallel work, coordinated end dates, and rare handoff timing.
Ask what actually triggers the next task: a finish, a shared start, or a shared end date. That answer is the type. Defaulting to Finish-to-Start for everything is the most common mistake.
Connect the task to its predecessor or successor and pick the relationship type. The tool should then flag any successor whose dates stop fitting the link. In Quire, add one from the task's detail panel or drag a connector between two bars on the Timeline. The line turns red when it clashes with your dates.
The schedule stops matching reality, either hiding real parallel work or missing a genuine deadline risk. Fix it by changing the relationship on the link, not just the date.
The cheapest guard is making blocked work visible instead of waiting for the schedule to drift. On a Quire dashboard, the Blocked Tasks widget lists what can't move, what it's waiting on, and who owns that.
Edit the type on the link itself. A Finish-to-Start pair can become Start-to-Start the moment the two tasks start running side by side instead of one after the other.
Chain reactions, mostly. One late task delays everything downstream, and a critical-path slip pushes back the end date itself. Map those pressure points during planning and put your buffer there.
Every week, and again after any replan. A five-minute walk through the dependency map in the weekly review catches drift while it's still cheap to fix.