Understanding Codependency in Project 2002

By Nancy Stevenson

You shouldn’t set task start dates in Project 2002 very often. That’s because projects are fluid — they change and grow faster than bad guys come at you in the average computer game. If you build in a timing logic, rather than assigning certain dates to tasks, Project can reflect changes by adjusting your project based on that logic.

So, if the task of getting materials in-house is delayed by a week, the dependent task of starting the manufacturing process automatically moves out a week. You can then note the change when tracking activity in your plan, and Project will make adjustments accordingly. The alternative to this is going in and changing the start date of just about every task in your schedule every time a task is running late — you don’t even want to think about doing that!

When tasks depend on each other

As with human relationships, every dependency relationship involves roles. Every task is either a predecessor or a successor. There will be a predecessor and successor pair even if the timing of the two tasks overlaps or they are set to happen concurrently.

Figure 1 shows how the task bars in the Gantt Chart view graphically depict the predecessors and successors in dependency relationships between tasks. Notice how taskbars represent the relationship when a task starts after or during the life of another task. Notice also the lines drawn between tasks, indicating dependency links.

A open project where dependency relationships are shown by the lines between taskbars.

Figure 1: In this view, dependency relationships are shown by the lines between taskbars.

Here’s some important advice about dependencies, so listen up: You can have more than one dependency link to a task, but don’t overdo it. Many people who are new to Project make the mistake of building every logical timing relationship that exists. If things change and they have to delete or change dependencies (for example, to shorten a schedule), a more convoluted web of dependencies can create a nightmare.

For example, both obtaining a permit and pouring a foundation for a building have to be completed before you can start framing the building. However, a link from framing to the foundation task is sufficient to establish the correct timing, assuming you have a link from the foundation task to the permit task.

Dependency types

You can establish four types of dependency links: finish-to-start, start-to-finish, start-to-start, and finish-to-finish. Using these types efficiently can mean the difference between a project that finishes on time and one that is still going on long after you retire.

Here’s how the four dependency types work:

  • Finish-to-start. A finish-to-start dependency is the most common type of dependency link. In this relationship, the predecessor task must be completed before the successor task can start. When you create a dependency, the default setting is finish-to-start.
    An example of a finish-to-start dependency is when the Print Invitations task must be completed before you can begin the Send Out Invitations task. Figure 2 shows two tasks with the finish-to-start relationship indicated by a successor taskbar that starts where the predecessor taskbar leaves off.
A Microsoft Project with only one taskbar.

Figure 2: The taskbar for the Print Invitations task ends where the milestone symbol for Send Out Invitations begins.
  • Start-to-finish. In a start-to-finish dependency, you can finish the successor task only after the predecessor task has started. If the predecessor is delayed, the successor task can’t finish.
    Suppose that you’re planning the building of a new cruise ship. You might start selling tickets for the ship’s maiden voyage while the ship is being built, but you don’t want to stop selling tickets until the ship is ready to leave. So, the predecessor is Ship Ready for First Voyage (a milestone) and the successor task is Sell Tickets for Maiden Voyage. If the ship is not ready, you can keep selling tickets. When the ship is ready to go, the ticket windows closes, and that task can finish. Bon voyage!
  • Start-to-start. Start-to-start does what it says: Two tasks must start simultaneously. For example, you may want to ensure that a new blockbuster movie you’re producing is released to theaters the same day that the new action figures are available in fast-food chains.
    Figure 3 shows such a start-to-start relationship between two tasks.
A project with two tasks that start at the same time.

Figure 3: Because you’re sending the posters and invitations to the printer at the same time, these tasks have a start-to-start relationship.
  • Finish-to-finish. Finish-to-finish has nothing to do with warm relations between citizens of Finland. Finish-to-finish — you guessed it — means that two tasks must finish at the same time.
    Suppose that you’re preparing the annual report for your adventure travel company. You have to obtain photographs of travel destinations and have the brochure copy typeset. You have to have both items in hand before you can forward the report to the printer. If you set a finish-to-finish dependency between these two, you allow both tasks the most time to be completed (Why have the photos sitting around for four weeks when the copy isn’t ready?)