In software development, time and budget constraints of software projects almost always impose the challenge of deciding what should be included in the next software version. Most developers have experienced the frustration of awaiting the client's decision about what should be done next in a project. Often a client comprises multiple stakeholders who cannot agree on the priority of features. Here I will introduce you to a tool that provides an easy-to-use method for equitably assigning priorities to different features that also accommodates the views of multiple stakeholders.
Cost-Value Requirements Prioritization
There are a variety of techniques available for prioritizing requirements, among them the cost-value approach, Quality Function Deployment, binary search tree, Planning Game, PROMETHEE, cumulative voting, and the MoSCoW method. The cost-value approach has a reputation for being easy to use. This approach looks at each candidate requirement, the projected cost of implementing the requirement, and then how much benefit the requirement would provide if implemented. The cost-value approach first looks at all pairs of candidate requirements, and then one person assesses a value or cost comparing each requirement in a pair with the other. The downside of the cost-value approach is that it does not help reconcile the differences among stakeholders.
Fortunately, another prioritization option is available that can help a project's stakeholders reconcile their differences. This option, the Requirements Prioritization Spreadsheet, a low-cost ($5) Microsoft Excel spreadsheet-based tool, is simpler to use than the cost-value approach. The tool was developed by Karl Wiegers, an authority in the area of software requirements and author of two books on that topic: Software Requirements and More About Software Requirements.
Using the Requirements Prioritization Tool
The spreadsheet includes a worksheet that uses a simple model to estimate the relative priorities of implementing specific features and allows input from multiple stakeholders. Each proposed feature is rated on four aspects: benefit, penalty, cost, and risk. You can adjust weighting factors for each of these categories. So, for example, if you are working on a very risk-adverse project, you might want to weight the risk aspect more heavily than the others.
Once you've entered rating values for all the features, the spreadsheet calculates the relative priority. You can then sort the list of features in descending order by the Priority column, so that you have an ordered list starting with the highest-priority feature at the top with successively lower-priority items shown further down the list.
The Requirements Prioritization Spreadsheet specifically addresses the need to represent the diverging views of multiple stakeholders by providing a Multiple Stakeholders worksheet; Figure 1 shows an example of this worksheet. The Multiple Stakeholders worksheet refines the basic cost-value model to address the situation where multiple classes of users have different opinions about requirements priorities. The worksheet allows you to make adjustments so that favored user groups can be represented with higher weighting factors. In the example shown in Figure 1, Stakeholder 1 has been given a higher weighting factor than the other two stakeholders.
Figure 1: Multiple Stakeholders worksheet in Requirements Prioritization Spreadsheet
A benefit of using the Requirements Prioritization Spreadsheet is that it provides you with a discrete, measurable way to determine your client's priorities simply by entering values. Using this tool can help accelerate the prioritization process and help you develop a clear picture -- an ordered list -- of what should be considered in the next release. Use of the spreadsheet's Multiple Stakeholders worksheet gives visibility into what different people are thinking in regard to the benefit of a feature's presence versus the penalty if the feature is not included. I encourage you to invest $5 in downloading the spreadsheet to try it out and see for yourself how it might improve your software requirements-prioritization tasks.
Alan Noel is a principal consultant with Microsoft Consulting Services in the Washington, DC, area. He has been working with SQL Server for 13 years.
Email: [email protected]