Professional Documents
Culture Documents
REQUIREMENTS
ENGINEERING
LECTURE 4
Topic: Requirements
Elicitation-I
Reference: Text Book
Chapters 6, 7
Agenda
Requirements Elicitation
Elicitation Concerns
Barriers to Elicitation
Elicitation Plan
Stakeholders
Analysis:
Definition of the system in terms understood by the developer
(Technical specification, Analysis model)
Requirements Elicitation
Elicitation is concerned with user
(second level) requirements
Addresses the following concerns:
Understanding the application domain
Understanding the problem
Identifying stakeholders
understanding stakeholder needs
Agenda
Requirements Elicitation
Elicitation Concerns
Barriers to Elicitation
Elicitation Plan
Stakeholders
Requirements Elicitation
Concerns
Application domain understanding
Knowledge of the general area where
the system is applied
Problem understanding
The details of the specific customer
problem where the system will be
applied must be understood
Requirements Elicitation
Concerns
Identifying stakeholders
understanding
needs/constraints
stakeholder
Agenda
Requirements Elicitation
Elicitation Concerns
Barriers to Elicitation
Elicitation Plan
Stakeholders
Barriers to Elicitation
The "Yes, But" Syndrome
"Yes, but, hmmmmm, now that I see it,
what about this . . . ? Wouldn't it be nice
if . . . ? Whatever happened to . . . ?
Software development as an intangible
intellectual process.
Development teams typically compound
the problem by rarely providing anything
earlier than production code for the users
to interact with and to evaluate.
Barriers to Elicitation
The "Yes, But" syndrome is human
nature and is an integral part of
application development.
We should plan for it.
We can drastically reduce this
syndrome by applying techniques
that get the "Buts" out early.
Barriers to Elicitation
The "Undiscovered Ruins" Syndrome
In many ways, the search for requirements is
like a search for undiscovered ruins: the more
you find, the more you know remain.
You never really feel as though you have
found them all, and perhaps you never will.
Indeed,
software
development
teams
everywhere continually struggle to determine
when they are done with requirements
elicitation, that is, when have they found all
the requirements that are material or when
have they found at least enough?
Barriers to Elicitation
The "User
Syndrome
and
the
Developer"
Barriers to Elicitation
User and analyst speak different
languages
Even in same country
Miss-communication
Ease
of
omitting
obvious
information
Some people think that this is such
an obvious information that it does
not need to be conveyed explicitly
Barriers to Elicitation
Users have incomplete understanding
of their needs
Users have poor understanding of
computer capabilities and limitations
Analysts have poor knowledge of
problem domain
Barriers to Elicitation
Problem
Users do not know what
they want, or they know
what they want but
cannot articulate it.
Users think they know
what they want until
developers give them
what they said they
wanted.
Solution
Recognize the user as
domain expert; try
alternative communication
and elicitation techniques.
Provide alternative elicitation
techniques earlier:
storyboarding, role playing,
throwaway prototypes.
Agenda
Requirements Elicitation
Elicitation Concerns
Barriers to Elicitation
Elicitation Plan
Stakeholders
5. Elicitation risks
identify factors that could impede your
ability to complete the elicitation activities
as intended, estimate the severity of each
risk, and decide how you can mitigate or
control it
Agenda
Requirements Elicitation
Elicitation Concerns
Barriers to Elicitation
Elicitation Plan
Stakeholders
Stakeholder Identification
Stakeholder involvement is the only way
to avoid an expectation gap.
It's not enough simply to ask a few
customers what they want and then
start coding.
Identify major stakeholder categories
Select
representatives
from
each
category
Decide decision makers in case of
conflicts
Major Stakeholder
Categories
The Client
If building a product for in-house
consumption, the cost of construction
is most likely borne by the manager of
the users who will be the ultimate
operators of the product.
If building products for sale to people
outside
the
organization,
the
marketing department may assume
the role of client. In other words, it is
the marketers who have to be
satisfied.
Major Stakeholder
Categories
The
client
should
always
be
represented on the project.
Where many potential clients exist,
there
is
a
need
to
choose
representatives. For example
A member of the marketing department
A representative from a user/customer group
A combination of domain and usability
experts from within the organization.
Major Stakeholder
Categories
The Users
people who will ultimately operate your
product
build a checklist of the categories of people
who might conceivably use the product.
Role/job or work title.
any abnormal or unusual attributes, such as
users who would use your product while driving
or simultaneously with another product.
Also consider the user's physical location outside,
on an aircraft, in a public place etc.
User Classes
The frequency with which they use the
product
Their application domain experience
computer systems expertise
The features they use/tasks they perform
Their access privilege or security levels
(such as ordinary user, guest user, or
administrator)
Finding User
Representatives
For
in-house
deployment,
gain
access to actual users
For commercial software, engage
people from your current beta-testing
or early-release sites.
Setting up focus groups of current
users of your products or your
competitors' products.
Other Stakeholders
Consultants
Management
Subject Matter Experts
Core Team
Inspectors
Market Forces
Legal
Other Stakeholders
Negative Stakeholders
Industry Standard Setters
Public Opinion
Government
Special Interest Groups
Cultural Interests
Adjacent Systems
should
normally
make
the