When completing tasks and projects there are often activities (sometimes called events/items) that need completing before others can happen. For example, the task of making a pot of tea. We need to fill the jug, boil the water, put tea in the teapot, add the water to the teapot and let the tea infuse. Then we pour the tea into the teacup, and add milk and sugar before drinking.
There are a number of items here that can only be completed after some of the others have been done. A simple example is that we cannot boil the water until after we have filled the kettle! The tasks that must be completed earlier are called predecessors, and the immediate predecessors are also called dependencies.
We can create a directed network graph for the "making tea" situation. We call this a project network.
We can also represent the same information in a table called an activity table.
Activity | Dependencies | |
---|---|---|
$A$A | fill the kettle | - |
$B$B | boil the kettle | $A$A |
$C$C | put tea in teapot | - |
$D$D | add boiling water to teapot | $B,C$B,C |
$E$E | leave tea to infuse | $D$D |
$F$F | pour tea | $E$E |
$G$G | add milk | $F$F |
$H$H | add sugar | $F$F |
$I$I | stir | $G,H$G,H |
This network shows us that you can add the milk and sugar in either order, but that you shouldn't stir and drink your tea until you have added both. It also shows us that both filling the kettle and putting the tea in the teapot have no predecessors.
We can also add timings to each of the activities, making the graph weighted.
These weightings can be included in the activity table
Activity | Dependencies | Duration | |
---|---|---|---|
$A$A | fill the kettle | - | $20$20 |
$B$B | boil the kettle | $A$A | $30$30 |
$C$C | put tea in teapot | - | $15$15 |
$D$D | add boiling water to teapot | $B,C$B,C | $10$10 |
$E$E | leave tea to infuse | $D$D | $120$120 |
$F$F | pour tea | $E$E | $8$8 |
$G$G | add milk | $F$F | $5$5 |
$H$H | add sugar | $F$F | $4$4 |
$I$I | stir | $G,H$G,H | $5$5 |
In this example, we will go from an activity table to a network.
Imagine that we are in charge of organising a book release and press tour for a very famous author. In the planning meeting, our team puts together a list of all the things we need to organise and how each task links up with the next. We can put this information into an activity table for the project:
Activity | Description | Dependencies | Time (days) |
---|---|---|---|
$A$A | Get manuscript from author | - | $1$1 |
$B$B | Figure out tour dates | - | $4$4 |
$C$C | Format manuscript for printing | $A$A | $7$7 |
$D$D | Print books | $C$C | $15$15 |
$E$E | Design cover | $C$C | $7$7 |
$F$F | Book venues for tour | $B$B | $12$12 |
$G$G | Print covers | $E$E | $10$10 |
$H$H | Collect books from printers | $D,G$D,G | $1$1 |
$J$J | Run social media competition | $F$F | $16$16 |
$K$K | Plan travel and accommodation | $F$F | $13$13 |
$L$L | Deliver books to venues and competition winners | $H,J$H,J | $9$9 |
$M$M | Create an itinerary for author and entourage | $K$K | $5$5 |
Let’s draw this as a network to do some analysis. By the end, we will know which are the most important tasks with strict deadlines, and which tasks can be delayed.
There are two tasks ($A$A and $B$B) with no dependencies, so we draw two arrows coming out of the start vertex. Don’t put arrowheads on the ends yet! We’ll see why in just a moment.
$C$C depends on $A$A, we draw a vertex at the end of $A$A, add in the arrowhead for $A$A, and draw task $C$C coming out of it (no arrowhead yet). We do the same for $F$F, which depends on $B$B:
Both $D$D and $E$E depend on $C$C, and both $J$J and $K$K depend on $F$F:
$G$G depends on $E$E, and $M$M depends on $K$K:
Now $H$H depends on both $D$D and $G$G. We are going to create just one vertex that links $D$D and $G$G together. So we continue the lines for each to that single vertex, and add the arrowheads that point to $H$H:
$L$L depends on both $H$H and $J$J, so we follow the same procedure as in the previous step.
Now we’re out of tasks! We complete the remaining edges together at the Finish vertex with arrowheads:
All done!
Well, some of those arrows do look a little wonky. It’s hard to know how it’s going to turn out while we are doing it! But now that we know the shape of it, we can redraw it a bit neater if we want.
Now we have a visual representation of how the tasks in the project depend on each other.
Consider the following network.
Which activity is a dependency for activity $F$F?
What is the initial activity?
What is the final activity?
Which activity has no dependencies?
Given the following network, fill in the activity chart.
List the duration and direct dependencies for each activity.
If an activity has no dependencies, enter $X$X. If there are multiple dependencies, write them in the same box separated by commas.
Activity | Duration | Dependencies |
---|---|---|
$A$A | $\editable{}$ | $\editable{}$ |
$B$B | $\editable{}$ | $\editable{}$ |
$C$C | $\editable{}$ | $\editable{}$ |
$D$D | $\editable{}$ | $\editable{}$ |
$E$E | $\editable{}$ | $\editable{}$ |
$F$F | $\editable{}$ | $\editable{}$ |
$G$G | $\editable{}$ | $\editable{}$ |
$H$H | $\editable{}$ | $\editable{}$ |
Draw a network representation for the activity table below.
Activity | Duration | Dependencies |
---|---|---|
$A$A | $2$2 | - |
$B$B | $9$9 | $A$A |
$C$C | $3$3 | $A$A |
$D$D | $4$4 | $B$B |
$E$E | $5$5 | $C$C |
Draw a network representation for the activity table below.
Activity | Duration | Dependencies |
---|---|---|
$A$A | $1$1 | - |
$B$B | $5$5 | $A$A |
$C$C | $3$3 | $A$A |
$D$D | $2$2 | $A$A |
$E$E | $4$4 | $C$C |
$F$F | $6$6 | $C$C |
$G$G | $8$8 | $B,E$B,E |
$H$H | $4$4 | $B,E$B,E |
$I$I | $9$9 | $F,D$F,D |
$J$J | $5$5 | $H,I$H,I |
Consider the following activity table:
Activity | Dependencies | Duration |
---|---|---|
$A$A | - | $3$3 |
$B$B | - | $5$5 |
$C$C | $A,B$A,B | $8$8 |
$D$D | $A,B$A,B | $4$4 |
$E$E | $C,D$C,D | $3$3 |
Tasks $C$C and $D$D are both dependent on the activities $A$A and $B$B. To represent this in a network diagram the tasks $A$A and $B$B terminate at the same vertex and then tasks $C$C and $D$D start from this vertex.
The activity table below is very similar but this time only task $C$C requires both $A$A and $B$B, whereas task $D$D has only $A$A as its dependent activity.
Activity | Dependencies | Duration |
---|---|---|
$A$A | - | $3$3 |
$B$B | - | $5$5 |
$C$C | $A,B$A,B | $8$8 |
$D$D | $A$A | $4$4 |
$E$E | $C,D$C,D | $3$3 |
To represent this situation correctly we need to introduce a dummy activity. This is an activity with zero weight often represented by a dashed line and used for the purpose of correctly displaying dependencies. On the network diagram below a dummy activity has been added from the completion of task $A$A to the completion of task $B$B. Note the direction of the arrow, this now correctly indicates task $D$D only requires activity $A$A, whereas task $C$C requires the completion of both activities $A$A and $B$B.
In a further example below, notice that tasks $D$D and $E$E share the dependent activity $B$B but do not share other dependent activities.
Activity | Dependencies | Duration |
---|---|---|
$A$A | - | $3$3 |
$B$B | - | $4$4 |
$C$C | - | $5$5 |
$D$D | $A,B$A,B | $3$3 |
$E$E | $B,C$B,C | $2$2 |
To represent this situation we add two dummy activities emanating from the completion of task $B$B. Dummy activities can be labelled with the weight zero and task(s) they represent the completion of as shown below.
In general, dummy activities are required to represent a situation where two or more tasks share some but not all of a set of dependent activities.
Which of the following precedence tables would require a dummy task to represent the dependencies shown correctly?
Activity | Dependencies |
---|---|
$A$A | - |
$B$B | $A$A |
$C$C | $B$B |
$D$D | $B,C$B,C |
$E$E | $D$D |
Activity | Dependencies |
---|---|
$A$A | - |
$B$B | |
$C$C | $A$A |
$D$D | $B$B |
$E$E | $A,C$A,C |
Activity | Dependencies |
---|---|
$A$A | - |
$B$B | $A$A |
$C$C | $B,C$B,C |
$D$D | $B,C$B,C |
$E$E | $D$D |
Activity | Dependencies |
---|---|
$A$A | - |
$B$B | $A$A |
$C$C | $A$A |
$D$D | $B,C$B,C |
$E$E | $D$D |
The precedence table at below has been provided to control the movement of stock within a store during a refit. The junior manager has been given the task of planning the operation so that the total time taken by the project is kept to a minimum and that staff are used most efficiently. All time is given in hours.
The network shown below requires a dummy task to be added to correctly represent the network.
Task | Time (minutes) | Dependencies |
---|---|---|
$A$A | $5$5 | - |
$B$B | $5$5 | - |
$C$C | $4$4 | $B$B |
$D$D | $8$8 | $A$A |
$E$E | $3$3 | $D,G$D,G |
$F$F | $1$1 | $E$E |
$G$G | $2$2 | $C$C |
$H$H | $3$3 | $D$D |
$J$J | $4$4 | $H$H |
$K$K | $3$3 | $F,J$F,J |
$L$L | $4$4 | $E$E |
Select which two nodes should be joined with a dummy task. Where the order indicates the direction of the arrow.
7 to 4
4 to 5
4 to 7
5 to 4