Linking tasks (dependencies)
A dependency, or link, says that one task waits for another. Floor slab can’t start until Blockwork walls is finished. Once tasks are linked, Desktop Plan keeps them in order: if the walls take a day longer, the slab, the roof and everything after them move a day later on their own.
The task that goes first is the predecessor. The task that waits is the successor.
How to add a dependency on the chart#
Click the bar of the task that goes first. A small circle appears at each end of it.
Press on the circle at its right-hand end and drag onto the left half of the bar of the task that waits.
Let go. An arrow joins the two bars and the second task moves to after the first.
The bar you drag from always goes first. The bar you drop on always waits.
Choosing the kind of link as you drag
Which circle you start from, and which half of the other bar you let go over, decide the kind of link. The circle is the end of the first task the link hangs on. The half you drop on is the end of the waiting task it controls:
| Drag from | Let go over | You get |
|---|---|---|
| The right-hand circle (the finish) | The left half of the other bar (its start) | Finish to start: it starts when this one finishes |
| The right-hand circle (the finish) | The right half of the other bar (its finish) | Finish to finish: it can’t finish before this one finishes |
| The left-hand circle (the start) | The left half of the other bar (its start) | Start to start: it starts when this one starts |
| The left-hand circle (the start) | The right half of the other bar (its finish) | Start to finish: it finishes when this one starts |
While you drag, a dashed line follows the pointer. Over another bar, the line jumps to the end of that bar it will join, a dot marks the spot, and a label beside the pointer names the kind of link you will get, for example Finish to finish. Move across the middle of the bar to switch between its start and its finish. If you let go anywhere other than a bar, nothing happens.
A milestone is a single moment, so a link always joins it at that moment. Either side of the diamond gives finish to start from a right-hand circle, or start to start from a left-hand one.
A phase can’t be the task that waits, because its dates come from the tasks inside it. To make a phase go first, click the phase’s bar and drag from its circle.
A link made by dragging has no delay. You can change its kind and add a delay afterwards.
How to link several tasks at once#
Select the tasks in the order they happen. Click the first, then Shift+click the last.
Press Ctrl+F2 (or Task › Link tasks).
Each task is linked to the one below it, finish to start: the first goes first, the second waits for it, the third waits for the second, and so on. This is the same key as in Microsoft Project.
- A link that is already there is left as it is.
- If you select a phase together with the tasks inside it, the phase is left out. The tasks inside it are linked to each other.
- If one of the links can’t be made, for example because it would make a loop, none of them are made, and the reason is shown beside the chart.
- It doesn’t work while the rows are sorted or filtered, because the order you see is then not the plan’s.
To remove links, select the tasks and press Ctrl+Shift+F2 (or Task › Unlink tasks). With one task selected, every link into and out of it goes. With several, the links between them go, and their links to other tasks stay. Undo puts them back.
How to add a dependency in the task form#
Double-click the name of the task that waits to open the task form.
Scroll to Depends on.
In Choose a task…, pick the task it waits for.
Each link is listed with three things you can change:
- Which task it waits for: pick another from the list.
- The type (FS, SS, FF or SF), explained below.
- The lag: a delay or overlap, explained below.
Click × to remove the link.
The list leaves out tasks you can’t link to. A task that would create a loop (A waits for B, which waits for A) isn’t offered.
The four kinds of link#
| Type | Name | Means | Example |
|---|---|---|---|
| FS | Finish to start | B starts when A finishes. The usual kind. | Floor slab starts when Blockwork walls finishes. |
| SS | Start to start | B starts when A starts. | Snagging starts when Plastering starts. |
| FF | Finish to finish | B can’t finish before A finishes. | Cleaning finishes with Decorating. |
| SF | Start to finish | B finishes when A starts. | The old supply runs until the new one starts. Rarely needed. |
To change the type on the chart, right-click the arrow and pick one.
Lag and lead: adding a gap or an overlap#
The lag box next to a link adds working time between the two tasks:
2dmakes the second task wait two extra working days, for example while concrete sets.-1d(a negative lag, also called a lead) lets it start one day before the first one finishes, so the two overlap.- Hours and weeks work too:
4h,1w.
Press Enter to keep the new lag (with more than one link, it moves you on to the next lag box), or Esc to put back the old one.
When the next task starts#
- After a task that ends at the end of the day, the next one starts the next working morning.
- After a task that ends at noon, the next one starts after lunch the same day.
- After a milestone, the next task starts the same day. In Oakfield Villa Build, Permits approved and Site clearance are both on Monday 28 September.
Gantt Excel starts the task after a milestone on the following day. Desktop Plan starts it the same day. If you want a day’s gap, give the link a lag of 1d.
How to remove a dependency#
- On the chart: right-click the arrow and choose Remove link.
- To remove every link of a task at once: right-click its bar and choose Remove all links from this task.
- In the task form: click × beside the link.
When you remove a task’s last link, it goes back to the start date it had before it was linked.
How to show or hide the arrows#
Click Dependencies on the view row. The links still work while the arrows are hidden.
Links that are refused#
| You try to… | Why it’s refused |
|---|---|
| Link a task to itself | A task can’t wait for itself. |
| Link two tasks into a loop | They would wait for each other forever. |
| Make a phase wait for a task | A phase’s dates come from the tasks inside it. Link the first task inside the phase instead. A phase can be the one that goes first. |
| Link a phase to a task inside it | They depend on each other already. |
| Link the same two tasks twice | They are already linked. |
| Give a milestone a finish-to-finish or start-to-finish link from another task | A milestone has no length to finish. Use finish-to-start or start-to-start. |
The message at the bottom of the window explains each refusal.