Non-Functional Requirements Examples
Published in
5 min readApr 22, 2021
By: Max Arbow, Senior Product Manager at Mondo Robot
In our past article, we defined the importance of functional and non-functional requirements gathering. Below are examples and categories of non-functional requirements:
Operability
- The system must be able to run on my iPhone X while in airplane mode.
- Most of my customers buy on their mobile devices.
- Integrate with my Active Directory and my inventory system.
- The app should be able to work on any web browser.
- The app can run natively on most handheld devices.
Multi-tenancy
- Needs to support multiple tenants without access to one another’s data.
Compliance
- We are required to be HIPAA and SOC2 compliant.
- PII/PHI app leakage needs to be reported to our legal team immediately.
- We sell in the UK and CA and need to observe GDPR/CCPA regulation.
- Needs to do routine checks to make sure we are ADA compliant.
Serviceability
- The app needs to have a ticketing system.
- Ability to manage users/roles/permission and change default global field values without having to go to you as a vendor.
Localization
- The app needs to support Spanish, English and Catalonian.
- The app should log events from the local time zone of the user.
Globalization
- We sell in the US and Canada and need to collect both currencies.
- Our site is in the UK, and need to change our hours and privacy policies to reflect that.
Accessibility
- We have seeing-impaired seniors actively using the application and so it should support high contrast visuals and screen reader devices.
- The content should simple and assume a 6th-grade reading level.
- It needs to support dark mode.
- Ensure we meet the WCAG 2.1 guidance and regularly tested.
Personalization
- Greet and present content to users that match their preferences/history.
- Trigger a special onboarding if it is a new user that has never logged in.
Traceability/Auditability/Logging
- Audit any changes made by users, so that I know who to ask if the information was not submitted correctly.
- Alert if the margin goes below 25% and analyze the root cause so that I can intervene as necessary.
- My IT team cares a lot about former employees having access to our internal apps. Can we run a regular report to make sure only current employees can access it?
- My IT team needs access to who logs in and when.
- I want to see a crash report on the app.
- Show a paper trail for any updates that users make to the data in my CRM.
Availability
- The app should generally be available 24/7/365, but in addition, we can’t have the app go down during peak season. We will lose a bunch of money if we can’t sell our product online during cyber Monday.
- I have users on the app during east coast business hours, please limit any maintenance windows to after 6pm Eastern and before 8am Eastern.
Portability
- I need to be able to push data to BigQuery for monthly reporting.
- When we upgrade from on-prem to the cloud, I don’t want to lose any historical information.
Interoperability
- My app data can be mapped over to my CRM.
- Use inventory service in real-time so that my systems don’t get out of sync.
Security
- Users must be forced to reset their passwords semi-annually.
- Provide two-factor authentication every time before accessing the app.
- Maintain a list of blacklisted users.
- Whitelist email addresses so that they don’t go into spam filters.
- Only direct managers and HR can see personal employee information.
- The system regularly upgrades patches to provide safeguards from viruses, worms, trojan horses, and other vulnerabilities.
Privacy
- Users should clearly understand and acknowledge the privacy policy before accessing the site.
- We need to capture acknowledgments of the privacy policy in the event we are audited.
- I should be able to opt out of cookies on the site.
Performance
- Any interaction between the user and the system shouldn’t exceed 2 seconds. Maybe we can cache some data and make it more performant.
- Searching through a large document needs to be fast. Even if you have to index content nightly.
- The system can handle at least 300 concurrent users from 9–5 am EST, and at least 150 concurrent users at all other times.
Session Concurrency
- I want to be able to have multiple tabs open at the same time with my user logged in so that I can multi-task.
Error/Exception Handling
- I don’t expect errors, but when I do, I think we should regularly review them and come up with messaging to the users when they happen.
- Any time a user drops from their shopping cart as they are paying, we need to know about it.
- If errors happen on runtime, we need to tell users to try again after x seconds.
Testability
- We have our own QA team that would like to be able to provision users.
- Can we make sure to run regular checks against the database to ensure nothing breaks when we load a new batch of contracts? Hopefully, it won’t let you push code until all checks are complete.
Storage
- Our cloud costs are pretty high, so let us know how much storage this thing will take up in the next 1–2 years.
- We have a firm record retention plan, and legally we need to maintain all transactional information for 5 years.
Scalability
- We only expect 10 users for now, but in a year’s time we want 10,000! Can the app handle that?
- We also want to accommodate 30 more store expansions and get into the direct-to-consumer market.
Monitoring
- If the app ever goes down, put up a notification to users and call us, no matter what time of day.
Configuration
- I need all my stores to accept all forms of payment but I want to be able to turn off and on ACH at certain points in the year.
- We want to be able to adjust certain pricing throughout the year to accommodate inventory or special promotions.
Validation
- You can’t submit an app unless all requirements are met. Otherwise it will waste hours of admin time to find out the applicant is disqualified.
- Only users above the age of x can provide consent to share their health information.
Transactional
- We need to be able to roll back any changes we make.
Others Areas to consider:
- Time to Market
- Cost
- Supportability/Maintainability/Resources
- Flexibility
- Usability