feature
A Cost–Value
Approach for
Prioritizing
Requirements
JOACHIM KARLSSON
Focal Point AB
KEVIN RYAN
University of Limerick
Deciding which requirements really matter is a difficult task and one increasingly demanded because of time and budget constraints. The authors developed a cost–value approach for prioritizing requirements and applied it to two commercial projects.
IEEE SOFTWARE
D
eveloping software systems that meet stakeholders’ needs and expectations is the ultimate goal of any software provider seeking a competitive edge. To achieve this, you must effectively and accurately manage your stakeholders’ system requirements: the features, functions, and attributes they need in their software system.1 Once you agree on these requirements, you can use them as a focal point for the development process and produce a software system that meets the expectations of both customers and users. However, in realworld software development, there are usually more requirements than you can implement given stakeholders’ time and resource constraints.
Thus, project managers face a dilemma: How do you select a subset of the customers’ requirements and still produce a system that meets their needs?
0740-7459/97/$10.00 © 1997 IEEE
Authorized licensed use limited to: Norges Teknisk-Naturvitenskapelige Universitet. Downloaded on August 19, 2009 at 06:20 from IEEE Xplore. Restrictions apply.
67
.
25
High
Value (percent)
20
15
Medium
10
Low
5
0
0
5
10
15
Cost (percent)
20
25
Figure 1. Using AHP, you can calculate each candidate requirement’s relative value and implementation cost and plot them on a cost-value diagram, such as the one shown here.
Most software organizations carry out this selection process informally, and quite frequently produce software systems that developers, customers, and users view as suboptimal. Without techniques to make these crucial choices, this outcome is hardly surprising. Indeed, despite the recent rapid and welcome growth in requirements engineering research, managers still don’t have simple, effective, and industrially proven techniques for prioritizing requirements. A recent survey2 shows that few companies know how to establish and communicate requirements priorities; another3 identified prioritization as a key but neglected issue in requirements engineering research.
Clear, unambiguous knowledge about requirement priorities helps you focus the development process and more effectively and efficiently manage projects.
It can also help you
♦ make acceptable tradeoffs among sometimes conflicting goals such as quality, cost, and time-to-market;4 and
♦ allocate resources based on the requirement’s importance to the project as a whole.
Finally, when time-to-market is particularly important, knowing how to rank your requirements can help you plan releases by indicating which functions are critical and which can be added (and in what order) over successive releases.
We have developed an analytical tool
68
for prioritizing requirements based on a cost–value approach. This tool can help you rank candidate requirements in two dimensions: according to their value to customer and users, and according to their estimated cost of implementation.
Our method has been successfully applied in two commercial telecommunications software development projects.
A COST–VALUE APPROACH
A process for prioritizing software requirements must, on one hand, be simple and fast, and, on the other, yield accurate and trustworthy results. If both of these conditions are not met, the process is unlikely to be used in commercial software systems development. The prioritizing process also must hold stakeholder satisfaction as both the ultimate goal and the guiding theme. Shoji Shiba and his colleagues argue that there are three main factors in stakeholder satisfaction: quality, cost, and delivery.5