Example 5.4 Effect of Calendars

Continuing with the project scenario in the preceding examples, you want to explore other ways of shortening the project duration. One possible alternative is to work overtime. As the project manager, you would like to see the effect on the schedule if you change the calendar for all the development tasks to a six-day calendar.

Calendars are defined using the Calendar data set, as in the CPM procedure. Alternately, if you are using the PROJMAN application, you can use the Calendars window to define a six-day calendar. This example defines a Calendar data set and invokes PROC PM as follows. Note that, in order to use calendars, the Activity data set needs to have a CALID variable, which is added in a simple DATA step.

*  Define a Calendar data set identifying            ;
*  Saturday as a workday                             ;
data calendar;
   input calid calname $ _sat_ $;
   datalines;
1 Sixday WORKDAY
;

*  Add the CALID variable to the Activity data set   ;
*  saved in the preceding example                    ;
data softout3;
   set softout3;
   calid=.;
   run;
*  Use softout3 as the Activity data set and specify ;
*  the preceding calendar data set                   ;
proc pm data=softout3 project=softattr
        calendar=calendar
        date='1mar04'd interval=weekday
        projname='Software Project'          
        out=softout4;
   act actid;
   succ succid;
   project pntid;
   duration duration;
   id activity;
   calid calid;
   run;

When the PM procedure initializes the PM window, it attempts to restore all the display settings using the values in the Project data set, SOFTATTR. However, the new Activity data set has an extra variable, calid, which leads to two new columns in the Table View, one for the Activity Calendar (which displays the Calendar ID) and the other for the Calendar Name. These columns are added at the right end of the Table View and can be seen by scrolling to the right. The resulting view is displayed in Output 5.4.1.

Output 5.4.1 Calendar Columns
Calendar Columns

By default, all the activities are assumed to follow the standard five-day calendar. Now, you want to change the calendar for the supertask 'Develop' and all its subtasks to be the six-day calendar defined in the data set CALENDAR. Note that, in the calendar definition, it is sufficient to specify that Saturday is a working day. All the other days of the week default to the default calendar’s work pattern; see Default Calendar in Chapter 4, The CPM Procedure.

To facilitate the editing of the calendar values and to see the effect on the project duration, reorder the columns (drag the columns in the Table Header) to display the activity, Activity Calendar, Calendar Name, and Duration columns in the Table View. You may need to move the dividing line between the Table and Gantt Views.

You can enter the Calendar values by typing the number 1 in the Activity Calendar column or the value 'Sixday' in the Calendar Name column. You can also use the Calendar pop-up menu in one of the calendar columns to select the desired calendar (see Output 5.4.2). Note that the project duration has reduced to 22 days as a result of the six-day calendar.

Output 5.4.2 Effect of Six-Day Calendar
Effect of Six-Day Calendar

To see the effect on the individual activities, change the units to "Days" in the Gantt View and enlarge the Gantt View, as shown in Output 5.4.3.

Output 5.4.3 Gantt View of Calendar Effect
Gantt View of Calendar Effect