Non-Functional Requirements Examples

Mondo Robot
MondoRobot
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
Unsplash: Dylan Gillis

--

--