The CPM Procedure

Resource-Driven Durations and Resource Calendars

The DURATION variable enables you to specify a fixed duration for an activity. The CPM procedure then assumes that all the resources for that activity are required throughout the duration of that activity; further, the activity is assumed to follow the work pattern specified by the activity’s calendar. Suppose that there are multiple resources required by an activity, each following a different calendar and each requiring varying amounts of work. For example, a programming task may require 50 hours of a programmer’s time and 20 hours of a tester’s time. Further, the programmer may work full time on the tasks, while the tester, due to other commitments, may work only half time on the same activity. The scheduling could be further complicated if the tester and the programmer followed different calendars. Situations of this type can be modeled using resource-driven durations and resource calendars.

The WORK variable in the Activity data set specifies the total amount of work required by one unit of a resource. Unlike the DURATION variable, which represents a fixed duration for an activity for all its resources, the WORK variable drives the duration for each resource required by the activity using the resource rate specified. You can specify different amounts of work for different resources by using different observations to specify rates and total work for the different resources. Consider the following data from an Activity data set:

          ACT     WORK     PGMR   TESTER

           1       50       1       .
           1       20       .       .5
           2       15       1       1

PGMR and TESTER are resource variables specifying the rate at which the respective resource is required (used) for the particular activity; WORK specifies the total number of hours (assuming that the INTERVAL parameter has been specified as HOUR) of work required by each resource that has a rate specified in that observation. Thus, Activity '1' requires 50 hours of the resource PGMR and 20 hours of the resource TESTER, while activity '2' requires 15 hours of each of the two resources. Using the rates for the resources specified in the preceding data, the procedure determines the resource durations for activity 1 to be 50 hours for PGMR and 40 hours for TESTER. Likewise, the resource durations for both resources are 15 hours for activity 2.

In the forward and backward pass calculations, the procedure computes the schedules for each resource and sets the activity’s start (finish) time to be the minimum (maximum) of the start (finish) times for all the resources.

Some activities may have a fixed duration for some resources and a resource-driven duration for other resources. For such activities, use the DURATION variable to specify the fixed duration and the WORK variable to specify the total amount of work required for the activity. If a particular observation has values specified for both the WORK and DURATION variables, use the resource type information in the Resource data set (described in the section RESOURCEIN= Input Data Set) to determine if the resource drives the duration of the activity.

Recall that the CALID variable in the Activity data set specifies the calendar that is used by each activity in the project. In addition, you can also associate calendars with the resources in the project. Resource calendars are specified in the Resource data set. However, the CALID variable must be numeric for you to associate calendars with resources; in other words, the calendars must be identified by numbers and not names.