Prioritizing requirements is one of the most important and influential steps in the creation of a software product. The process is iterative; it takes place during the entire agile software development. Through prioritizing requirements, it is decided which requirements are to be developed, in which order, and why.
The aim of this study is to investigate how companies that design software prioritize requirements and to identify which prioritization methods they might use during this process. The purpose of this study is to gain an understanding for why a well-balanced prioritization is important, which specific prioritization factors give value to a product, as well as identifying how these factors are related to the result. The purpose is also to investigate the difficulties that exist in a prioritization process, and to create an overview of some of the most used prioritization methods in agile software development.
This study is conducted in collaboration with the software company Monitor ERP in order to analyze the company's prioritization processes used to develop their business management system Monitor. The method used is a qualitative study that consists of observations of meetings about prioritization processes, and semi-structured interviews. Processing of collected material was done by organizing, analyzing, and compiling results according to concepts and categories that emerged from the literature study. The results documents work processes, common goals, prioritization aspects and challenges in the requirements prioritization at Monitor ERP.
A well-balanced prioritization proved to be important to be able to deliver the right functionality on time and to be able to provide dependable estimates of development, which in turn leads to customers gaining confidence in both the product and the company. A number of prioritization factors that give value to the Monitor software were identified, many of which contribute to increasing customer satisfaction and product quality. Monitor ERP does not use any specific prioritization methods, but the development philosophy Minimum Viable Product is used as a basis for their prioritization choices. During the prioritization process, challenges such as limited resources, unpredictable tasks, difficulties with time estimation, and a challenge in balancing customer value and customer focus were experienced.