Getting Software Requirement Right
Importance of Requirement Analysis
We all know that requirements need to gathered before any software development project. Do we really understand the importance of it....
Getting requirements right, early in your project, can save you one-third or more of your overall project budget. (Hooks and Farry, 2001)
You save money by getting requirements right to begin with. Why? Because fixing requirements errors accounts for 70% to 80% of your rework costs (Leffingwell, 1997).
The quality of the requirements captured will be define to a great extent if your project will be a success or a failure. Sometimes you may be asked to cut down the requirement capture time my argument to that would be "If you cannot invest in getting the requirements done right the first time, how are you going to afford the cost and time that would be required to fix it which would be much more that what needs to be invested now."
Five Tips for Getting Requirement Analysis Right
The requirement analysis and capture process should result in documentation which will cover the following aspects:
- Define the Problem and High level description of the solution.
The requirement Analyst needs to understand the problem and the need for solution. The questions which need to answered here are
- What problems is the solution going to resolve?
- What benefits is the company going to derive from the solution?
- Are the requirements implementable?
Apart from answering the above questions a high level description of the solution which needs to be developed and the business needs it is going to address needs to be documented.
- Cover needs of all stakeholders and users of the solution.
- Define what the solution should and should not do.
- Define the features required.
- Capture all supporting information.
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.
You should not only define what the solution should do but also define what the solution will not do. The requirements should be stated in a manner that nothing is left for imagination or which creates doubts.
Elaborate on the features required in the software solution. In Technical terms define Functional and Non-functional requirements . Try and capture the "What's" and not "How's".
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.
Benefits of Good Requirement Analysis
- Cost Savings
- Shorten your development cycle
- Get a product that meets your needs
- Boost the team's productivity
- Reduce rework and conflicts arising from unclear and ambiguous requirements
Now that we understand how important it is to get the requirements right early on. Let us help you get your requirements right the first time...