Requirement elicitation
The practice of collecting requirements of a system from users, customers, and other stakeholders. Also referred to as requirement gathering. Also involves analysing the current system, as the new system must carry functionality forward from the existing systems and to also understand the shortcomings and defects correctable from the existing systems.
A requirement is a function or condition that a system must be able to perform, and specifies what a system should do without saying how the system should do it. It is important to consider the latter part to prevent solution bias (i.e., suggesting certain solutions while precluding others). Generally should include what the existing system does and what the new system has to do that the existing system does not.
# Requirement types
There are two types of requirements to be considered when eliciting requirements:
- functional requirements: describes what the system does or is expected to do (e.g., calculations, data manipulation, and processing); and
- non-functional requirements: describes how well the system provides the functional requirements (e.g., performance, security, supportability, and reliability).
# Techniques
There are three techniques used to investigate the requirements of a system:
- background reading;
- interviews; and
- observation.
# Background reading
Used to understand the organisation and its business objectives through public sources of information (e.g., company reports, organisational charts, policy manuals, job descriptions, and documentation of existing systems).
# Interviews
Used to get an in-depth understanding of the organisation’s objectives, users’ requirements, and people’s roles.