home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
mbug
/
mbug076.arc
/
CRITPATH.DOC
< prev
next >
Wrap
Text File
|
1979-12-31
|
10KB
|
256 lines
CRITICAL PATH METHOD
====================
(or cpm of another kind)
The Critical Path Method is a project management tool aimed at presenting
any task as a series of activities, listed in order of dependance and in
such a way that the activity path requiring the least time for completion
(known as the Critical Path) can be identified and managed more closely.
Usually, people tend to cooperate better and become less frustrated with
the project when it is reasonably well planned, and everyone has a
reasonable idea of what they are expected to contribute, when, and for how
long.
The Critical Path Method may be as simple as a primitive network (or arrow)
diagram on the back of an envelope, to a sophisticated computer based model
with thousands of activities and dependancies taking into account the
scheduling of available resources for the work.
The arrow diagram
-----------------
The task is represented as an 'arrow diagram'. Each activity is represented
by an arrow; the beginning and end of each activity (arrow) is marked with
a circle called a node and which contains a reference number.
Say we have the start of activity B dependant on the completion of activity
A. The head of the arrow for A terminates in a circle (or node) identified
with a number - let us say 32. The head of activity A terminates at node 32
and the tail of activity B starts from node 32. Say now that we have
another activity, C, which may start from the same node as A - say node 31
- and is required to be completed at the same time as B, at node 34.
Activity C goes direct from node 31 to 34 while activities A and B go from
31 to 32, and 32 to 34 respectively.
If we put some times on the activities we start to get a picture of the
task.
activity nodes estimated time
A 31-32 1hr
B 32-34 3hr
C 31-34 5hr
Easily, activity C is going to take 5hrs and the sum of activities A and C
will take (1+3) or 4hrs.
Suppose now that we have another activity, D, which goes directly from 31
to 34. The table would look like:
activity nodes estimated time
A 31-32 1hr
B 32-34 3hr
C 31-34 5hr
D 31-34 2hr
The numbering of the nodes does not allow the activity or activity time to
be identified correctly. The solution is to include a 'dummy' activity, of
zero time and indicated by a dotted arrow, together with another node - say
33.
activity nodes estimated time
A 31-32 1hr
B 32-34 3hr
C 31-34 5hr
D 31-33 2hr
E 33-34 dummy - zero time
Now there is no clash. Note that it is more logical to use numbers for the
nodes in a way that the higher number always appears at the head of the
arrow. This makes it easier for a computer to know which way we are heading
- even if we dont!.
The Critical Path
-----------------
There are three routes from 31 to 34:
A 1hr B 3hr (total time 4hr)
31 ----------------> 32 -----------------> 34
0/ 1/ 5/
D 2hr E 0hr dummy (total time 2hr)
31 ----------------> 33 .................> 34
0/ 2/ 5/
C 5hr (total time 5hr)
31 --------------------------------------> 34
0/ 5/
The numbers given under each of the nodes is the earliest time at which the
next activity can start (EST). Note that at activity 34 the earliest start
time for the next activity is 5, because all activities must be finished at
34 before activity 34-35 (F) can commence. This means that activities A,B,D
and E will have spare time (known as 'float').
Activity C will have no float and is known as the 'critical path'.
Project times
-------------
Ideally, the objective is to manage resources so that every path is
critical, and the overall time of the project can be minimized.
If now we work backwards from node 34 we will get a second figure which
will indicate the 'latest finish time' (LFT), the time beyond which that
path will become critical.
Several of these times may be computed:
EST earliest start time for the activity
EFT earliest finish time for the activity
LST latest start time for the activity
LFT latest finish time for the activity
float, or that free time between the earliest and latest possible
finish times for the activity.
The diagram now looks like this:
A 1hr B 3hr (total time 4hr)
31 ----------------> 32 -----------------> 34 total float 1h
0/1 1/2 5/5
D 2hr E 0hr dummy (total time 2hr)
31 ----------------> 33 .................> 34 total float 3h
0/3 2/5 5/5
C 5hr (total time 5hr)
31 **************************************> 34 * critical *
* 0/0 5/5
Yes, BUT.........
Some will argue about activity times, and about the value of using such a
method. Usually, people of some experience will have a pretty good idea of
how long it takes to do a job - but they are more likely to express it as a
range of times 'anywhere between one and three hours ...'. These are the
most optimistic (1) and most pessimistic (3) times respectively. If pressed
to it for a realistic average, we might get '2.5 hours' (.... 'but it wont
work anyway ' ....)
To get a reasonable estimated time for the diagram, use the following
formula:
most optimistic + 4*most realistic + most pessimistic
estimated time = -----------------------------------------------------
6
In our case we have an estimated time of (1+4*2.5+3)/6 = 2.33h
The Program
-----------
The program (critpath.mwb) was written in Microworld BASIC, and modified
countless times - first from a cassette storage system; ultimately to suit
my 128k dual drive MicroBee.
This version is made available to the public domain.
I have no doubt that if someone has the need they will revise it and tidy
it up.
Example
-------
The example below is that of erecting a tent, not that anyone is interested
in the management of tent erection unless it is pouring with rain; but it
could apply equally well to the overhaul of a diesel engine or to the
building of a house.
Erecting a Tent
---------------
Start by listing all the activites required to do the job just as they come
to mind. Dont try to put them in order just yet. Then draw an arrow diagram
(on a piece of butchers paper with a felt pen is ideal) but without the
nodes numbered. Just aim at getting the dependance of each activity right.
If you run the little program ARROW.MWB it will show roughly how a network
diagram connects the nodes. You will get a better idea if you draw a proper
one on graph paper using circles at the nodes, arrow heads at the end of
each activity, numbers to identify each node and letters to identify the
activities.
You might like to change several of the activities through the 'alter data'
option at the menu to investigate the effect. Pay no attention to the
number of parallel paths until you have drawn the first diagram and find
your resource limitations. Then you can modify the diagram to have the
number of paths your resources will allow.
When you have the diagram dependancies correct, number the nodes from 0
upwards. Make sure that the higher numbers always appear at the arrowheads.
Only when you have done this should you start to enter times, and this is
the time to use the program (CRITPATH.MWB)
activity nodes est time description
start finish mins
1 0 1 10. find suitable site
2 1 4 15. clear stones away
3 3 4 0. DUMMY
4 1 3 12. level the site
5 1 2 5. get tent from car
6 2 4 0. DUMMY
7 4 5 3. unpack tent
8 4 7 5. unpack pegs & poles
9 5 6 7. lay out groundsheet
10 6 7 10. lay out tent base
11 7 9 5. peg out gndsht/base
12 8 9 7. peg out tent/guys
13 7 8 2. erect poles
14 9 11 3. tighten tent guys
15 8 10 4. fit fly to tent
16 10 11 2. tighten fly guys
17 11 12 20. celebrate!
At the opening menu you will have the choice of entering the data manually
(option 0) or of calling it up from disk. Data for this example is
contained in file TENT.DAT or TENT1.DAT. It can be loaded using option 7.
Two data files are included because the program will sort the file into
order. If you attempt to save it using option 6, the original data will be
replaced with the sorted data.
Selection of option 1 (List schedule) will allow you to select screen or
printer output, and further to select printer type and carriage length. If
you select option 3 you will be asked the same question; it will compute
the path if data is present, otherwise it will put the program into a mode
to accept new data (option 0).
Options 4 and 5 are to save and retrieve data from cassette. I haven't used
them for some time and dont know whether they are still working.
Option 8 will allow you to print a bar chart from the computed critical
path information.
Option 9 quits the program (and also overwrites it).
Ron Clark
MicroBee Users Group
of South Australia
April 1987
his example is
contained in file TENT.DAT or TENT1.DAT. It can be loaded using option 7.
Two data f