What is Requirement?
It is a statement provided by a stakeholder about what they believe they need in order to solve a particular business problem or respond to a specific business need.
It is something a product must do or quality it must have.
What are the categories of Requirements?
Requirements can be broadly classified into 3 categories:
Functional Requirements
They are the key functions that a system or component must be able to perform.
They are the things the product must be able to do and the actions it should be able to perform.
The various types of requirements that could be classified as Functional Requirements are:
Scope of the project:
It defines the boundaries and connection to other projects/systems
You find out where the project fits and what exactly are you trying to tackle or solve
E.g: (Please refer to the example in this post)
Consider you have a project that deals with optimizing your current lead management system.
The project receives the leads from a web portal and sends it to a CRM system to convert it to a sale.
Hence, you can say that optimising the web portal code or techniques to maintain the sales records for future engagement with converted-leads lies outside the boundary of your current project.
Functional & Data requirements:
They define
The things (tasks/actions/functions) the system must do
The data manipulated by the functions the system performs
Some examples are:
1. Display a report of the leads sent to the CRM system.
2. Move a lead out of the system if it is not closed in a year.
Non-Functional Requirements
They determine the properties or quality of the system e.g security and reliability
They determine “how” the product will behave?
The various types of requirements that could be classified as Non-Functional Requirements are:
Look and feel requirements: Preferred appearance
E.g the system should follow the company brand color scheme
Usability requirements: Based on intended users’ technical proficiency, aptitude, and other preferences e.g the users are old and have never used a computer hence then the font should be large.
Performance requirements: How fast, secure, reliable, accurate, etc.
E.g the system should have 100% uptime; it should have 15 places decimal accuracy.
Operations requirement: Project’s preferred operating environment
E.g the system shall run on windows 10 machines.
Maintainability and Portability Requirements: How adaptable should the system be to a change
E.g the system should have plugin support to add features later; the system should be able to run from a different physical location.
Security requirements: Security, confidentiality, and integrity of the project
Cultural and political requirements: Human factors
Legal requirements: Conformance to applicable laws
E.g personal financial records of the end-users or customers cannot be stored in the system for more than three months as per the applicable law
Constraints
They define the limitation or restriction of a possible solution. They are key things that need to be kept in mind while designing a solution e.g. project budget, time restrictions, and technical architecture decisions, etc.
They are global in nature i.e. they apply to the whole project/product
The various types of requirements that could be classified as Constraints are:
Purpose of the project: Primary reasons for the project e.g. Business Objectives, Business Problem, Expected ROI, etc
Stakeholders: people interacting with the system
Users: end-users of the system e.g if the end-users are old people then this requirement will impact your interface design decision
Naming conventions and definitions: the technical vocabulary of the system to maintain consistency in meaning and usage
Relevant facts: outside influences that make a difference to this project e.g. government guidelines
Assumptions: assumptions that developers and designers will make
Example:
The project budget must not exceed $70000.
The system shall run on the existing company computers
The system shall include the last 5 years of historical data
Why Do You Need Requirements?
Consider the following steps you employ, as a business analyst, to solve a business problem:
Step 1: You identify a business problem that needs to be solved.
Step 2: You identify the requirements that dictate what needs to be done to solve the business problem.
Step 3: You devise a solution based on the identified requirements that will solve the business problem.
From the above steps, it is clear that:
- Requirements guide you to design the eventual solution
- If the requirement itself is incorrect then the solution devised from it would obviously be incorrect. The incorrect solution would not solve the business problem and the entire effort goes in vain.
Consider this fact:
60% of the projects fail due to poor or incorrect requirements.
If the project is a skyscraper then the requirements are definitely the base foundation.
Hence, requirements are needed as the success of the project greatly depends on it.
The post is based on my notes and understanding from this BA tutorial