Requirements are foundation blocks of IT solution which drives the project and fulfills client needs. These requirements are of various types as follows
- Business Requirements – Which describes higher level requirements which are generally defined by higher management i.e. Business Stakeholders.
- Stakeholder requirements – Requirements which are defined by stakeholders which will be actually working on project or product.
- Solution Requirements – Requirements that define characteristics of a solution that will be developed as a product.
- Transitional Requirements – Requirements that define Capabilities which are required for facilitating transition from current state to future state after product deployment.
Out of the above Solution Requirements are further broken down into Functional & Non-functional requirements.
Functional Requirements – Requirements which describe functionality required as a part of product are defined as functional requirements.
Non-Functional Requirements – Requirements which do not define functionality of the product but environmental conditions or qualities in which product is deployed must possess are listed under Non-functional Requirements.
Solution Requirements Specification (SRS) is the document which lists down all such requirements. It is the tool where a client or Product owner (on behalf of client) will communicate their ideas, functionalities they need to a person/team who is actually going to develop the product. So that makes is the most important document of the project. Hence it shall list clear & concise requirements in order to achieve product as close as possible to requirement. SRS on other hand can also be used to estimate the costs, required technologies, resources to plan the future work.
Typical SRS document shall include
- Purpose with which project is executed or product is developed
Once the final problem statement is established, PO or client will list down all the problems they are facing or upgrades they are planning with the product. All the work/efforts are then put in addressing those problems/upgrades. The accuracy with which this purpose is defined determines the success of the product/project.
- Functionalities of product/system developed
Based on the defined problem statement, features required to resolve those problems are established. These are generally called Functional Requirements. Various Features which shall be included in the product are defined and how these features will perform to achieve our goal is also established.
- Performance expectations from software in live environment
Once the features are listed how they shall perform in the real world scenario also need to be quantified in order for product to be successful. Constraints that will limit the performance of product shall also be defined very clearly.
- Characteristics of the environment in which product will be deployed
These are generally Non-Functional Requirements. Product developed shall be fit to the environment in which it will be deployed or the upgrades required for environment in order for product to be successful shall be defined. Hence these are required to be included in SRS.
- External interfaces with which product will interact and how it will interact
Many a times product fetches data from external or third party apps/sites. These datasets help product achieve its intended target. So defining a system that will interact with these third party apps is utmost priority for product success. So these shall be included in SRS.
For developing the SRS the person must finalize the outline/skeleton based on above contents. In most cases organization have their standard formats which they follow. Then this document is developed in various iterations based on inputs from various stakeholders involved in the project.
After acceptable version of SRS is achieved for above mentioned points, supplementary details are added later on to complete the document. These details involve appendixes, glossaries of used terms as well as references.
Getting sign-off on the document from various responsible stakeholders is last milestone in developing the SRS.