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

Definitions and Terminology

Definition: Requirements elicitation is the art of determining the needs of stakeholders.

Other names: (whose meanings may have subtle differences) include systems analysis, problem analysis, needs analysis, (plain) analysis, inception, and mission needs assessment.

Titles of those who do it: systems analyst, problem analyst, (plain) analyst

How (generally) is it done? By listening to and/or observing stakeholders. But doing it effectively usually entails doing things (such as providing the stakeholders with an appropriate environment and stimuli to which to react) that make the stakeholders provide more information than they otherwise could/would.

Who are the stakeholders? They include anyone (even organizations or "systems" could be included) who will be affected by the presence of the proposed new/enhanced system.

Here is a classification of typical stakeholder groups:

Determining requirements is nontrivial, in part because the stakeholders tend to be a heterogeneous lot. (The fact that Extreme Programming relies upon a single customer being available all the time (to interact with the developers as they program) is one of its weaknesses, as a single customer is typically not in a position to speak for all stakeholders.)

A major goal of elicitation is to come to an understanding of the wants/needs/problems of the user community. Because these are constantly changing, elicitation should continue on an ongoing basis. (Of course, the level of elicitation activity is not constant, as it is much higher during the planning stages for a new product or product release than at other times.)

Why do Elicitation?

Perhaps a more accurate title for this section would have been "How Much Elicitation To Do?"

The purpose of building software is to help solve problems. But one cannot (or at least is very unlikely to) solve a problem without understanding it. The purpose of requirements elicitation is to (at least begin to) discover what the problem is. Hence, if an insufficient effort is put into elicitation, it is very likely that the system that is eventually built will be the wrong one, leading to unhappy users/customers.

On the other hand, it is possible to spend too much effort in elicitation, which will result in too much time being taken to finish the project. (Davis does not indicate what would signal that too much effort is being spent on elicitation, however.)

Elicitation Techniques

One of the tricks to performing just enough elicitation is to select the right techniques and use them wisely. Different projects call for different techniques.

The general rules for doing good elicitation (whatever the technique) are similar to those that apply in any situation involving communication.

The skills needed to perform the various elicitation techniques tend to come pretty naturally to many people, but the know-how to choose the right technique(s), based upon the situation, seems not to come as naturally.

Here's a survey of common elicitation techniques and an indication, for each one, of what kind of situations it is effective in.

The Result of Elicitation

The result of elicitation is a list of candiate requirements. (See Figure 2-5 on page 60 for a short list of requirements for a traffic signal.)

At some point, the list should be organized into a hierarchical structure. (See Figure 2-6 on page 61.)

The Secrets of Just Enough Elicitation