Requirements Prioritization Strategies
REQUIREMENTS PRIORITIZATION is the process of managing the relative importance and urgency of different requirements to cope with the limited
resources of projects. Adequate prioritization ensures that the most critical requirements are addressed immediately in case time or budgets run out.
A common objection by stakeholders to requirements prioritization is that all requirements are important. They
often say, "Do I really have to prioritize the requirements? All of them are really important to us." We can respond to this argument with the simple answer, "No, of course not. You don't have to prioritize requirements, as long as you have unlimited time and resources." And that, of course, is what we don't have on projects: unlimited time and unlimited
resources (people, money, etc.). Prioritization is a way of dealing with the economics of projects: how do we allocate limited resources to maximize benefit?
Who Prioritizes?
Prioritization must be done in collaboration with the stakeholders (customer, product owner, project
sponsor, and users) as early as possible so that alternatives can be explored. Developers and stakeholders must work together as they often have conflicting views and needs.
Prioritization Guidance
A common trap is to let the stakeholders choose the priorities without any guidance. In those situations, the stakeholders likely tag most requirements as being critical with only a few as being important but less than critical. The analyst must guide the stakeholders through the prioritization
process.
The analyst should challenge the customer:
• What are the consequences to the business objectives if this requirement were omitted?
• Is there an existing system or manual process that could compensate?
• Why can't this requirement be deferred to the next release?
• What business risk is being introduced if a particular requirement cannot be implemented right away?
Asking these questions allows the analyst to clarify whether a requirement is truly needed, if it can be deferred until a later release, or if it is really another project.