Multi-Objective Iteration Planning in Agile Development
An agile software project typically has a number of iterations (e.g. sprints in Scrum), in each of which the development team designs, implements, tests and delivers a distinct product increment. An important activity in agile development is iteration planning where the team needs to decide what should be done (in terms of issues or user stories) for the upcoming iteration. In this paper, we propose a multi-objective search-based approach to support the team in making such a decision. Our approach employs evolutionary techniques to iteratively generate candidate selections of issues for a given iteration, and search for the optimal selection(s). The search is guided simultaneously by two objectives: maximizing the business value which the team delivers in the iteration while maximizing the alignment with regard to the iteration's original goal. Our evaluation of 233 iterations from six large open source projects demonstrates the effectiveness of our approach.