Optimization of Software Release Planning Considering Architectural Dependencies, Cost, and Value
IEEE Computer Society
This article appears in IEEE Transactions on Software Engineering, Volume 48, Number 4, pages 1369-1384, April 2022, doi: 10.1109/TSE.2020.3020013.
Within any incremental development paradigm, there exists a tension between the desire to deliver value to the customer early and the desire to reduce cost by avoiding architectural refactoring and rework in subsequent releases. But the development paradigm lacks an analytical framework that quantifies opportunities and risks of choosing one or the other of these strategies or a blend of the two. This article demonstrates the use of design structure and domain mapping matrices for analyzing architectural dependencies and proposes an optimization-based decision-making technique to support effective release planning. The optimization models recommend the order in which architectural elements and features should be implemented across different releases so as to (a) minimize rework cost, (b) maximize early value delivery, or (c) optimize an integrated measure of cost and value. These analytic models can be applied earlier in the lifecycle and, hence, provide timely information about the progress and changes that occur at each iteration.