- Year not given · 4+4 marks
Understanding customers; elicitation guidelines
Short answer
Gaining clear understanding is hard because customers often have unclear scope, unsure needs, implicit knowledge, conflicting demands, and evolving requirements. Guidelines include: assess feasibility, identify stakeholders, define constraints, use multiple elicitation methods (interviews, workshops, prototypes), hold JAD with a facilitator, record rationale, and validate early.
Why is it so difficult to gain clear understanding of what customer wants? What are the guidelines for requirement elicitation process?
Why it is difficult to understand what the customer wants
It looks simple to ask the customer what they want, but in practice it is one of the hardest parts of software engineering. Pressman groups the reasons into three types, and Sommerville adds several more.
- Problems of scope: the boundary of the system is not well defined, or customers give unnecessary technical details that confuse rather than clarify the overall objectives.
- Problems of understanding: customers are not completely sure what is needed, have a poor understanding of what computers can and cannot do, do not fully understand their own problem domain, or leave out information they think is "obvious".
- Problems of volatility: requirements change over time, as the business, technology or people change.
- Different language and implicit knowledge: users describe needs in business terms ("close the day") full of domain knowledge that developers do not share.
- Many stakeholders with conflicting needs: managers, clerks, customers and regulators all want different things.
- Political and organisational factors: some requirements come from power or preference, not real need.
- Users cannot imagine an abstract system: software is intangible; people often only know what they want after they see something ("I'll know it when I see it").
- Communication gaps: wrong people are consulted, users are busy, or analysts assume instead of asking.
Guidelines for the requirement elicitation process
- Assess business and technical feasibility of the proposed system first.
- Identify all stakeholders (users, managers, customers, regulators) and the people who can actually specify requirements.
- Define the technical environment (hardware, operating system, other systems) in which the system will run.
- Identify domain constraints that limit functions and performance (laws, standards, business rules).
- Use more than one elicitation method: interviews, observation, questionnaires, workshops, scenarios and prototypes.
- Collect requirements from multiple viewpoints and record the source of each requirement.
- Hold collaborative requirement-gathering meetings (FAST/JAD) attended by both users and developers, with:
- rules for preparation and participation,
- an agenda that covers all important points but allows free flow of ideas,
- a neutral facilitator to control the meeting,
- a definition mechanism (worksheets, flip charts, wall stickers, electronic boards).
- Encourage participation and build trust; ask open questions, then context-free and specific questions.
- Use scenarios and use cases to make requirements concrete; prototype requirements that are poorly understood.
- Record the rationale behind each requirement and the business concerns behind it.
- Prioritise and negotiate requirements; identify ambiguous, conflicting or unrealistic ones.
- Document and validate results promptly, and get stakeholders to review them.
Following these guidelines turns elicitation from a single conversation into a structured, repeated process that brings out the customer's real, complete and agreed needs.
✓ Answer checked by Claude Sonnet 5.5
Related questions
- Importance of requirement engineering; elicitation techniques · Software Engineering, chapter 1
- Requirement management process · Software Engineering, chapter 1
- Book store process model · Software Engineering, chapter 2
- Requirement elicitation and system behavior · Object Oriented Analysis and Design, chapter 2
- SQL: customers with account in Dharan · Database Management System, chapter 3
- KUKL customer system design and code · Object Oriented Analysis and Design, chapter 4
- Doubly linked list: bank customer records · Data Structure and Algorithm, chapter 4