A study on optimal scheduling for software projects
Software Process: Improvement and Practice
Software projects often suffer from unexpected rework and delays. Therefore, project scheduling remains a difficult task for the managers. In this article, we compute optimal scheduling strategies for a set of sample software projects and simulate their behavior. The computations are based on a stochastic Markov decision model for software projects, which focuses on capturing the feedback between concurrent development activities. Since the underlying process model is stochastic, the strategies
... are stochastically optimal, that is, they minimize the expected project duration. The ultimate goal of this research is to develop guidelines for managers to schedule their software projects under uncertainty in the best possible way. The sample projects are similar, but differ in certain characteristics of the project or product, such as the strength of the coupling between the components or the degree of specialization of the teams on the tasks. By using a set of related projects, we can study how the project characteristics influence the optimal scheduling decisions in a project. After computing the optimal scheduling policies for the sample projects, we use extensive discrete-event simulations to study the behavior of the optimal policy for each given setting and compare the performance of the optimal policy against the possible list policies. List policies are a simple and commonly used class of scheduling policies. For our sample projects, the simulations show that the best list policy in general is not optimal. The higher the degree of specialization of the teams, the larger the performance gap is. On the other hand, the stronger the coupling between the components, the smaller is the improvement that the optimal policy achieves over the best list policy.