Link loops caused by links with maximum lag

In certain circumstances, specifying a maximum lag time on a link can cause a link loop that at first sight does not look like a link loop. Consider the tasks illustrated below:

Three linked tasks and a milestone

A maximum lag time of two days has been specified on the link between task A and task B. The start date of task B is determined not only by the finish date of task A, but by the milestone below it as well. As the link between task A and task B has maximum lag, if the milestone is moved forwards in time and the project rescheduled, task B is moved accordingly, and so is task A, to ensure that task B starts no later than two days after task A has ended. As task A is moved, task C - its successor task - is also moved forwards in time.

Looking at the above tasks, it would appear to be perfectly reasonably to be able to create a link between task C and task B, as illustrated below:

A link between task C and task B

However, if this link was added to the project, a link loop would be reported the next time the project was rescheduled. The cause of the link loop is not immediately obvious. A link loop exists because in order to position task A correctly on the bar chart, task B must be positioned first. This means that a dependency exists from task B to task A, even though it is not immediately apparent on the bar chart - and therefore also from task B to any of task A's successors. As task C is a successor of task A, creating a link from task C to task B therefore creates a link loop.

Related Topics:

Finding link loops

Specifying a maximum lag time