Incremental software development replaces monolithic-type development by offering a series of releases with additive functionality. To create optimal value under existing project constraints, the question is what should be done when? Release planning is giving the answer. It determines proper priorities and assigns features to releases. Comprehensive stakeholder involvement ensures a high degree of applicability of the results. The formal procedure of release planning is able to consider different criteria (urgency, importance) and to bring them together in a balanced way. Release planning is based on (estimates of) the implementation effort. In addition, constraints related to risk, individual resources necessary to implement the proposed features, money, or technological dependencies can be easily adopted into the release planning approach presented in this article.
Releases are known to be new versions of an evolving product. However, the idea of a release is not restricted to this, but can be applied to any type of periodic development where a release would correspond to an annual or quarterly time period. The special case of one release called prioritization is of even larger applicability wherever competing items have been selected under additional constraints.
An informal and later a formal problem description of the release planning problem is given. Ad hoc or just experience-based planning techniques are not able to accommodate size, complexity and the high degree of uncertainty of the problem. Plans generated in this way will typically result in unsatisfied customers, time and budget overruns, and a loss in market share. As a consequence of the analysis of the current state-of-the practice, we propose a more advanced approach based on the strengths of intelligent software engineering decision support.
Existing release planning methods and tool support are analyzed. An intelligent tool support called ReleasePlanner® is presented. The web-based tool is based on an iterative and evolutionary solution procedure and combines the computational strength of specialized optimization algorithms with the flexibility of intelligent decision support. It helps to generate and evaluate candidate solutions. As a final result, a small number of most promising alternative release plans are offered to the actual decision-maker. Special emphasis is on facilitating what-if scenarios and on supporting re-planning. Different usage scenarios and a case study project are presented. Practical experience from industrial application of ReleasePlanner® is included as well. Future directions of research are discussed.