Choosing the Right Dependency Between Project Activities

The schedule logic for a project is the collection of dependencies you create between activities. The goal of this schedule logic is to provide a realistic model of when project activities should occur. Want to up your scheduling game? This article explains when to use each dependency type to link activities.

Finish-to-start is the one you’ll use most often. A finish-to-start dependency tells you that when one activity (called the predecessor) finishes, the next activity (the successor) can start. For example, you have to finish writing some code before you can test it. If you don’t work in software, maybe this example will resonate: when your older child teases the younger one, the younger one starts crying.

On the other hand, the start-to-finish dependency type is rare (which is a gift because it’s also confusing). This dependency means that the start of one activity determines when another one finishes. It’s confusing because the predecessor occurs later than the successor, as shown in the figure, and most people think of predecessors occurring before successors. (Remember, with dependencies, the predecessor is the activity that controls the timing of the successor, not when it occurs time-wise.) For example, consider a sales clerk who works a shift in a retail store. To keep the store open for customers, the clerk for the next shift has to show up to start his or her shift before the sales clerk on duty can go home (finish the shift).

Let’s look at the remaining two dependency types: start-to-start and finish-to-finish.

Suppose one person is scheduled to spend 10 days writing software documentation and another one is scheduled to work 10 days reviewing the documentation to make sure it’s accurate and clear. At first glance, you might think start-to-start and finish-to-finish dependencies work equally well. When the writing starts, the review could start almost immediately. Or, when the writing is complete, the review could finish soon after.

But start-to-start dependencies can cause trouble if activities don’t occur as scheduled. Suppose the writer runs into issues with the software and the writing task is going to take 15 days instead of 10. As you can see in the figure, the writing and review started at the same time, which means that the review is scheduled to finish 5 days before the writing. Some of the writing wouldn’t get reviewed unless you caught this error in your schedule logic.

The writing and review activities should be linked with a finish-to-finish dependency. That way, the schedule logic guarantees that the review doesn’t finish until the writing is complete, even if the writing takes longer. This dependency also works if the review takes less time than writing—say, 5 days. With finish-to-finish, you could wait 5 days before starting to review documentation, as shown in the figure below. If the writing takes longer than you expect, the delayed finish date for writing also delays the finish for review.

As you can see, almost all your dependencies will be finish-to-start or finish-to-finish. Another dependency best practice is to avoid negative lag (also called lead), because it implies that you know when the predecessor activity will finish. (You can explore this practice in this movie from my revamped and updated course, Project Management Foundations: Scheduling, which was released in April 2018).

A Cautionary Tale: When Good Communication Goes Off Track

Good communication is important on the smallest of projects. My co-author Jim Ewing and I were in the middle of a very small project: designing the cover of the comedic thriller we wrote. Things were chugging along when suddenly design elements were in a big messy pile like the catch of the day. As our protagonist, Juice Verrone, would say: “Is this some kind of a joke?” Sadly, no. Our project was derailed (temporarily) by poor communication.

Here’s how it all started. Jim and I decided to use a design competition web site, 99designs.com. The project started down a familiar path. When Jim created the competition, he posted information that sounds a lot like a project summary: a book cover design that would work in color and grayscale for both print and eBook (the goal and scope rolled into one), the price level (the budget,) a description of the novel’s plot, ideas we had, a sketch I had drawn (requirements of sorts).

The design competition has a process, which we followed. During the first round, people submitted designs. Jim and I discussed the entries, provided feedback, and received revised designs. We rinsed and repeated over the several days of round one. It was all very agile. Round two was similar, although our feedback became more specific and detailed.

Several of the designers were from other countries. This international competition was a crash course in communication issues due to cultural, geographical, publishing, and other differences. Who knew book spines run in different directions in different countries? It was also interesting to see how our novel got renamed by non-native American English speakers. The book title, “Fresh Squeezed,” morphed into  the grammatically correct Freshly Squeezed on a few entries.

We picked a winner and explained that the real work was now beginning. We were going to work with the winner’s basic design and iterate to the final cover. This is when things got shaky. We made specific requests but the results that came back seemed to be further off-track. Colors that had been correct in previous iterations were suddenly wildly off base.

Jim was the point person so he tried reducing the number of changes in each iteration. He asked the designer to go back to an earlier revision that had the colors we wanted. But the results were still off.

Jim and I were confused and frustrated. Then I thought of a technique that Stephen Covey recommends. Instead of descending deeper into micro-management, I suggested he say “Help me to understand why we are having problems with the colors.” Turns out that the three-dimensional fish on the cover was created in one program. Then the colors and other effects were added in a second program followed by some clean-up steps. And finally that polished image goes into the book cover file. Every time we asked for a change to the fish, she had to jump through all those hoops (with the potential for glitches.) No surprise, those steps took her quite a bit of time–for every individual request we made.

Fresh Squeezed cook coverUnderstanding her process clarified the situation and led the way to a more effective change management approach. We worked on the fish without color effects to get its shape and facial expression right. Then, moved on to applying the color — once. With the fish complete, we could move on to the other elements of the cover. Finally, when all the elements were finalized, she laid them out on the book cover.

All along, we felt like we were communicating. But messages weren’t getting across. When we went from brainstorming into “production,” we were really moving from an early project phase (completed prototype or proof of concept) into project execution. We should have taken some time to plan how we were going to work, ask the designer questions about her process and how we could work with her most effectively.

The moral of this story: communication is crucial and requires careful planning, followed by care and feeding–even in small projects like our book cover. Remote or multicultural (or multi-anything) teams complicate the process. Finally, we can learn a lot about managing big projects from small projects we perform every day, which brings us back around to the importance of lessons learned!