A robust search-based approach to project management in the presence of abandonment, rework, error and uncertainty

Managing a large software project involves initial estimates that may turn out to be erroneous or that might be expressed with some degree of uncertainty. Furthermore, as the project progresses, it often becomes necessary to rework some of the work packages that make up the overall project. Other work packages might have to be abandoned for a variety of reasons. In the presence of these difficulties, optimal allocation of staff to project teams and teams to work packages is far from trivial. This paper shows how genetic algorithms can be combined with a queuing simulation model to address these problems in a robust manner. A tandem genetic algorithm is used to search for the best sequence in which to process work packages and the best allocation of staff to project teams. The simulation model, that computes the project estimated completion date, guides the search. The possible impact of rework, abandonment and erroneous or uncertain initial estimates are characterised by separate error distributions. The paper presents results from the application of these techniques to data obtained from a large scale commercial software maintenance project.

[1]  Martin J. Shepperd,et al.  Estimating Software Project Effort Using Analogies , 1997, IEEE Trans. Software Eng..

[2]  David E. Goldberg,et al.  Genetic Algorithms in Search Optimization and Machine Learning , 1988 .

[3]  Warren Harrison,et al.  Coordinating models and metrics to manage software projects , 2000, Softw. Process. Improv. Pract..

[4]  Giorgio Ausiello,et al.  Algorithm Design for Computer System Design , 1984, International Centre for Mechanical Sciences.

[5]  David Raffo,et al.  A model of the software development process using both continuous and discrete models , 2000, Softw. Process. Improv. Pract..

[6]  Emanuel Falkenauer,et al.  Genetic Algorithms and Grouping Problems , 1998 .

[7]  Lawrence Davis,et al.  Job Shop Scheduling with Genetic Algorithms , 1985, ICGA.

[8]  Ivana Podnar Žarko,et al.  Software maintenance process analysis using discrete-event simulation , 2001, Proceedings Fifth European Conference on Software Maintenance and Reengineering.

[9]  Ramkumar Ramaswamy,et al.  How to staff business-critical maintenance projects , 2000, IEEE Software.

[10]  Giuliano Antoniol,et al.  Assessing staffing needs for a software maintenance project through queuing simulation , 2004, IEEE Transactions on Software Engineering.

[11]  Michael Randolph Garey,et al.  Approximation algorithms for bin-packing , 1984 .

[12]  David S. Johnson,et al.  Computers and Intractability: A Guide to the Theory of NP-Completeness , 1978 .

[13]  Eugene C. Lynd Living with the 2-digit year-Year 2000 maintenance using a procedural solution , 1997, 1997 Proceedings International Conference on Software Maintenance.

[14]  Ivana Podnar Žarko,et al.  Software maintenance process analysis using discrete-event simulation , 2001, Proceedings Fifth European Conference on Software Maintenance and Reengineering.

[15]  Des Greer,et al.  Software release planning: an evolutionary and iterative approach , 2004, Inf. Softw. Technol..

[16]  M RaffoDavid,et al.  Empirical analysis in software process simulation modeling , 2000 .

[17]  Raymond J. Madachy,et al.  Software process simulation modeling: Why? What? How? , 1999, J. Syst. Softw..

[18]  David Raffo,et al.  Empirical analysis in software process simulation modeling , 2000, J. Syst. Softw..

[19]  Tarek K. Abdel-Hamid,et al.  The Dynamics of Software Project Staffing: A System Dynamics Based Simulation Approach , 1989, IEEE Trans. Software Eng..

[20]  Martin J. Shepperd,et al.  Search Heuristics, Case-based Reasoning And Software Project Effort Prediction , 2002, GECCO.