Introduction to Project Management


Example 3.7 Sequential Scheduling of Projects

Suppose the schedule displayed in Output 3.6.4 is not acceptable; you want the first book to be finished as soon as possible and do not want resources to be claimed by the second book at the cost of the first book. One way to accomplish this is to enable activities related to the second book to be split whenever the first book demands a resource currently in use by the second book. If you do not want activities to be split, you can still accomplish your goal by sequential scheduling. The structure of the input and output data sets enables you to schedule the two subprojects sequentially.

This example illustrates the sequential scheduling of subprojects 'Book 1' and 'Book 2.' The following program first schedules the subproject 'Book 1' using the resources available. The resulting schedule is displayed in Output 3.7.1. The Usage data set bk1out is also displayed in Output 3.7.1.

/* Schedule the higher priority project first */
proc cpm data=book1 resin=resource
         out=bk1schd resout=bk1out
         date='1jan03'd interval=week;
   act      act;
   dur      dur;
   succ     succ;
   resource editor artist / per=avdate avp rcp;
   id       id;
   run;

Output 3.7.1: Sequential Scheduling of Subprojects: Book 1

Schedule for sub-project BOOK1

Obs act succ dur id editor artist S_START S_FINISH E_START E_FINISH L_START L_FINISH
1 B1PEDT B1REV 1 Preliminary Edit 1 . 01JAN03 07JAN03 01JAN03 07JAN03 01JAN03 07JAN03
2 B1PEDT B1GRPH 1 Preliminary Edit 1 . 01JAN03 07JAN03 01JAN03 07JAN03 01JAN03 07JAN03
3 B1REV B1CEDT 2 Revise Book 1 . 08JAN03 21JAN03 08JAN03 21JAN03 15JAN03 28JAN03
4 B1GRPH B1CEDT 3 Graphics . 1 08JAN03 28JAN03 08JAN03 28JAN03 08JAN03 28JAN03
5 B1CEDT B1PRF 1 Copyedit Book 1 . 29JAN03 04FEB03 29JAN03 04FEB03 29JAN03 04FEB03
6 B1PRF B1PRNT 1 Proofread Book 1 . 05FEB03 11FEB03 05FEB03 11FEB03 05FEB03 11FEB03
7 B1PRNT   2 Print Book . . 12FEB03 25FEB03 12FEB03 25FEB03 12FEB03 25FEB03

Resource Usage for sub-project BOOK1

Obs _TIME_ Reditor Aeditor Rartist Aartist
1 01JAN03 1 0 0 1
2 08JAN03 1 0 1 0
3 15JAN03 1 0 1 0
4 22JAN03 0 1 1 0
5 29JAN03 1 0 0 1
6 05FEB03 1 0 0 1
7 12FEB03 0 1 0 1
8 19FEB03 0 1 0 1
9 26FEB03 0 1 0 1



The Usage data set produced by PROC CPM has two variables, Aeditor and Aartist, showing the availability of the editor and the artist on each day of the project, after scheduling subproject 'Book 1.' This data set is used to create the data set remres, listing the remaining resources available, which is then used as the Resource input data set for scheduling the subproject 'Book 2.' The following program shows the DATA step and the invocation of PROC CPM.

The schedule for publishing 'Book 2' is displayed in Output 3.7.2. The Usage data set bk2out is also displayed in Output 3.7.2. Note that this method of scheduling has ensured that 'Book 1' is not delayed; however, the entire project has been delayed by two more weeks, resulting in a total delay of six weeks.

/* Construct the Resource availability data set */
/* with proper resource names                   */
data remres;
   set bk1out;
   avdate=_time_;
   editor=aeditor;
   artist=aartist;
   keep avdate editor artist;
   format avdate date7.;
   run;
proc cpm data=book2 resin=remres
         out=bk2schd resout=bk2out
         date='1jan03'd interval=week;
   act      act;
   dur      dur;
   succ     succ;
   resource editor artist / per=avdate avp rcp;
   id       id;
   run;

Output 3.7.2: Sequential Scheduling of Subprojects: Book 2

Schedule for sub-project BOOK2

Obs act succ dur id editor artist S_START S_FINISH E_START E_FINISH L_START L_FINISH
1 B2PEDT B2REV 2 Preliminary Edit 1 . 12FEB03 25FEB03 01JAN03 14JAN03 01JAN03 14JAN03
2 B2PEDT B2GRPH 2 Preliminary Edit 1 . 12FEB03 25FEB03 01JAN03 14JAN03 01JAN03 14JAN03
3 B2REV B2CEDT 2 Revise Book 1 . 26FEB03 11MAR03 15JAN03 28JAN03 22JAN03 04FEB03
4 B2GRPH B2CEDT 3 Graphics . 1 26FEB03 18MAR03 15JAN03 04FEB03 15JAN03 04FEB03
5 B2CEDT B2PRF 1 Copyedit Book 1 . 19MAR03 25MAR03 05FEB03 11FEB03 05FEB03 11FEB03
6 B2PRF B2PRNT 1 Proofread Book 1 . 26MAR03 01APR03 12FEB03 18FEB03 12FEB03 18FEB03
7 B2PRNT   2 Print Book . . 02APR03 15APR03 19FEB03 04MAR03 19FEB03 04MAR03

Resource Usage for sub-project BOOK2

Obs _TIME_ Reditor Aeditor Rartist Aartist
1 12FEB03 1 0 0 1
2 19FEB03 1 0 0 1
3 26FEB03 1 0 1 0
4 05MAR03 1 0 1 0
5 12MAR03 0 1 1 0
6 19MAR03 1 0 0 1
7 26MAR03 1 0 0 1
8 02APR03 0 1 0 1
9 09APR03 0 1 0 1
10 16APR03 0 1 0 1