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 |