Requirement prioritization is recognized as an important decision-making activity in requirements engineering and software development. Requirement prioritization is applied to determine which requirements should be implemented and released. In order to prioritize requirements, there are several approaches/techniques/tools that use different requirements prioritization criteria, which are often identified by gut feeling instead of an in-depth analysis of which criteria are most important to use. Therefore, in this study we investigate which requirements prioritization criteria are most important to use in industry when determining which requirements are implemented and released, and if the importance of the criteria change depending on how far a requirement has reached in the development process. We conducted a quantitative study of one completed project from one software developing company by extracting 32,139 requirements prioritization decisions based on eight requirements prioritization criteria for 11,110 requirements. The results show that not all requirements prioritization criteria are equally important, and this change depending on how far a requirement has reached in the development process.
翻译:需求优先级排序被认为是需求工程和软件开发中的一项重要决策活动。它用于确定哪些需求应该被实现和发布。为了对需求进行优先级排序,存在多种方法、技术及工具,它们使用不同的需求优先级排序标准,而这些标准往往基于直觉而非对哪些标准最为关键的深入分析来确定。因此,在本研究中,我们探讨了在工业实践中,当决定哪些需求应被实现和发布时,哪些需求优先级排序标准最为重要,以及这些标准的重要性是否会随着需求在开发过程中所处阶段的不同而改变。我们通过对一家软件开发公司的一个已完成项目进行定量研究,提取了基于八项需求优先级排序标准对11110个需求所做的32139次优先级排序决策。结果表明,并非所有需求优先级排序标准都同等重要,并且这种重要性会随着需求在开发过程中所处阶段的不同而变化。