Task Dependencies Explained

Dependencies define the logical order of work. They are the backbone of any Gantt chart and the reason scheduling software exists — manually tracking how a delay in one task ripples through 50 others is impossible without them.

Why dependencies matter

When you link tasks with dependencies, LoopGantt becomes a scheduling engine, not just a calendar. Change a task duration or move a date and the entire downstream schedule recalculates instantly. This is called schedule cascade and it saves hours of manual re-planning after the inevitable scope changes.

Dependencies also reveal your project's critical path — the longest chain of dependent tasks. Any delay on the critical path delays the project end date. Tasks not on the critical path have float (slack) — they can slip without affecting the delivery date.

The four dependency types

FS — Finish-to-Start (most common)

Task A ████████
                Task B ████████
Task B cannot start until Task A finishes.

Use for sequential work: "Write the report" → "Review the report". This is the default and covers ~80% of real-world dependencies.

SS — Start-to-Start

Task A ████████████
   Task B    ████████
Task B cannot start until Task A starts.

Use for parallel work that can begin together but must be coordinated. Example: "Architecture design" and "API specification" can start at the same time, but the spec depends on architecture being underway.

Add a lag (SS+3) to say "B starts 3 days after A starts" — useful when you need A to be partially done before B begins.

FF — Finish-to-Finish

Task A ████████████
      Task B ████████
Task B cannot finish until Task A finishes.

Use when two tasks must wrap up together. Example: "QA testing" and "Beta testing" should end at the same time so the team can move to submission together.

SF — Start-to-Finish (rare)

             Task A ████████
Task B ████████
Task B cannot finish until Task A starts.

The rarest type. Useful in just-in-time and shift-handover scenarios. Example: the night-shift worker (B) cannot leave until the day-shift worker (A) arrives. In most software projects, you will rarely need SF.

Lag and lead time

Every dependency can have a lag (positive number) or lead time (negative number):

NotationMeaning
FS+2B starts 2 days after A finishes
FS-1B starts 1 day before A finishes (overlap)
SS+5B starts 5 days after A starts
FF+0B finishes exactly when A finishes

Lead time (negative lag) lets you model realistic parallel work — for example, starting integration testing 2 days before development officially finishes.

Rules in LoopGantt

  • Phases cannot have dependencies. Link the tasks inside phases instead.
  • Circular dependencies (A → B → A) are automatically detected and rejected.
  • A task can have multiple predecessors — it will start only after all predecessors satisfy their constraints.

How to add a dependency

  1. Click the successor task to open the task editor.
  2. Go to the Dependencies tab.
  3. Click + Add Predecessor.
  4. Select the predecessor task, choose the type (FS/SS/FF/SF), and optionally set lag days.
  5. Click Save. The chart reschedules immediately.

You can also drag a dependency line directly on the Gantt: hover over the right edge of a bar until the connector icon appears, then drag to the target task.

Was this article helpful?