A pattern-based release planning methodology for market-driven software / Amir Seyed Danesh - Amir, Seyed Danesh (2016)

(untitled)
In software development, release planning is performed in order to select important features and requirements based on resource and technical constraints and the relationships between requirements. Several methods have been developed for release planning, but the most challenging part of release planning methods is dealing with unique complexities and varying characteristics of problem scope and domain. This has made the existing methods and approaches only applicable to a limited range of software projects. As a result, a more flexible and adaptive approach is required for release planning that can be customized in accordance to different domains and can be employed in a variety of software development projects. Achieving a highly customized release planning methodology requires an effective planning process that covers all release planning tasks and can be customized according to project specifications for each parameter. This study aims to, firstly, assemble a general and comprehensive process for release planning which covers all the important tasks and, secondly, identify parameters which can be used to customize the process for various projects, and thirdly introduce and apply release planning patterns based on process model steps and the identified parameters to facilitate customization. Thus, available release planning approaches have been studied and four common tasks i.e. requirements prioritization, resource estimation, release pre-planning, and trade-off analysis were identified and assembled in the form of a process model. Subsequently, various relevant parameters for each step which are related to project specifications were identified. In order to customize each step of the process model for various projects, each parameter was determined precisely and its current instances were identified. Some of the parameters are shared between process model steps. The notion of "pattern" was employed in order to facilitate the customization of the steps of the process model and several patterns were identified. Every release planning pattern has constraints based upon parameter instances of the step of process model, and suggests a solution as the selected method to apply to the step. Using this notion, the release planner only has to select a release planning pattern based on selected parameters that suit his circumstance. To validate the proposed methodology, two methods are used. At first, five software companies with 31 projects were used to implement method to their projects. The companies were asked to apply the pattern-based methodology to at least two releases and, for each step of the methodology, apply PRP tool suggested method. Secondly, numbers of 13 experts in the software development domain are answered questions in a survey on the results of the methodology and their satisfaction. Results showed that in most cases -more than 87% of the cases, the methodology suggested by the pattern release planner produce better releases and make the release planning process easier and faster than those used previously.