Seilevel
Seilevel Home
Back to Blog Home - Requirements Defined

Thursday, July 31, 2008

How To Prioritize Your Software Requirements, Part 1

One would think that since requirements are the necessary and sufficient list of behaviors needed to meet the business goals, prioritization is a non-issue. Everything is necessary, so why prioritize? Prioritization becomes an issue in the following ways:
  • The initial vision is too costly or time-consuming to implement, we must scale back.

  • The development effort will be done iteratively, and we must prioritize for the iterations (roadmap).

  • Unfortunately, prioritization is also occasionally a proxy for controlling scope; the initial list of requirements represents more than the necessary features, so must be prioritized.
When you do need to prioritize requirements, don’t bother trying to put them in order. In the end, it doesn’t matter if one requirement should be ranked a little higher or lower than another requirement. You just want to figure out what to build. If you absolutely need 5 requirements fulfilled, ordering them 1-5 really doesn’t have any benefit. Determining that the 5 are absolutely necessary does.

You should use priority categories instead of an ordered list. The classic “high, medium, low” is easy, but doesn’t really map well to the real world. “Medium” is often just code for “not in this release, but not a bad idea”.

More realistically, you can use MoSCoW ratings (must, should, could and won't have). You may need to further prioritize the “should” or "could" requirements as “high, medium, low” so the team knows what to work on first when the “musts” and "shoulds" are done (wishful thinking!). Remember - these categorizations must be based on the business objectives.

So, what do you do when there is disagreement about the prioritization? I’ll cover that in Part II.

Labels: , ,

Requirements Defined Newsletter Bookmark and Share

1 Comments:

Blogger Craig Brown said...

However...

When you are planning on multiple releases (iterative development, agile, etc) you will need to rank requirements.

And the ranking will need to be done by consultation with both the client (and their representatives) to provide the business priority, and your solution designer to highlight any solution dependencies.

Regards
Craig

8/01/2008 5:18 AM  

Post a Comment

<< Home