Prioritizing Requirements


After you have some initial estimates in place, you should prioritize your requirements. Customers are the only people who can prioritize requirements, so you should gather requirement prioritizations in a workshop setting. MSF Agile Scenario and Quality of service work item types allow you to specify the priority of a requirement by using the Rank field to capture a numeric value that you can use to help capture requirement prioritization. The Rank field is a free text field that allows you to enter any value you want. For this reason, you must decide upon a prioritization method that will guide how you and your customers rank requirements.

Bucketing Priority

One method of requirement prioritization is to find a requirement that has medium importance and give it a rank value of 500. All requirements that you and your customer decide are more important than the baseline requirement will have a higher rank, starting with multiples of 100 such as 600, 700 and so on. The same will be true for requirements that are deemed less important; you will provide values less than the value you provided for your baseline requirement. Why increments of 100? Prioritization should be done incrementally using a technique called bucketing. For example, all requirements you assign 600 to get placed in the 600 bucket. From this point, you can fine-tune your prioritization in the 600 bucket of requirements by using the same general technique just described: find a requirement in the 600 bucket that is average for that group and assign it a value of 650. Compare all other requirements in the 600 group to the 600 group baseline you just selected, resulting in requirements of rank 610, 620, 630, and so on. You can continue this refinement process as long as you want or defer requirement priority refinement until future iterations.

Calculating Priority

Another way of prioritizing requirements is to derive the rank value from a number of other indicators of a requirement. Karl Wiegers in 2003 suggested using a prioritization method based on the value, cost, and risk properties of a requirement. In this method, the rank value for each work item could be a calculated value that would take into account the relative benefit of the requirement compared to other requirements, the relative penalty to the organization of not releasing the requirement, the relative cost of the requirement, and the relative risk of building the requirement compared to other requirements. This method produces some great results and is much less subjective than simply assigning ranks to requirements. The disadvantage, however, is that this method is also much more difficult to implement in Visual Studio Team System. In Chapter 7, you will learn how you can add fields to the work items provided out of the box. However, field level calculations, which would be required to calculate priority based on the four dimensions mentioned, are not supported by work items unless you have Service Pack 1 for Visual Studio 2005 and Visual Studio Team System installed, which allows you to enhance default work items by using custom field controls. This option is beyond the scope of this book. If you do want to use Wiegers’ method or some other method to derive rank values, your only option is to use Office Excel. With Office Excel, you can add your own columns to the list of work item fields to capture additional information such as benefit, penalty, cost, and risk in addition to an extra field that would calculate the rank value based on those four requirement properties. You would then need to manually copy and paste the value from the calculated field into the Rank field for each work item.

To set up Office Excel to help calculation of rank, perform the following steps. Note that this example does not implement the entire method set out by Wiegers, but it will give you an idea of how to take advantage of the ability of Office Excel to perform calculations to drive values stored in work items.

  1. Start by linking a work item query with an Office Excel workbook. In Team Explorer, right-click the All Scenarios work item query and choose Open in Microsoft Excel from the shortcut menu.

  2. When Office Excel is launched and all of the scenarios are listed, for convenience, move the Rank column all of the way to the right. To do this, in Office Excel, select Team | Choose Columns and move the Rank column to the bottom of the Selected columns list.

  3. Next, add four new columns to the list to capture values for benefit, penalty, cost, and risk. To perform this step, simply type Benefit in the cell to the right of the Rank column heading. If you add a cell directly adjacent to the last column in the work item list, the column will be made part of the work item list, which will affect how the formula will be stored and calculated. Continue this process until you have added a new column for each of the four new values.

  4. Add one more field called Calculated Rank next to the four new columns you just created in step 3.

  5. Type values in the Benefit, Penalty, Cost, Risk columns adjacent to each of your scenarios.

  6. Select the first cell under the new Calculated Rank column heading to add a formula. The formula to enter will be (Benefit + Penalty) / (Cost + Risk), where Benefit, Penalty, Cost, and Risk are the cell references that correspond to the adjacent cells that hold those values. For example, if you followed the above instructions, O3 will be the cell that will hold the calculated rank value, and the formula for this cell will be =(K3+L3)/(M3+N3).

  7. Select the cell populated in step 6 and all other Calculated Rank cells in the list. From the Edit menu, selected Fill | Down to copy the formula from the first cell to the remaining cells.

  8. Copy each scenario’s Calculated Rank value to the Rank cell by typing Ctrl+C; move to the Rank cell and choose Edit | Paste Special | Paste Values.

    Note 

    If you try to type a formula directly into a cell that displays Rank or any other work item field, the formulas will be discarded and replaced with literal values when you publish or refresh work item data from Visual Studio Team System.

The method you choose will be entirely up to you and your team. What you are trying to achieve is an accurate representation of feature priority from the perspective of the customer. Weigers’ method adds multiple dimensions to this problem to better blend the results, especially if there is a possibility of requiring input from many different, and sometimes competing, customer representatives to your project. Our recommendation is to keep this process as simple as you can without reducing value to your team or your customer.

Requirement Reprioritization

After you and your team have gone through a prioritization exercise of your requirements, you should also consider how you will ensure that you know when these prioritization values change throughout the life of your project. We all know that change will happen, and you should try to set up processes that anticipate and absorb change instead of react to it. One great way of trying to handle changing priorities as you progress through your project is by conducting requirement prioritization reviews as an ongoing part of the project. Iteration planning meetings are a great time to review requirement prioritization with your customer and your team. Don’t be afraid to have your customers change priorities on requirements because this is a way of fine-tuning the value you are providing to them, an aspect you can only estimate at the beginning of the project. Of course, changing priorities may have a ripple effect on the entire project providing yet another reason to keep all of these activities simple and easy to change.




Managing Projects with Microsoft Visual Studio 2005 Team System
Managing Projects with Microsoft Visual Studio 2005 Team System
ISBN: 735622167
EAN: N/A
Year: 2007
Pages: 93

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net