Choosing a Suitable Requirement Prioritization Method: A Survey - Pedro A. Castillo-Valdivieso; Esraa Alhenawi; Shatha Awawdeh; Ruba Abu Khurma; Maribel García-Arenas; Amjad Hudaib (Journal of Computer Science and Technology, 2024)
Software requirements prioritization plays a crucial role in software development. It can be viewed as the process of ordering requirements by determining which requirements must be done first and which can be done later. Powerful requirements prioritization techniques are of paramount importance to finish the implementation on time and budget. Many factors affect requirement prioritization such as stakeholder expectations, complexity, dependency, scalability, risk and cost. Therefore, finding the proper order of requirements is a challenging process. Hence, different types of requirements prioritization techniques have been developed to support this task. In this survey we propose a novel classification that can classify the prioritization techniques under two major classes: relative and exact prioritization techniques class where each class is divided into two subclasses. We also provide an overview about fifteen different requirements prioritization techniques that are classified under our proposed classification. Moreover, we make a comparison between methods that are related to the same subclass to analyze their strengths and weakness. Based on the comparison results, the properties for each proposed subclass of techniques are identified. Depending on these properties, we present some recommendations to help project managers in the process of selection the most suitable technique to prioritize requirements based on their project characteristics.