Introduction to Project Management

Example 2.7 Sequential Scheduling of Projects

(View the complete code for this example.)

Suppose the schedule displayed in Output 2.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 2.7.1. The Usage data set bk1out is also displayed in Output 2.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 2.7.1: Sequential Scheduling of Subprojects: Book 1

Schedule for sub-project BOOK1

ObsactsuccdurideditorartistS_STARTS_FINISHE_STARTE_FINISHL_STARTL_FINISH
1B1PEDTB1REV1Preliminary Edit1.01JAN0307JAN0301JAN0307JAN0301JAN0307JAN03
2B1PEDTB1GRPH1Preliminary Edit1.01JAN0307JAN0301JAN0307JAN0301JAN0307JAN03
3B1REVB1CEDT2Revise Book1.08JAN0321JAN0308JAN0321JAN0315JAN0328JAN03
4B1GRPHB1CEDT3Graphics.108JAN0328JAN0308JAN0328JAN0308JAN0328JAN03
5B1CEDTB1PRF1Copyedit Book1.29JAN0304FEB0329JAN0304FEB0329JAN0304FEB03
6B1PRFB1PRNT1Proofread Book1.05FEB0311FEB0305FEB0311FEB0305FEB0311FEB03
7B1PRNT 2Print Book..12FEB0325FEB0312FEB0325FEB0312FEB0325FEB03

Resource Usage for sub-project BOOK1

Obs_TIME_ReditorAeditorRartistAartist
101JAN031001
208JAN031010
315JAN031010
422JAN030110
529JAN031001
605FEB031001
712FEB030101
819FEB030101
926FEB030101


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 2.7.2. The Usage data set bk2out is also displayed in Output 2.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 2.7.2: Sequential Scheduling of Subprojects: Book 2

Schedule for sub-project BOOK2

ObsactsuccdurideditorartistS_STARTS_FINISHE_STARTE_FINISHL_STARTL_FINISH
1B2PEDTB2REV2Preliminary Edit1.12FEB0325FEB0301JAN0314JAN0301JAN0314JAN03
2B2PEDTB2GRPH2Preliminary Edit1.12FEB0325FEB0301JAN0314JAN0301JAN0314JAN03
3B2REVB2CEDT2Revise Book1.26FEB0311MAR0315JAN0328JAN0322JAN0304FEB03
4B2GRPHB2CEDT3Graphics.126FEB0318MAR0315JAN0304FEB0315JAN0304FEB03
5B2CEDTB2PRF1Copyedit Book1.19MAR0325MAR0305FEB0311FEB0305FEB0311FEB03
6B2PRFB2PRNT1Proofread Book1.26MAR0301APR0312FEB0318FEB0312FEB0318FEB03
7B2PRNT 2Print Book..02APR0315APR0319FEB0304MAR0319FEB0304MAR03

Resource Usage for sub-project BOOK2

Obs_TIME_ReditorAeditorRartistAartist
112FEB031001
219FEB031001
326FEB031010
405MAR031010
512MAR030110
619MAR031001
726MAR031001
802APR030101
909APR030101
1016APR030101


Last updated: November 10, 2025