home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / mbug / mbug076.arc / CRITPATH.DOC < prev    next >
Text File  |  1979-12-31  |  10KB  |  256 lines

  1. CRITICAL PATH METHOD
  2. ====================
  3. (or cpm of another kind)
  4.  
  5. The  Critical Path Method is a project management tool aimed at  presenting 
  6. any  task as a series of activities,  listed in order of dependance and  in 
  7. such  a way that the activity path requiring the least time for  completion 
  8. (known as the Critical Path) can be identified and managed more closely.
  9.  
  10. Usually,  people  tend to cooperate better and become less frustrated  with 
  11. the  project  when  it  is reasonably well  planned,  and  everyone  has  a 
  12. reasonable idea of what they are expected to contribute,  when, and for how 
  13. long.
  14.  
  15. The Critical Path Method may be as simple as a primitive network (or arrow) 
  16. diagram on the back of an envelope, to a sophisticated computer based model 
  17. with  thousands  of  activities and dependancies taking  into  account  the 
  18. scheduling of available resources for the work.
  19.  
  20. The arrow diagram
  21. -----------------
  22.  
  23. The task is represented as an 'arrow diagram'. Each activity is represented 
  24. by an arrow;  the beginning and end of each activity (arrow) is marked with 
  25. a circle called a node and which contains a reference number.
  26.  
  27. Say we have the start of activity B dependant on the completion of activity 
  28. A.  The head of the arrow for A terminates in a circle (or node) identified 
  29. with a number - let us say 32. The head of activity A terminates at node 32 
  30. and  the  tail  of activity B starts from node 32.  Say now  that  we  have 
  31. another activity,  C, which may start from the same node as A - say node 31 
  32. - and is required to be completed at the same time as B, at node 34.
  33.  
  34. Activity  C goes direct from node 31 to 34 while activities A and B go from 
  35. 31 to 32, and 32 to 34 respectively.
  36.  
  37. If  we  put some times on the activities we start to get a picture  of  the 
  38. task.
  39.  
  40. activity     nodes   estimated time
  41.    A         31-32        1hr
  42.    B         32-34        3hr
  43.    C         31-34        5hr
  44.  
  45. Easily,  activity C is going to take 5hrs and the sum of activities A and C 
  46. will take (1+3) or 4hrs.
  47.  
  48. Suppose now that we have another activity,  D,  which goes directly from 31 
  49. to 34. The table would look like:
  50.  
  51. activity     nodes   estimated time
  52.    A         31-32        1hr
  53.    B         32-34        3hr
  54.    C         31-34        5hr
  55.    D         31-34        2hr
  56.  
  57. The numbering of the nodes does not allow the activity or activity time  to 
  58. be identified correctly.  The solution is to include a 'dummy' activity, of 
  59. zero time and indicated by a dotted arrow, together with another node - say 
  60. 33.
  61.  
  62. activity     nodes   estimated time
  63.    A         31-32        1hr
  64.    B         32-34        3hr
  65.    C         31-34        5hr
  66.    D         31-33        2hr
  67.    E         33-34      dummy - zero time 
  68.  
  69. Now there is no clash.  Note that it is more logical to use numbers for the 
  70. nodes  in  a way that the higher number always appears at the head  of  the 
  71. arrow. This makes it easier for a computer to know which way we are heading 
  72. - even if we dont!.
  73.  
  74. The Critical Path
  75. -----------------
  76.  
  77. There are three routes from 31 to 34:
  78.                 A    1hr             B    3hr            (total time 4hr)
  79.          31 ----------------> 32 -----------------> 34 
  80.         0/                   1/                    5/ 
  81.                 D    2hr           E   0hr dummy          (total time 2hr)
  82.          31 ----------------> 33 .................> 34
  83.         0/                   2/                    5/
  84.                 C    5hr                                  (total time 5hr)
  85.          31 --------------------------------------> 34
  86.         0/                                         5/
  87.  
  88. The numbers given under each of the nodes is the earliest time at which the 
  89. next activity can start (EST).  Note that at activity 34 the earliest start 
  90. time for the next activity is 5, because all activities must be finished at 
  91. 34 before activity 34-35 (F) can commence. This means that activities A,B,D 
  92. and E will have spare time (known as 'float'). 
  93.  
  94. Activity C will have no float and is known as the 'critical path'.
  95.  
  96. Project times
  97. -------------
  98.  
  99. Ideally,  the  objective  is  to  manage resources so that  every  path  is 
  100. critical, and the overall time of the project can be minimized.
  101.  
  102. If  now  we work backwards from node 34 we will get a second  figure  which 
  103. will indicate the 'latest finish time' (LFT),  the time beyond which   that 
  104. path will become critical.
  105.  
  106. Several of these times may be computed:
  107.           EST  earliest start  time for the activity
  108.           EFT  earliest finish time for the activity
  109.           LST  latest   start  time for the activity
  110.           LFT  latest   finish time for the activity
  111.           float, or that free time between the earliest and latest possible 
  112.           finish times for the activity. 
  113.  
  114. The diagram now looks like this:
  115.  
  116.                 A    1hr             B    3hr            (total time 4hr)
  117.          31 ----------------> 32 -----------------> 34    total float 1h
  118.         0/1                  1/2                   5/5
  119.                 D    2hr           E   0hr dummy          (total time 2hr)
  120.          31 ----------------> 33 .................> 34     total float 3h
  121.         0/3                  2/5                   5/5
  122.                 C    5hr                                  (total time 5hr)
  123.          31 **************************************> 34      * critical *
  124.       * 0/0                                        5/5
  125.  
  126.  
  127. Yes, BUT.........
  128.  
  129. Some  will argue about activity times,  and about the value of using such a 
  130. method.  Usually, people of some experience will have a pretty good idea of 
  131. how long it takes to do a job - but they are more likely to express it as a 
  132. range  of times 'anywhere between one and three hours ...'.  These are  the 
  133. most optimistic (1) and most pessimistic (3) times respectively. If pressed 
  134. to it for a realistic average,  we might get '2.5 hours' (.... 'but it wont 
  135. work anyway ' ....)
  136.  
  137. To  get  a reasonable estimated time for the  diagram,  use  the  following 
  138. formula:
  139.  
  140.                       most optimistic + 4*most realistic + most pessimistic
  141.      estimated time = -----------------------------------------------------
  142.                                                 6
  143. In our case we have an estimated time of (1+4*2.5+3)/6 = 2.33h
  144.  
  145. The Program
  146. -----------
  147.  
  148. The  program (critpath.mwb) was written in Microworld BASIC,  and  modified 
  149. countless times - first from a cassette storage system;  ultimately to suit 
  150. my 128k dual drive MicroBee.
  151.  
  152. This version is made available to  the  public domain.
  153.  
  154. I  have no doubt that if someone has the need they will revise it and  tidy 
  155. it up. 
  156.  
  157. Example
  158. -------
  159.  
  160. The example below is that of erecting a tent, not that anyone is interested 
  161. in the management of tent erection unless it is pouring with rain;  but  it 
  162. could  apply  equally  well to the overhaul of a diesel engine  or  to  the 
  163. building of a house. 
  164.  
  165.  
  166.  
  167.  
  168.  
  169. Erecting a Tent
  170. ---------------
  171.  
  172. Start by listing all the activites required to do the job just as they come 
  173. to mind. Dont try to put them in order just yet. Then draw an arrow diagram 
  174. (on  a  piece of butchers paper with a felt pen is ideal) but  without  the 
  175. nodes numbered. Just aim at getting the dependance of each activity right. 
  176.  
  177. If  you run the little program ARROW.MWB it will show roughly how a network 
  178. diagram connects the nodes. You will get a better idea if you draw a proper 
  179. one  on graph paper using circles at the nodes,  arrow heads at the end  of 
  180. each  activity,  numbers to identify each node and letters to identify  the 
  181. activities.
  182.  
  183. You might like to change several of the activities through the 'alter data' 
  184. option  at  the  menu to investigate the effect.  Pay no attention  to  the 
  185. number  of parallel paths until you have drawn the first diagram  and  find 
  186. your  resource  limitations.  Then you can modify the diagram to  have  the 
  187. number of paths your resources will allow.
  188.  
  189. When  you have the diagram dependancies correct,  number the nodes  from  0 
  190. upwards. Make sure that the higher numbers always appear at the arrowheads.
  191.  
  192. Only  when you have done this should you start to enter times,  and this is 
  193. the time to use the program (CRITPATH.MWB)
  194.  
  195.  activity     nodes      est time   description
  196.                start finish    mins
  197.  
  198.         1    0    1    10.    find suitable site 
  199.      2    1    4    15.    clear stones away
  200.      3    3    4     0.    DUMMY
  201.      4    1    3    12.    level the site
  202.      5    1    2     5.    get tent from car
  203.      6    2    4     0.    DUMMY
  204.      7    4    5     3.    unpack tent
  205.      8    4    7     5.    unpack pegs & poles
  206.      9    5    6     7.    lay out groundsheet
  207.      10    6    7    10.    lay out tent base 
  208.      11    7    9     5.    peg out gndsht/base
  209.      12    8    9     7.    peg out tent/guys
  210.      13    7    8     2.    erect poles
  211.      14    9    11     3.    tighten tent guys
  212.      15    8    10     4.    fit fly to tent
  213.      16    10    11     2.    tighten fly guys
  214.      17    11    12    20.    celebrate!
  215.  
  216. At  the opening menu you will have the choice of entering the data manually 
  217. (option  0)  or  of  calling it up from disk.  Data  for  this  example  is 
  218. contained in file TENT.DAT or TENT1.DAT. It can be loaded using option 7.
  219.  
  220. Two  data  files are included because the program will sort the  file  into 
  221. order.  If you attempt to save it using option 6, the original data will be 
  222. replaced with the sorted data.
  223.  
  224.  
  225. Selection  of option 1 (List schedule) will allow you to select  screen  or 
  226. printer output,  and further to select printer type and carriage length. If 
  227. you  select option 3 you will be asked the same question;  it will  compute 
  228. the path if data is present,  otherwise it will put the program into a mode 
  229. to accept new data (option 0). 
  230.  
  231. Options 4 and 5 are to save and retrieve data from cassette. I haven't used 
  232. them for some time and dont know whether they are still working.
  233.  
  234. Option  8  will allow you to print a bar chart from the  computed  critical 
  235. path information.
  236.  
  237. Option 9 quits the program (and also overwrites it).
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247. Ron Clark
  248.  
  249. MicroBee Users Group 
  250. of South Australia
  251.  
  252. April 1987
  253. his  example  is 
  254. contained in file TENT.DAT or TENT1.DAT. It can be loaded using option 7.
  255.  
  256. Two  data  f