What are the requirements, how you’ll elicit the requirement and why it is so important, this question comes in many variations but it’s answer is the same. This article contains all the details about this curiosity. Let’s explore below.

What is Requirement Elicitation?

Requirement gathering or requirement elicitation is key to success for any software development. Whoever wears the hat of business analyst goes through this process and practices, to analyze & research the system’s requirements based on the information collected from the users, stakeholders and customers of any app.

Why is it important in the software development process?

Can you imagine starting software development without proper information about the system? Certainly a big NO! There is 100% probability for failure of the software if there is any gap in understanding the system’s requirements whether it is functional or nonfunctional.

A project can fail for the following reasons:

  • Poorly defined requirements

From the project management prospective most of the project fail when they do not meet the following criteria:

  • a. Deadline
  • b. Cost

The reason behind software failure may be poor requirement elicitation. If the functionality is poorly specified its implementation would either lead to creation of certain functionalities that aren’t needed or will lead to complete absence of the others. As a result would lead to lost development time, missed project timelines, loss of revenue, increased frustration amongst team members, poor quality of documentation – the list of impacts can go on and on.

  • Lack of communication
Lack of communication or ineffective communication especially with stakeholders can lead to software failure. Less involvement of stakeholders in communication will ultimately lead to loss of trust.
  • A bad leadership
Within a team it is a well known fact that a bad leader could be one of the most important factors for project failure. A bad leader not only damages the project development life cycle but also damages the reputation of the team and company.

For successful development of a project, the leader should orchestrate the best team to get the best performance and end results. Leaders should be fully dedicated to the success of the project, supportive to teammates and must work such that they are able to manage the team, people’s work, relationship, clients and partners. Lacking any skills will lead to the failure of the project.

  • A bad team
For success of any software development, performance of the selected team is very important because this whole process requires team effort. Any team which lacks in coordination, communication, skills and discipline can never help to achieve the end results in the best possible ways.

Widely used/ accepted techniques for requirement elicitation

1. Task analysis

Task analysis is a way of carefully examining how a software will behave in each phase. It involves breaking down the activity into a series of tasks which are observable action or behavior.

After decomposing the task into subtasks, the purpose of task analysis is to focus on identifying the problems/blockages, decision making, judgments and resource allocation (appropriate team as well as technologies/tools).

In short the purpose of task analysis is to know

  • a. What are the stakeholder’s (Client and users) goals
  • b. What they want to achieve
  • c. How the task will be initiated and completed

2. Right Questions can help you understand the process

Right Questionnaires

Asking the right question can help fill the gap between developer’s understanding of the business process and real requirements of the clients. In general, questionnaires are techniques of asking the right questions.

Let’s understand it with a case: Suppose a school owner approaches a software development agency with the requirement of a Learning Management System or a software for schools but he does not know about how it will be done, what techniques will be used and how it will fulfil and map his requirements. To ask the right questions you should have an understanding of the required business model like in case of school you should know the process of student’s admission, how they teach, how they mark attendance, how they evaluate the performance of students, how teachers get appointed and way of evaluating teaching skills etc..

Here under are few popular methods of questionnaires:

  1. a. Telephonic
  2. b. Survey
  3. c. Email questionnaires
  4. d. Interviewing the stakeholders

When interviewing the stakeholders, Email questionnaires are the most suitable tool for software agencies and developers.

3. Observation

The idea behind this technique is to know how the stakeholders work/perform their day to day task in their existing work process. This technique helps the development agency to recognize the real problems with these processes while observing their work.

4. Brainstorming

Brainstorming
It is a group activity where the team finds new ideas and solutions for any specific problem. Team members feel connected with the project but few things need to be considered while performing brainstorming.

  1. a. Time limit
  2. b. Evaluation criteria
  3. c. Avoid criticism and office politics

5. Domain analysis

In the process of requirement elicitation, domain analysis is the technique of analyzing the related systems of same business domains to find out the common and variable features. This practice also helps developers and stakeholders to find the edge over competitors and better solutions on existing systems.

6. Prototyping

Prototyping
Prototyping is a method of replicating the business ideas into tangible forms. This is the most liked method of requirement elicitation, stakeholders love it!! This tells how the application will look. It is very helpful to nontechnical stakeholders to visualize the application before approving the development. It also helps to validate the requirements, user flow and use cases to the development team. There are specific tools for creating wireframes but paper and pencil can also help easily.

Conclusion

Objective, precise and understandable requirements play a crucial role when starting software development, especially when anyone wants to achieve the desirable results in a given time frame. It is well said the “Precaution is better than cure”, although it applies on each step of software development but I think it applies the most on the requirement elicitation process. In short the output of the requirement elicitation process should be correct, precise, comprehensive, testable and well structured covering functional and nonfunctional requirements of the system.