Please enable JavaScript to view this site.

Vensim Help

(project8.mdl)

 

By introducing the effective freeze on workforce toward the end of the project we have removed the influence of the schedule on activity.  In the final stage of the project people simply continue to work at a normal speed and finish when they finish.  While staffing levels may be constant, it is rarely true that the intensity of effort is constant.

Here we use schedule pressure to drive overtime, with overtime directly affecting productivity. Average Overtime is used as a measure of fatigue resulting from prolonged overwork.  Fatigue lowers productivity and quality.

The new and changed equations are:

Average Overtime = INTEG(
(overtime - Average Overtime)/time to average overtime,
       overtime)

Units: Dmnl

Note that this formulation is the same as Average overtime = SMOOTH(overtime, time to average overtime).  As a general practice, the use of dynamic functions such as SMOOTH is avoided because they can introduce behavior that is difficult to determine the causes of.  It is good practice to use dynamic function only where they result in substantially less clutter.

eff fatigue productivity = eff fatigue productivity lookup(

              Average Overtime)

Units: Dmnl

eff fatigue productivity lookup((0,1.2),(1,1),(1.2,0.9),(2,0.1))

Units: Dmnl

eff fatigue quality = eff fatigue quality lookup(Average Overtime)

Units: Dmnl

eff fatigue quality lookup((0,1.1),(1,1),(1.2,0.9),(1.5,0.5),

         (2,0.4) )

Units: Dmnl

max schedule pressure = 5

Units: Dmnl

normal productivity = 1

Units: Drawing/Person/Month

normal work quality = 0.9

Units: Dmnl

normal workflow = MIN(max work flow, normal productivity * required workforce)

Units: Drawing/Month

required workforce = IF THEN ELSE(
Workforce < required work flow/normal productivity,
willingness to change workforce*required work flow/ normal productivity + (1 - willingness to change workforce) * Workforce,
required work flow/normal productivity)

Units: Person

Note that this formulation has been changed to use normal productivity instead of productivity.  If this were not the case, you would have a situation in which people were producing above average because of overtime, but this high output was considered the norm for bringing new people on.  Depending on the project, this might actually be realistic.  In this case, however, it would be necessary to use not productivity, but a perception of average productivity since productivity is not directly observable.

overtime = overtime lookup(schedule pressure)

Units: Dmnl

overtime lookup((0,0.7),(1,1),(1.2,1.2),(1.5,1.4),(2,1.45),(5,1.5) )

Units: Dmnl

productivity = normal productivity * overtime * eff fatigue productivity

Units: Dmnl

schedule pressure = IF THEN ELSE(scheduled time remaining<= 0 :AND:
:NOT: project is done,max schedule pressure,
ZIDZ(required work flow,normal workflow))

Units: Dmnl

The ZIDZ function is used because at the beginning of the simulation normal workflow is 0.  Once the schedule is overrun schedule pressure goes to its maximum value until the time of completion.

time to average overtime = 2

Units: Month

work quality = normal work quality * eff fatigue quality

Units: Dmnl

With these changes in place we see the following behavior:

The peak in activity toward the end is accomplished with overtime.  The quality toward the end does slip, and there is a small but noticeable amount of rework discovered after the project is completed.