SE 507
Lecture Notes for Chapter 3 (Requirements Triage) of
Just Enough Requirements Management,
by Alan M. Davis

Still under construction

Definitions and Terminology

Davis defines requirements triage to be

the art of selecting the right requirements to include in the next release of your product

Making such a selection is almost always necessary, simply because the desired schedule/budget will not allow for the satisfaction of all the requirements identified during elicitation.

Although many people (with a diverse set of titles) engage in requirements triage, few ever acknowledge this responsibility. Indeed, in most organizations, requirements triage is performed implicitly and not very effectively. (Davis claims that it is done "by some combination of intimidation, inertia, osmosis and incompetence", whatever that means.)

Here are some typical scenarios:

Other names for requirements triage are release planning, requirements prioritization, optimal attainment of requirements, requirements negotiation, and requirements selection. But Davis likes the word "triage" because of the analogy to what EMT's do at the site of a disaster involving physical injuries to a number of people.

Davis puts requirements into three broad categories:

Requirements triage is the most interdisciplinary of the three areas of requirements (recall that the other two are elicitation and specification), requiring interplay among those people responsible for

Successful requirements triage requires knowledge of

Requirements triage should be performed for every planned release of a product, so as to decide which requirements to try to satisfy in that release. (See Figure 3-1, page 67.) Also, requirements triage activities should be repeated each time new requirements arise or new resources become available.


Why do Triage?

Most organizations don't, so why should yours?

Davis claims (page 68) that

Performing triage is the most effective way to achieve just enough requirements management. ... If you don't do it explicitly, it will occur implicitly [in which case] you are leaving the success of your project to pure chance.

Basic Triage Techniques

According to Davis:

Basic triage is the art of achieving a balance between requirements, development cost, development schedule, and risk. It is the minimal amount of triage that should be performed when trying to accomplish software development in a just enough manner.

He likens it to performing a balancing act on a three-person seesaw, with Requirements, Schedule, and Cost sitting on the three boards. (See Figure 3-2, page 68.)

To perform requirements triage, at a minimum you must know, for each requirement, its relative importance (to the customer) and the cost of satisfying it. (Later in the chapter are described several other attributes that are also important, but less so.)

Prioritizing Candidate Requirements by Importance and Cost

Numerous techniques exist. Interestingly, the most straightforward one —asking the customers to do it&mdash does NOT work, because most of them will tell you that all requirements are equally critical!

Three better approaches are the hundred-dollar test, the yes/no vote, and the five-way priority scheme. (These are all based upon collecting opinions from a collection of stakeholders, preferably one in which each stakeholder group is adequately represented.)

It can be quite useful to record all the votes of all the stakeholder representatives, rather than simply the sums for each requirement. That's because, for example, if a requirement earns a total near zero because most votes were 0 (with maybe a few +1's and -1's), that means something different than if there were lots of +2's and lots of -2's! In the former case, the requirement would (most likely) not be included in the baseline. In the latter case, perhaps what is needed are two different versions of the product!

What if some stakeholder (groups) are more important than others? In this case, you can weight the votes. That is, assign a "weight" (a positive real number) to each participating stakeholder representative according to the importance of the group that (s)he represents. Then multiply each of her/his votes by that weight.

Disagreements Concerning Relative Priority of Requirements

Among the possible reasons for such disagreement are

Estimating Effort for Candidate Requirements

Several books address this issue; in short, what they all say is

Davis says that effort estimation should be done on a per-requirement basis. The units of effort can be any of a number of possibilities: feature points, function points, lines of code, person-months, person-hours, dollars, etc. See Figure 3-5, page 75, for an example table listing requirements along with each one's Priority and estimated cost (in person-hours).

Disagreements Concerning Effort to Satisfy a Requirement

Among the possible reasons for such disagreement are

Establishing Requirements Relationships

Requirements are not, in general, independent of one another. Rather, various releationships exist between them. Among these are the following.

How to document dependencies? However it is done, it is important that, for any given requirement, we can easily find others on which it depends or which depend upon it. This suggests the use of an automated tool. Indeed, a number of requirements tools have been developed. See the web site www.incose.org for a list.


Performing Triage on Multiple Releases

Davis highly recommends that triage be used for planning not just the next release but at least one after that. If you plan for only one release, decisions on what to include and what not to become strictly binary, making it more difficult to compromise.


Making the Triage Decision

Having engaged the stakeholders (by the means discussed earlier) to determine a relative ranking of requirements, how does one go about deciding which requirements to include in the "baseline".

Of course, not all candidate requirements can be included, because the desired schedule and budget will not be sufficient to allow it.

Nor is it simply a matter of including the requirements, one at a time, from most to least important, until the schedule and budget are consumed. Why not? In part, because of the interdependencies among the requirements.

Stuff missing here.... See pages 84-97.


Advanced Triage Techniques

Omitted. The focus is mostly upon business/marketing concerns, which is more than a software engineer or computer scientist should have to deal with!


The Result of Triage

Triage is completed (but I thought that it was never finished!!) once it has been decided which subset of candidate requirements to try to satisfy in the next release of the product. In addition, it should have resulted in estimates of (see Figure 3-36, page 116)

If advanced triage was performed, and the product is intended to be sold (as opposed to having been custom built for a particular customer), several other facts/estimates should have been formulated (see Figure 3-37, page 117):

(See the same figure (3-37) for a list of other facts/estimates relevant to products for internal use.)

Typically, the chosen requirements are listed in a preliminary version of the requirements document, which is expanded in the subsequent specification phase. The other pieces of information end up being documented in a business case document, a preliminary project plan, or a preliminary marketing plan.


The Secrets of Just Enough Triage

Paying too little attention to triage is likely to result in trying to build a system that is "too big" to fit into your budget and/or schedule.

Paying too much attention to triage could result in priorities changing before you get to specification!

The secrets of doing just enough triage are these: