Conceptual scheduling model and optimized release scheduling for agile environments - SzAke, Akos (Information and software technology, 2011)
Release scheduling deals with the selection and assignment of deliverable features to a sequence of consecutive product deliveries while several constraints are fulfilled. Although agile software development represents a major approach to software engineering, there is no well-established conceptual definition and sound methodological support of agile release scheduling. To propose a solution, we present, (1) a conceptual model for agile scheduling, and (2) a novel multiple knapsack-based optimization model with (3) a branch-and-bound optimization algorithm for agile release scheduling. To evaluate our model simulations were carried out seven real life and several generated data sets. The developed algorithm strives to prevent resource overload and resource underload, and mitigates risks of delivery slippage. The results of the experiment suggest that this approach can provide optimized semi-automatic release schedule generations and more informed and established decisions utilizing what-if-analysis on the fly to tailor the best schedule for the specific project context.