This example illustrates the use of Auxiliary resources. In the earlier examples, the use of alternate resources enabled the
allocation of either John or Chris to the programming tasks. Now, suppose that each of the programmers has a different tester,
and whenever a particular programmer is scheduled for a given task, his tester also needs to allocate some part of his or
her time, say 50 percent, to the same task. To model such a scenario, specify Tester1
and Tester2
as auxiliary resources for Chris
and John
, respectively. The Activity and Resource data sets are printed in Output 4.27.1. Unlike the earlier examples, all the activities are of fixed-duration.
data software; input Activity & $15. dur act s1 s2 Programmer; datalines; Plans & Reqts 2 1 2 3 1 Product Design 3 2 4 5 1 Test Plan 3 3 6 7 . Documentation 3 4 9 . 1 Code 10 5 8 . 1 Test Data 5 6 8 . . Test Routines 5 7 8 . . Test Product 6 8 9 . 1 Finish 0 9 . . . ;
data softaux; set software; Chris = .; John = .; Tester1 = .; Tester2 = .; run; data resaux; input per date7. otype $ resid $ 18-27 Programmer Chris John Tester1 Tester2; format per date7.; datalines; . altrate Programmer . 1 1 . . . auxres Chris . . . .5 . . auxres John . . . . .5 12apr04 reslevel . . 1 1 1 1 ;
Output 4.27.1: Auxiliary Resources: Input Data Sets
Software Development |
Alternate and Auxiliary Resources |
Activity Data Set |
Obs | Activity | dur | act | s1 | s2 | Programmer | Chris | John | Tester1 | Tester2 |
---|---|---|---|---|---|---|---|---|---|---|
1 | Plans & Reqts | 2 | 1 | 2 | 3 | 1 | . | . | . | . |
2 | Product Design | 3 | 2 | 4 | 5 | 1 | . | . | . | . |
3 | Test Plan | 3 | 3 | 6 | 7 | . | . | . | . | . |
4 | Documentation | 3 | 4 | 9 | . | 1 | . | . | . | . |
5 | Code | 10 | 5 | 8 | . | 1 | . | . | . | . |
6 | Test Data | 5 | 6 | 8 | . | . | . | . | . | . |
7 | Test Routines | 5 | 7 | 8 | . | . | . | . | . | . |
8 | Test Product | 6 | 8 | 9 | . | 1 | . | . | . | . |
9 | Finish | 0 | 9 | . | . | . | . | . | . | . |
Software Development |
Alternate and Auxiliary Resources |
Resource Data Set |
Obs | per | otype | resid | Programmer | Chris | John | Tester1 | Tester2 |
---|---|---|---|---|---|---|---|---|
1 | . | altrate | Programmer | . | 1 | 1 | . | . |
2 | . | auxres | Chris | . | . | . | 0.5 | . |
3 | . | auxres | John | . | . | . | . | 0.5 |
4 | 12APR04 | reslevel | . | 1 | 1 | 1.0 | 1.0 |
The following statements invoke PROC CPM with the appropriate data sets and resource variables. The resulting schedule is printed in Output 4.27.2. Note the auxiliary resources that have been included in the schedule corresponding to each primary resource: Tester1 whenever Chris is used, and Tester2 whenever John is allocated.
proc cpm data=softaux out=sftaux rsched=rsftaux resin=resaux date='12apr04'd interval=weekday resout=raux; act act; succ s1 s2; dur dur; res Programmer Chris John Tester1 Tester2 / obstype=otype period=per resid=resid multalt rschedid=Activity; id Activity; run;
Output 4.27.2: Auxiliary Resources: Resource Schedule Data Set
Software Development: Alternate and Auxiliary Resources |
Resource Schedule Data Set |
Activity | act | RESOURCE | DUR_TYPE | dur | _WORK_ | R_RATE | S_START | S_FINISH | E_START | E_FINISH | L_START | L_FINISH |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Plans & Reqts | 1 | 2 | . | . | 12APR04 | 13APR04 | 12APR04 | 13APR04 | 12APR04 | 13APR04 | ||
Plans & Reqts | 1 | Programmer | FIXED | 2 | . | 1.0 | . | . | 12APR04 | 13APR04 | 12APR04 | 13APR04 |
Plans & Reqts | 1 | Tester1 | FIXED | 2 | . | 0.5 | 12APR04 | 13APR04 | . | . | . | . |
Plans & Reqts | 1 | Chris | FIXED | 2 | . | 1.0 | 12APR04 | 13APR04 | . | . | . | . |
Product Design | 2 | 3 | . | . | 14APR04 | 16APR04 | 14APR04 | 16APR04 | 14APR04 | 16APR04 | ||
Product Design | 2 | Programmer | FIXED | 3 | . | 1.0 | . | . | 14APR04 | 16APR04 | 14APR04 | 16APR04 |
Product Design | 2 | Tester1 | FIXED | 3 | . | 0.5 | 14APR04 | 16APR04 | . | . | . | . |
Product Design | 2 | Chris | FIXED | 3 | . | 1.0 | 14APR04 | 16APR04 | . | . | . | . |
Test Plan | 3 | 3 | . | . | 14APR04 | 16APR04 | 14APR04 | 16APR04 | 21APR04 | 23APR04 | ||
Documentation | 4 | 3 | . | . | 19APR04 | 21APR04 | 19APR04 | 21APR04 | 06MAY04 | 10MAY04 | ||
Documentation | 4 | Programmer | FIXED | 3 | . | 1.0 | . | . | 19APR04 | 21APR04 | 06MAY04 | 10MAY04 |
Documentation | 4 | Tester2 | FIXED | 3 | . | 0.5 | 19APR04 | 21APR04 | . | . | . | . |
Documentation | 4 | John | FIXED | 3 | . | 1.0 | 19APR04 | 21APR04 | . | . | . | . |
Code | 5 | 10 | . | . | 19APR04 | 30APR04 | 19APR04 | 30APR04 | 19APR04 | 30APR04 | ||
Code | 5 | Programmer | FIXED | 10 | . | 1.0 | . | . | 19APR04 | 30APR04 | 19APR04 | 30APR04 |
Code | 5 | Tester1 | FIXED | 10 | . | 0.5 | 19APR04 | 30APR04 | . | . | . | . |
Code | 5 | Chris | FIXED | 10 | . | 1.0 | 19APR04 | 30APR04 | . | . | . | . |
Test Data | 6 | 5 | . | . | 19APR04 | 23APR04 | 19APR04 | 23APR04 | 26APR04 | 30APR04 | ||
Test Routines | 7 | 5 | . | . | 19APR04 | 23APR04 | 19APR04 | 23APR04 | 26APR04 | 30APR04 | ||
Test Product | 8 | 6 | . | . | 03MAY04 | 10MAY04 | 03MAY04 | 10MAY04 | 03MAY04 | 10MAY04 | ||
Test Product | 8 | Programmer | FIXED | 6 | . | 1.0 | . | . | 03MAY04 | 10MAY04 | 03MAY04 | 10MAY04 |
Test Product | 8 | Tester1 | FIXED | 6 | . | 0.5 | 03MAY04 | 10MAY04 | . | . | . | . |
Test Product | 8 | Chris | FIXED | 6 | . | 1.0 | 03MAY04 | 10MAY04 | . | . | . | . |
Finish | 9 | 0 | . | . | 11MAY04 | 11MAY04 | 11MAY04 | 11MAY04 | 11MAY04 | 11MAY04 |