This Article 
 Bibliographic References 
 Add to: 
Optimized Resource Allocation for Software Release Planning
January/February 2009 (vol. 35 no. 1)
pp. 109-123
An Ngo-The, Expert Decisions Inc., Calgary
Günther Ruhe, University of Calgary, Calgary
Release planning for incremental software development assigns features to releases such that technical, resource, risk and budget constraints are met. Planning of software releases and allocation of resources cannot be handled in isolation. A feature can be offered as part of a release only if all its necessary tasks are done before the given release date. We assume a given pool of human resources with different degrees of productivity to perform different types of tasks. To address the inherent difficulty of this process, we propose a two-phased optimization approach that combines the strength of two existing solution methods. The industrial applicability of the approach is primarily directed towards mature organizations having systematic development and measurement processes in place. The expected practical benefit of the planning method is to provide release plan solutions that achieve a better overall business value (e.g., expressed by the degree of stakeholder satisfaction) by better allocation of resources. Without ignoring the importance of the human expert in this process, the contributions of the paper are seen in making the overall process more objective and the resulting decisions more transparent.

[1] S. Acuña, N. Juristo, and A.M. Moreno, “Emphasizing Human Capabilities in Software Development,” IEEE Software, vol. 23, no. 2, pp. 94-101, Mar./Apr. 2006.
[2] M. Crissis, M. Konrad, and S. Shrum, CMMI—Guidelines for Process Integration and Product Improvement. Addison-Wesley, 2006.
[3] A. Amandeep, G. Ruhe, and M. Stanford, “Intelligent Support for Software Release Planning,” Proc. Fifth Int'l Conf. Product Focused Software Process Improvement, pp. 248-262, 2004.
[4] J. Blazewicz, W. Domschke, and E. Pesch, “The Job Shop Scheduling Problem: Conventional and New Solution Techniques,” European J. Operational Research, vol. 93, no. 1, pp. 1-33, 1996.
[5] L. Briand, J. Feng, and Y. Labiche, “Experimenting with Genetic Algorithms and Coupling Measures to Devise Optimal Integration Test Orders,” Software Eng. with Computational Intelligence, pp. 204-234, Kluwer Academic Publishers, 2003.
[6] P. Carlshamre, K. Sandahk, B. Regnell, and J. Nattoch Dag, “An Industrial Survey of Requirements Interdependencies in Software Release Planning,” Proc. Fifth IEEE Int'l Symp. Requirements Eng., pp. 84-91, 2001.
[7] C. Chang, M. Christensen, and T. Zhang, “Genetic Algorithms for Project Management,” Annals of Software Eng., vol. 11, pp. 107-139, 2001.
[8] J. Clarke, J.J. Dolado, M. Harman, R. Hierons, B. Jones, M. Lumkin, B. Mitchell, S. Mancoridis, K. Rees, M. Roper, and M. Shepperd, “Reformulating Software Engineering as a Search Problem,” IEE Proc. Software, vol. 150, pp. 161-175, 2003.
[9] T. Cormen, C. Leiserson, and Z. Rivest, “Greedy Algorithms,” Introduction to Algorithms, chapter 17, p. 329, MIT Press, 1990.
[10] L. Davis, “Job Shop Scheduling with Genetic Algorithms,” Proc. Int'l Conf. Genetic Algorithms and Their Applications, J.J. Grefenstette, ed., pp. 136-140, 1983.
[11] G. Du, J. McElroy, and G. Ruhe, “A Family of Empirical Studies to Compare Informal and Optimization-Based Planning of Software Releases,” Proc. Fifth ACM-IEEE Int'l Symp. Empirical Software Eng., pp. 212-221, Sept. 2006.
[12] L.J. Eshelman and J.D. Schaffer, “Preventing Premature Convergence in Genetic Algorithms by Preventing Incest,” Proc. Fourth Int'l Conf. Genetic Algorithms, pp. 115-122, 1991.
[13] N. Fenton, W. Marsh, M. Neil, P. Cates, S. Forey, and T. Tailor, “Making Resource Decisions for Software Projects,” Proc. 26th Int'l Conf. Software Eng., pp. 397-406, May 2004.
[14] GALib,, 2008.
[15] M. Garey and D. Johnson, Computers and Intractability; A Guide to the Theory of NP-Completeness. W.H. Freeman, 1990.
[16] F. Glover and M. Laguna, Tabu Search. Kluwer Academic, 1997.
[17] D. Greer and G. Ruhe, “Software Release Planning: An Iterative and Evolutionary Approach,” Information and Software Technology, vol. 46, pp. 243-253, 2004.
[18] S. Hartmann, “A Competitive Genetic Algorithm for Resource-Constrained Project Scheduling,” Naval Research Logistics, vol. 45, pp. 733-750, 1998.
[19] J.H. Holland, Adaptation in Natural and Artificial Systems. Univ. of Michigan Press, 1975.
[20], 2008.
[21] A.S. Jain and S. Meeran, “A State-of-the-Art Review of Job-Shop Scheduling Techniques,” technical report, Dept. of Applied Physics, Electronics, and Mechanical Eng., Univ. of Dundee, 1998.
[22] P. Kapur, A. Ngo-The, G. Ruhe, and A. Smith, “Optimized Staffing for Product Releases and Its Application at Chartwell Technology,” J. Software Maintenance and Evolution, vol. 20, pp.365-386, 2008.
[23] H. Kellerer, U. Pferschy, and D. Pisinger, Knapsack Problems. Springer, 2003.
[24] S. Kirkpatrick, C.D. Gelatt, and M.P. Vecchi, “Optimization by Simulated Annealing,” Science, vol. 220, pp. 671-680, 1983.
[25] A. Land and A. Doig, “An Automatic Method for Solving Discrete Programming Problems,” Econometrica, vol. 28, pp. 497-520, 1960.
[26] D. Mattfeld and C. Bierwirth, “An Efficient Genetic Algorithm for Job Shop Scheduling,” European J. Operational Research, vol. 155, pp. 616-630, 2004.
[27] S. Martello and P. Toth, Knapsack Problems: Algorithms and Computer Implementations. John Wiley & Sons, 1990.
[28] G. Meyers, “A Controlled Experiment in Program Testing and Code Walkthroughs/Inspections,” Comm. ACM, vol. 21, pp. 760-768, 1978.
[29] J.E. Mitchell, “Integer Programming: Branch-and-Cut Algorithms,” Encyclopedia of Optimization, vol. 2, Kluwer Academic, pp. 519-525, 2001.
[30] J. Momoh and G. Ruhe, “Release Planning Process Improvement —An Industrial Case Study,” Software Process: Improvement and Practice, vol. 11, pp. 295-307, 2006.
[31] A. Ngo-The and G. Ruhe, “A Systematic Approach for Solving the Wicked Problem of Software Release Planning,” Soft Computing, special issue on soft computing in software engineering, vol. 12, pp. 95-108, 2008.
[32] F. Padberg, “Scheduling Software Projects to Minimize the Development Time and Cost with a Given Staff,” Proc. Eighth Asia-Pacific Software Eng. Conf., pp. 187-194, 2001.
[33] M. Pawlak, “Application of Evolution Program to Resource Demand Optimization in Project Planning,” Proc. IEEE Int'l Conf. Evolutionary Computation, vol. 1, pp. 435-439, 1995.
[34] A.B. Pyster and R.H. Thayer, “Guest Editors' Introduction: Software Engineering Project Management 20 Years Later,” IEEE Software, vol. 22, pp. 18-21, 2005.
[35], 2008.
[36] G. Ruhe and A. Ngo-The, “Hybrid Intelligence in Software Release Planning,” Hybrid Intelligent Systems, vol. 1, pp. 99-110, 2004.
[37] G. Ruhe and O. Saliu, “The Art and Science of Software Release Planning,” IEEE Software, vol. 22, pp. 47-53, 2005.
[38] O. Saliu and G. Ruhe, “Supporting Software Release Planning Decisions for Evolving Systems,” Proc. 29th IEEE/NASA Software Eng. Workshop, Apr. 2005.
[39] G. Stark, A. Skillicorn, and R. Ameele, “An Examination of the Effects of Requirements Changes on Software Maintenance Releases,” J. Software Maintenance: Research and Practice, vol. 11, pp. 293-309, 1999.
[40] J.M. J van den Akker, S. Brinkkemper, G. Diepen, and J. Versendaal, “Software Product Release Planning through Optimization and What-If Analysis,” Information and Software Technology, vol. 50, no. 2008, pp. 101-111, 2005.
[41] J. van Gurp, J. Bosch, and M. Svahnberg, “Managing Variability in Software Product Lines,” Proc. Landelijk Architectuur Congres, 2000.

Index Terms:
Planning, Management
An Ngo-The, Günther Ruhe, "Optimized Resource Allocation for Software Release Planning," IEEE Transactions on Software Engineering, vol. 35, no. 1, pp. 109-123, Jan.-Feb. 2009, doi:10.1109/TSE.2008.80
Usage of this product signifies your acceptance of the Terms of Use.