Sources of Requirements: Stakeholder
Sources of Requirements: Stakeholder
Sources of Requirements: Stakeholder
Good requirements start with good sources. Finding those high-quality sources is an important task and,
fortunately, one that takes few resources.
The primary sources of requirements are the Stakeholders, so begin by identifying them from among
these candidates:
Customers
Users
Administrators
Maintenance staff
Partners
Ask each stakeholder to identify other stakeholders. By “peeling the onion” in this manner you can quickly
identify all stakeholders so that you don't miss important perspectives and associated requirements.
This will help you identify and resolve conflicting requirements as early as possible.
Domain experts
Industry analysts
Information about competitors
The last item often includes information about the current system that competitors are using to solve the
business problem.
Requirements-gathering techniques
After you have identified these sources, there are several techniques that you can use to gather
requirements (also see [TEL06]). However, it is important to recognize that requirement gathering is an
iterative process, and there is no single technique that is universally applicable [HIC03].
Success tips:
Do it now, keep it small, and iterate.
Capture requirements, and then collaborate with the stakeholders to correct and improve them. You can
capture requirements in one or more of these ways:
Interview users
Face-to-face contact with users through individual interviews is the primary source of requirements and
an important way to gather and validate their requirements. Remember that it is not the only possible
technique and that you can conduct interviews many different ways. Develop a repertoire of styles to fit
different situations. Unless you use the system yourself, you will need to make an effort to understand
and experience the user's problem to describe it clearly and correctly.
Start with unstructured interviews to gain an understanding of the work environment. Ask stakeholders
about their jobs and the problems that they face. Structured interviews, using a prepared set of questions,
can be used later to fill in the gaps of your knowledge.
Collaborative workshops are quicker and better at discovering requirements than other techniques, such
as one-on-one interviews. You are bringing the right collection of people together and getting them to
correct, improve, and reach consensus on their requirements.
A workshop is inherently expensive because of the number of people involved, but it saves a significant
amount of time. If you can define the product right the first time and cut three months off the requirements
gathering, the savings could be enormous. The workshop has to be thoroughly organized to take
advantage of people's time.
Choose a quiet location for the workshop so that people are not disturbed by day-to-day business.
Discourage mobile phones, but arrange to take messages. Take advantage of informal interactions by
choosing a site so that people aren't likely to go home at night or to go out separately.
The example in the following figure shows the logic of a requirements workshop. Notice that the workshop
provides the environment in which to apply other requirements-gathering techniques, such as
brainstorming.
Conducting workshops
A presentation can use a sequence of slides, a story board, an artist's impression, or even an animation
to give users a vision of the possibilities. When prototyping software, make a mock-up of the user
interface screens, emphasizing that there is no code and that the system has not been designed or even
specified yet. Fair warning: A mock-up can set expectations that may be difficult to meet.
This prototyping aims to get users to mention what may turn out to be missing requirements. You are not
trying to sell users an idea or product. Instead, you are finding out what they actually want. Seeing a
prototype, which invariably is wrong in some ways and right in others, is a powerful stimulus to users to
start saying what they want. They may point out plenty of problems with the prototype. This is excellent,
because each problem leads to a new requirement.