Remember way back at the beginning of this blog when I talked about dependencies? Of course, I had no real idea about what they were at the time. And, to be honest, I still don’t know more than very high-level stuff. But linking your project tasks, as we did in last week’s post helps you establish dependencies for your project, and that is a Very Important Critical Crucial Project Management Thing.
The concept of dependencies seems pretty simple. Almost all project tasks depend on something else happening before they can happen – it’s like a chain reaction. If this thing or condition occurs, then that project task can occur. The succeeding task is usually dependent on a preceding task or condition. This is sometimes the case, as in many of the tasks in my previous post, but it isn’t always the case. There are four types of dependencies: Finish-Start, Start-Start, Finish-Finish, and Start-Finish.
The dependencies we created in my last post are Finish-Start dependencies. Task A must be finished before you can start Task B. But, though that is a very common type of dependency, a natural dependency, it isn’t the only kind.
You also have your Start-Start dependency. Once you start Task A, you can also start Task B. Task B cannot start until after you’ve started Task A, but you don’t have to wait until Task A is complete before you get rolling with Task B.
Here’s an example for you. Pretty much everything I write about here, I do at the eleventh hour. I am not that marvelously together sort of writer who has dozens of posts outlined and ready to go months in advance. Often, I don’t know what I’m going to write about until the day before I have to hand the finished product in to my editor.
Much of what I’ve been covering lately is material I’ve drawn from Dux’s video giving viewers a jumpstart on using Microsoft Project. Now, I could treat this as a Finish-Start task. I could watch the entire video, and then when it’s over, I could sit down and write however many articles I can squeeze out of the video. But for me, it’s a Start-Start task. I begin watching Dux’s video, and when he covers a topic I know I can write about, I start banging out my post before I’ve finished watching the entire video. I can’t start writing about stuff I learn from the video until I’ve started the video, but writing about the video can happen before I finish watching the video.
The third kind of dependency is Finish-Finish, and it is the opposite of Start-Start. With this type of dependency, Task B can only finish after Task A has finished. If Task A is my writing a post for this blog, Task B, publishing the article here on Bamboo Nation, cannot occur until Task A has finished.
The fourth type of dependency is the one I have the most trouble with. It is called the Start-Finish dependency. The second project task (what we’ve been calling Task B) cannot finish until the first task (Task A) begins. But Task B can finish at any time after Task A starts. I can’t even think of a clear example for this type of dependency. Fortunately, there are a lot of resources out there that explain dependencies and provide examples of Start-Finish dependencies. Most of those examples involve either shift workers arriving on the job to relieve their predecessors, or the making and selling of baked goods. Based on how often I’ve seen project management compared to making cakes, I would hazard a guess that many PMs are would-be professional bakers, too.
Besides the types of dependencies that describe how one task relates to another, and in which the order of a task’s beginning or completion affects another task’s beginning or completion, there are three general reasons for creating dependencies.
- Causal, or logical. One task must logically follow another. You cannot read my blog posts until I have submitted them to my editor and he has published them.
- Resource constraints. One task is reliant upon resources available to begin or complete other tasks. I cannot build a new house because I have not put aside enough money to buy the piece of land I want to build on and/or I haven’t had the time to hire a builder.
- Discretionary, or preferential. You make a choice to begin or complete one task even though you could choose to begin or complete another task without affecting the overall project. I choose to do laundry before I clean the bathroom. Both things need to be done tonight, but the order in which I do these tasks really doesn’t matter, and is completely at my discretion according to my preference.
So far, dependencies, except for that tricky Start-Finish dependency (which isn’t one you’ll frequently run across in the wild, from everything I’ve read about it), seem pretty easy, right? But there are other things that affect dependencies, including lag and lead and probably other stuff I haven’t even heard of yet. And sometimes, it isn’t immediately apparent which kind of dependency to assign to a given task or set of tasks. If you’re stuck on deciding which kind of dependency to choose, read “Choose the right dependency type” near the bottom of this page. And in the next few entries, we’ll talk about other factors affecting dependencies, and about critical path PM versus critical chain PM.