After selecting your counter measures, you then need to prioritize the requirements. Identify conflicts and clashes, find risks, evaluate for likelihood and consequences. Then look at the alternatives, while considering the weighted matrices that we just discussed. To make comparisons and decisions more effective you can use multiple techniques to come up with prioritization groupings. First, you can order your requirements based on some kind of ordered levels of equal priorities. Not everything is going to be the same, so group them, and within those groups, keep the numbers small. You can also characterize qualitatively rather than quantitatively. In other words, list groups of requirements as higher or lower than others. Do make sure that the requirements that are being compared are actually comparable. They should have the same granularity, and they should have the same abstraction level for a fair comparison. You should also guarantee that requirements are not mutually dependent. This means that you should be able to move the requirements around in any order. You can get rid of some, you can add some, and there will be no consequence. Not only does this help in prioritization, but this also assists you when you get to the testing phase. And in testing, we want to write independent test cases. If we have independent requirements, then we can go straight from that into our independent test cases. Negotiate your organization with your stakeholders. A simple and straightforward way of setting priorities amongst requirements is to gather the key players in the decision process, and ask them to rank requirements under the principles for effective prioritization. The result of this ranking may be highly subjective, and it could produce arbitrary, inadequate or inconsistent results. There are some ways for you to start organizing everything though. One systematic approach for requirements prioritization is called the value-cost prioritization. Value-cost prioritization requires three steps. First, estimate the relative contribution of each requirement to the project's value. Then estimate the relative contribution of each requirement compared to the project's cost. Then graph that. Plot contributions on your value-cost diagram, which is shown in an example here. This shows what requirements fit what priority level according to a value-cost tradeoff. In the plot that's right here, the x-axis represents the cost percentage, and the y-axis is representing the value percentage. So now we need to ask, how do we estimate the relative contribution for the value in the cost, in order to make this chart? To calculate the relative contribution of each requirement to the project's overall value and cost, we can use a standard technique based off of decision theory. This is a process called AHP, or the analytic hierarchical process. If you want to apply the entire AHP process, you need to do it twice. Once, you do it for the case where the comparison criterion is based on the value, and in the second case, the comparison criterion is compared to the cost. The goal is to determine in what proportion each requirement contributes to each of the criteria. In the process, you estimate how a requirement's contribution to a particular criterion compares to another requirements contribution to the criteria. Based on this comparison you build a matrix based on those decisions. The analytic hierarchical process has two key steps. In the first, we scale the contributions between the requirements. In general, we try to use some kind of odd scale, so that there's no middle ground. In this example, we have 1 for it contributes equally, 3 for it contributes slightly more, 5 it contributes strongly more, 7 if it contributes very strongly more, and 9 if it contributes extremely more. We then compare the requirements pairwise. We build an N by N matrix in which Rij estimate how Ri's contribution compares to Rj. In the example here, we have a comparison matrix for our meeting scheduler. The criterion are instantiated based on the project's overall value. So say we have two main requirements. One is to produce the best possible schedule fitting constraints of participants compared to the value compared to a bunch of other things. Let's say in this case, providing multi-lingual support, there we would enter a 9. Making participants available for the meeting, making sure this meeting is scheduled properly is much more important to our customers than having multi-lingual support. So producing an optimal date contributes equally to producing an optimal date, and that's obvious, thus, that cell gets a 1. Producing an optimal date contributes slightly more to the project, compared to handling preferred locations. Producing an optimal date contributes strongly more to the project, compared to parameterizing conflict resolution. Also, producing an optimal date contributes very strongly more to the project, compared to just having a meeting assistant. Multi-lingual communication is least important compared to producing an optimal date. For each of the rows in this matrix complete the comparisons. Notice in this diagram that there is a symmetric element. That symmetric element is the reciprocal. It allows for automated calculation of some of the cells, as more and more of your estimations are made. As you can see in the line for handle preferred locations, numbers do not need to be unique. These are all just estimations that are based on your stakeholders opinions, and they are used to calculate overall value and priority in a mathematical way, which we shall soon discuss. In step 2 of AHP, you are going to evaluate how the criterion distribute amongst all the requirements. The criterion distribution is given by the eigenvalues of the comparison matrix. These eigenvalues are estimated by averaging over normalized columns, thus, the first step is to normalize the columns. Then you average across the lines to calculate the contribution of a requirement based on some particular criteria. As an example, if we go back to our meetings scheduler to normalize, we first look up all values in a column. We look up R1,1, R1, R2 and so on, then we produce new values. You likely want to do this in a separate table, so that no data's lost, and also, allows for more easy calculation. You produce new values for each cell in your table. The new value is the value of the original cell divided by the column sum. Now, please, take a minute and calculate these yourself given this current table. After normalizing, determine the relative value. The estimated proportion in which requirement R1 contributes is obtained by taking the sum of the elements on the if line of the normalized matrix divided by the number of the elements. In this example, this means that the requirement for determining a best schedule, in other words, an optimal date, is seen to account for 49% of the project's overall value. On the other side, the requirement to provide multi-lingual support is only 3%. Review this yourself and review the table. Given the numbers produced by AHP, you can then create a value-cost diagram. Now, remember that the AHP process should be done in two major steps. The first, we do all of the AHP process based off of value. In the second, we do the full AHP process based of off cost. In our example, we considered only value. Given these calculations, plot the results in a value-cost diagram. Where cost lies along the x-axis and value is given along the y-axis. From this, you can create divisions to show high priority, medium priority and low priority of all the requirements that are under consideration. For example, here we see that the ability to produce optimal dates and handled preferred locations are emerging at the higher priority level, whereas multi-lingual support is way down here. In performing this prioritization process there is the potential for inconsistent estimations in the comparison matrix. For consistent comparison, pairwise requirements orderings must be transitive, this will help you. What I mean by a transitive ordering is that if R1 is of greater value than R2, and R2 is of greater value than R3, then R1 should be of greater value than R3. The AHP also provides means for assessing consistency ratios, and comparing them with acceptability thresholds to help us to avoid inconsistent estimations. This is especially important when we're calculating cost rather than value. Now, you maybe thinking, well, AHP, we're doing a whole bunch of pairwise comparisons. I have a ton of requirements, this is a problem, and yes, yes it is. Scalability is another huge challenge. Given that you are working with stakeholders in order to estimate your comparisons for all requirements in the chart, some are going to need to be left out. No stakeholder is going to sit there with you and sort through hundreds or thousands of requirements estimating both value and cost. It's just not going to happen, thus, you need to scale back a bit. Work with subsets of requirements and subsets of alternatives. Given those subsets, select only small groups of stakeholders with whom to discuss the prioritizations. The stakeholder should care about that portion of the requirements, so that they are actually motivated to give you valuable information. Group sessions and also, possibly questionnaires, are probably the most likely elicitation techniques that you can use to help you out here. There are also a number of AHP techniques that can be used to reduce the number of pairwise comparisons that are necessary to create a complete value-cost diagram. Please see the additional reading for at least one example of how we can reduce the cost of AHP, and make it a little bit more scalable. And also, please see the YouTube video attached to see an AHP in practice example using Excel.