Applying Process Simulation to Software Project Scheduling
Fakultät für Informatik
Universität Karlsruhe, Germany
Good project scheduling is an essential yet extremely
hard task in software management practice. The time
needed to complete a development activity usually is
known only roughly. Often, the completion of an ac-
tivity is delayed due to unanticipated rework.
In this paper, we show how process simulation can
be utilized in order to support software managers in
finding good schedules for their projects. We present a
novel, discrete simulation model for software projects
which explicitly takes a scheduling policy as input.
The model represents task assignments, staff skill lev-
els, component coupling, and rework caused by design
changes. The simulation model is implemented in the
ModL language of the general-purpose graphical simu-
lation tool EXTEND .
As a first application of our project simulation
model, we systematically study the performance of var-
ious so-called list policies for a sample project. The
simulations quickly show what impact each list policy
has on the expected progress and completion time of
the sample project. We also provide a detailed analy-
sis of the task assignments which actually occur in the
simulations. The analysis clearly identifies the reasons
why the list policies perform as observed.
2. Scheduling Model
The simulation model is an implementation of the
stochastic scheduling model for software projects which
we have presented earlier [7, 9] .
2.1. Project dynamics
In the model, the software product is developed by
several teams. The teams work in parallel. Based on
some early high-level design, the software is divided
into components. At any time during the project, each
team works on at most one component, and, vice versa,
each component is being worked on by at most one
team. It is not required that there are enough teams to
work simultaneously on all uncompleted components.
The assignment of the components to the t