Excellent requirements prioritization is essential to any well-run project. It ensures that the project focuses on the most important elements first, and that everyone understands and agrees regarding what the project’s most important elements are. Good prioritization of requirements will also ensure that engineers, programmers and database analysts develop a project’s most critical elements in sync with the business needs.
BABOK 2.0 devotes a whole section to prioritizing requirements, noting, “Prioritization of requirements ensures that analysis and implementation efforts focus on the most critical requirements.” 1Another writer notes, “Establishing each chunk of functionality’s relative importance lets you sequence construction to provide the greatest product value at the lowest cost.” 2Requirements prioritization enables an analyst to ensure that requirements are ranked and implemented in a top-down approach.
Some organizations choose to eschew any type of requirements prioritization, effectively leaving the shape and implementation of their project to chance. This approach ignores some basic truths about requirements engineering, which are noted by Donald Firesmith in his article “Prioritizing Requirements”: some requirements are more important than others and therefore should be given higher priority; most projects do not have the dedicated to staff to implement all features at once; and many long-term projects experience shifts in priority as business needs change.3In virtually all projects, time and resources will dictate that only a certain number of requirements can be addressed at any given time. Therefore, it behooves the analyst to ensure that the requirements addressed at any specific juncture are the ones he or she believes to be the most important. Business Considerations in Requirements Prioritization
Business Considerations in Requirements Prioritization
When it comes to the process of assigning a requirement’s priority, any requirement may be prioritized at any point in its lifecycle, according to BABOK. But regardless of when it is done, before a requirement can be prioritized, an analyst must consider what is most important from a business standpoint. There are a number of possible business considerations , including value, cost, risk, difficulty of implementation, likelihood of success, stakeholder agreement and urgency, each of which is described in more detail below. Often, a combination of these methods is used when considering the business need; rarely is one alone used in a vacuum.
The above business considerations will factor in when one employs a prioritization method to logically rank requirements’ priority.
Some of the more commonly used prioritization methods include:
Binary Search Tree – While a binary search tree is used in many other methods of information gathering, this approach is designed specifically for prioritizing requirements. Starting with one requirement as the root node, this method systematically compares each succeeding requirement to the root node, establishing child nodes—essentially creating a long list of prioritized requirements.6
Kano Analysis – Developed by Noriaki Kano, the goal of this method is to isolate customer requirements from incremental requirements. This marketing-savvy method assigns one of four categories to each requirement (each of which has a strong focus on the customer’s perspective): (1) Surprise and delight, (2) More is better, (3) Must be, (4) Better not be. For more information about this method, visit http://www.pragmaticmarketing.com/publications/magazine/4/3/0605ss.7
The Money Game – Coined by Larimar Consulting, this method has the analyst assemble stakeholders and give them each a certain amount of currency (board game dollars or coins, for example). Each stakeholder has fewer dollars than the project has requirements, and the stakeholders must spend their dollars on the requirement(s) that they want most. Once the analyst has counted the money, she can determine which requirements have the highest value to the group. 8
Numerical Assignment Technique – This method uses a straightforward scale of 1 (lowest priority) to 5 (highest priority). Stakeholders rank each requirement using the scale. Using their feedback, the analyst then gets a numerical average for each requirement and prioritizes them accordingly.9
Planning Game – Similar to the Numerical Assignment Technique in that it uses a numerical scale (but uses 1 to 3 rather than 1 to 5), this method uses customer input rather than business stakeholder input to glean an average for each requirement and then rank them by priority.10
100-Point Method – In this method, each stakeholder is given 100 points to “spend” on the requirements set any way they wish. For example, if a stakeholder strongly feels that only two requirements are truly needed, he can spend 50 points on each. However, if another stakeholder feels that 10 requirements are needed, but that two are more important than the others, she might spend 5 points each on the 8 less-important ones, and 30 points each on the two that are more important in her view.11
Theory W – This method uses negotiation and continual risk assessment to ensure that every stakeholder has a “win” in the project—a requirement or requirements that he or she feels strongly about deploying on schedule. To accomplish this, each stakeholder must privately rank the entire list of requirements and decide which are truly most important and, and among those, which they might be willing to give up. Then as a group, requirement priorities are negotiated and subsequently protected from risks throughout the project.12
Requirements Triage – Requirements Triage can be a bit complicated since it goes through several steps, but those steps can do a great deal to ensure the business success of a project. The steps include factoring in what resources are necessary to complete a requirement and determining which requirements will best ensure a product’s commercial success. Because of the complex nature of this approach, it is recommended that analysts do additional research on this method before implementing it.13
Wiegers’ Method – Customer-focused and involving a bit of math, Wiegers’ Method calculates a requirement’s priority by dividing its value “by the sum of the costs and technical risks associated with implementation.” Using a scale of 1 to 9, a requirements value is assessed by determining both its importance to the customer and the consequences that would incur if that requirement were not implemented.14
Requirements Prioritization Framework – Complex but thorough in its approach, the Requirements Prioritization Framework is the only method mentioned here that assigns different stakeholders different levels of importance (and therefore their requirements prioritization different levels of importance). This approach also has the analyst rank requirements, allows stakeholders to rank requirements, and looks for deviations and possible cliques among stakeholders. 15
AHP – This method uses a pair-wise comparison to calculate the value and cost of each requirement, and then plots them each on a cost-value diagram. It is “a method for decision making in situations where multiple objectives are present.” Tools are available to support this method for analysts who are interested in exploring it. 16
Once an analyst has chosen the method(s) by which to select which requirements have highest priority, she should turn to her colleagues and other stakeholders for input to ensure that everyone is in agreement regarding the emphases of the project. She should also ensure that they understand and agree on the method(s) by which the requirements will be prioritized.
Stakeholder Input in Prioritization
In order for everyone to be on the same page regarding which requirements have the highest priority, an analyst must get stakeholder input. According to an IBM article, “Prioritization is often a negotiation process, one that involves a wide range of project stakeholders including your users, user management, senior management, developers, and your operations and support departments.” 17BABOK notes that the proper stakeholders from whom to elicit input may include subject matter experts, project managers, and project sponsors.18Other stakeholders may be appropriate to include in assessing priority, depending on the project’s needs. The process of getting stakeholder buy-in on assigned priority may be done via requirements review, in-person interviews, workshops, a meeting, or any other method that best fits the needs of the project.
A project may use any prioritization designations that make the most sense to the analyst and her stakeholders, or that the parent organization has already established as a convention. As with most methods and formats in requirements, it is a good idea for an organization or business analysis department to adopt one or more standard convention for designating requirements if none have been chosen. This will ensure that programmers, engineers, and database analysts are able to get in the habit of understanding requirements prioritization at a glance. In addition to some of the specific the designations that go along with the methods described above, a few designation ideas that writers have suggested include:
High, medium, low19
Essential, conditional, optional20
Numerical or scale ratings21 22
These designations may be headers for sections so that all requirements under one section would have that designation. Or, requirements may be placed in some other order that follows an organization’s conventions, and the designation may be placed next to each requirement. Either method will assist engineers and developers in knowing which pieces of the project deserve the highest priority and therefore the most of their attention.
References for Further Study
For a more detailed study into prioritizing requirements, please refer to:
1A Guide to the Business Analyst’s Body of Knowledge® (BABOK® Guide), Version 2.0, International Institute of Business Analysis, Toronto, Ontario, Canada, ©2005, 2006, 2008, 2009.
2“First Things First: Prioritizing Requirements,” by Karl E. Weigers. Software Development, September 1999. http://www.processimpact.com/articles/prioritizing.html
3“Prioritizing Requirements” by Donald Firesmith. Journal of Object Technology, vol. 3, no. 8, September-October 2004. http://www.jot.fm/issues/issue_2004_09/column4/
4“Practical Steps for Project Managers to Prioritize Requirements Using ROI,” Accompa, 2010. http://www.accompa.com/product-management-blog/2008/06/24/practical-steps-for-product-managers-to-prioritize-requirements-using-roi/
5A Guide to the Business Analyst’s Body of Knowledge® (BABOK® Guide), Version 2.0, International Institute of Business Analysis, Toronto, Ontario, Canada, ©2005, 2006, 2008, 2009.
6“Requirements Prioritization Introduction,” by Nancy Meade. Carnegie Mellon University, 2008. https://buildsecurityin.us-cert.gov/daisy/bsi/articles/best-practices/requirements/545-BSI.html
7“Prioritizing Software Requirements with Kano Analysis,” by Scott Sehlhorst. Pragmatic Marketing, 2010. http://www.pragmaticmarketing.com/publications/magazine/4/3/0605ss
8“Prioritizing Requirements,” Larimar Consulting. http://blog.larimarconsulting.com/2009/12/prioritizing-requirements/
9“Requirements Prioritization Introduction,” by Nancy Meade. Carnegie Mellon University, 2008. https://buildsecurityin.us-cert.gov/daisy/bsi/articles/best-practices/requirements/545-BSI.html
17“Web service programming tips and tricks: Prioritize Your System’s Requirements,” by Scott W. Amber. http://www.ibm.com/developerworks/webservices/library/ws-tip-reqs.html#h3
18A Guide to the Business Analyst’s Body of Knowledge® (BABOK® Guide), Version 2.0, International Institute of Business Analysis, Toronto, Ontario, Canada, ©2005, 2006, 2008, 2009.
18 “First Things First: Prioritizing Requirements,” by Karl E. Weigers. Software Development, 1999. http://www.processimpact.com/articles/prioritizing.html
22 “Prioritizing Requirements,” by Donald Firesmith. Journal of Object Technology, vol. 3, no. 8, September-October 2004, pp. 35-47. http://www.jot.fm/issues/issue_2004_09/column4/