Requirement Analysis for software development projects is the exploratory, developmental activity of helping users figure out what they want and recording the same for further use in the subsequent phases of development. Conceptually, Requirements Analysis includes three types of activities:
Gathering requirements is a delicate step that encompasses a full realm of skills, knowledge, and ability. The person or business analyst who is responsible for requirement analysis should
According to IAG
An experienced analyst knowswhat questions to ask and should have good communication skills that are effective. Knowledge and experience in using modeling techniques that are easy to understand become handy in communicating the requirements to all stakeholders. One of the most common causes of changing requirements later in the project is when the right questions are not asked at the beginning of the project. An approach that can lead the analyst and the business users to discover all the requirements related to data flow, business rules, and functionality, and which will result in a complete and accurate representation is essentially a simple but systematic process that enhances the chances to get business specification right the first time.
By using a skilled resource to perform business requirement analysis for your next project could make a significant difference in terms of benefits that are accrued from the project.
Today, you have methods that capture the requirements in a quick manner yet accurate and complete- techniques that are flexible but also structured to produce high-quality documented specifications. It is essential that companies perform a comprehensive business requirement gathering initiative to see that the project for application development can be a successful activity.
Business Analysts (BA's) or Requirement Analyst can employ several techniques to elicit the business requirements of the product or service from the customers. This includes things as holding interviews, holding focus groups, creating requirements lists, prototyping, and use cases. Where necessary, the analyst will employ a combination of these methods to establish the exact business requirements from all stakeholders involved, so that software that meets the business needs is produced.
Business requirements for software development must be measurable, testable, and defined to a level of detail sufficient for system design.
We outline below some of the important aspects of business requirement analysis which are needed for successful gathering the requirements and recording them.
There are three levels of requirements that are commonly gathered.
If you are going in for a waterfall model kind of development in which you would be getting the software developed once the requirement analysis process is complete in that case we provide comprehensive documentation covering all requirements gathered in one or all of the following depending on the needs of the project.
In case's of iterative and rapid software development, when we provide requirements gathering services, we think of an iterative process and provide simple sketches, screen drawings, some use cases, and even functional, running prototype software pieces that will help with that iterative process. All of these make up the requirements.
1. Teams speak a different language
2. Pushing for Development to start
3. Delaying the documentation - We will document along the way
4. Keeping requirements Feasible and Relevant Click to select the text box.
5. Inadequate Review, Feedback, Closure
The requirements need to be reviewed by the client and all stakeholders need to come to an agreement that the requirements reflect the needs adequately. If the requirements are properly signed off it will help in meeting expectations and having satisfied customers.
The requirement analysis and capturing process should result in adequate documentation which will cover the following aspects
1. Define the Problem and High-level description of the solution.
The requirement Analyst needs to understand the problem and the need for the solution. The questions which need to answered are
Apart from answering the above questions, a high level or top management view description of the solution needs to be developed and the business needs it is going to address needs to be documented.
2. Identify and document the needs of all the stakeholders including the users of the solution being developed.
You need to make sure that needs of all stakeholders are understood. You also need to understand the needs of the people who are ultimately going to use the solution/system. This is very important so that the solution delivers on all counts.This will also help in identifying conflicting requirements if any.
3. Define what the solution should and should not do.
You should not only define what the solution should do but also define what the solution will not do. State the requirements in a manner that nothing is left for imagination or which creates doubts.
4. Define the features required.
Elaborate on the features required in the software solution. In Technical terms define both the functional as well as the non-functional requirements. Try to capture the "What's" and not "How's".
5. Capture all supporting information.
Include details about the Processes followed, Workflow, Information flow, hierarchies etc. Record any other information which might be relevant to the solution under consideration. Identify the source of all requirements and have them in documented in such a way that they are manageable.
Once you have applied all the above tips you will have Feasible, Non-conflicting, Unambiguous, Traceable and Testable Requirements.