Non Functional Requirements

They are often called “quality attributes” or “constraints”.
Non-functional requirements are those that specify criteria that can be used to judge the operation of a system, rather than specific behaviors.
Non-functional requirements are an important part of any system specification, since they can have a major impact on the usability, performance, maintainability, and other aspects of the system.
Non-functional requirements can be divided into two general categories:
1. those that relate to the operation of the system as a whole (e.g., performance, security, reliability), and
2. those that relate to specific subsystems or components (e.g., database performance, user interface response time).
In many cases, the same non-functional requirement may be relevant to multiple subsystems or components.
For example, the requirement for the system to be “secure” may apply to the overall system, the database, the user interface, and other aspects.
It is important to carefully consider all non-functional requirements when designing a system, as they can have a major impact on the overall quality of the system.
I make it a point to add NFR (Non-functional requirement) while gathering requirements or creating user stories as sooner or later it will have to be considered