Friday, April 27, 2012

Requirements Elicitation

Requirements elicitation is the first phase of Requirements Engineering and it include all activities involved in discovering the requirements. Requirements Elicitation is also sometimes referred as Requirements gathering.

In Requirements Elicitation phase system developers and engineers work in close relationship with customer and end-users to
  • Find out more about the challenges to be solved
  • To describe the functionality of the system.
Not just a simple process about fishing for requirements, but a highly complex process:
  • Customer rarely have a clear picture of their requirements
  • Different people have conflicting requirements
Requirements_Engineering
Requirements Engineering

Most of the times the Business analyst can never be sure you that he gets all the required requirements from the customer by just asking them what the new system should do.

Challenges in Requirements Elicitation:
  • Inconsistency of the requirements collected from different end users of departments like Sales, Accounting, Stake holders etc. 
  • Some time, clients will assume few requirements are understood by the Business Analyst so he will not talk about those requirements in the meetings and even some times Business Analyst forget it and assume those are understand. But all the times, the assumptions don’t match between the client and business analyst. 
  • Most of the times the requirements will be given by the end users, as the stake holders will be busy. Once requirements gathering are completed, while showing the new developed system demo to the stake holders, they will raise new changes or tell this process is incorrect. These kind of issues will rise due to insufficient time of stakeholders while requirements gathering. 
To collect the entire, accurate and consistent requirements, the Requirements Elicitation process is very important.

Requirements elicitation practices include the following
  • Interviews: The most common technique of Requirements Elicitation. Asking more questions related to the requirements. For example: Who will create a Sales order, is it Sales man or Sales Manager? Should a Sales man have permissions to delete the sales order? There are two types of Interviews:
    • Structured: User/Stake holders answers with a predefined set of questions within the meeting of one hour.
    • Non-Structured: No Predefined agenda, generating new ideas, brain storming etc.
  • Questionnaires for different departments involved in the organization: Be prepare with questionnaire document which are relevant to the Process/industry. Most of the industry process is same in all companies, only few processes might differ which would involve additional steps. The standard questionnaire will help to get the most high priority requirements what the client are looking for. The same document can be used for other clients also. 
  • User observation: Most of the end users find it complicated to describe/communicate the requirements it is so usual to them. The best way to understand them is at work place, what they are doing?
  • Workshops: The Requirements Workshop is the most powerful technique for eliciting requirements. It gathers all key stakeholders together for a short but intensely focused period.
  • Brain storming: Brainstorming is the process of generation ideas/creative inputs from a number of participants like Subject matter experts, Business analyst etc. Participants must follow a process model in order to make the gathering of inputs more orderly and more efficiently.
  • Use cases: Use Cases identify the who, what, and how of system behavior. Use Cases describe the interactions between a user and a system, focusing on what the system “does” for the user.
  • Role playing: Role playing allows stakeholders to experience the user’s world from the user’s perspective. A scripted walk through may replace role playing in some situations, with the script becoming a live storyboard.
  • Prototyping: A software requirements prototype is a partial implementation of a software system, built to help developers, users, and customers better understand system requirements.
Requirements Elicitation is the cyclic process, the goal of this phase is a model representing the requirements of the system seen from the user‘s perspective.

No comments:

Post a Comment