Though many people may not have even heard of an NFR (non-functional requirement), NFRs are among the most important things to define when building the specification for an e-commerce platform, as most have a direct impact on the experience and satisfaction of your users.
We are all used to defining functional requirements, such as what will happen when a user clicks the “add to basket button” or when they input a search term. These are tangible, easy to quantify and understand, and typically define the behavior of a system based on user interactions.
A non-functional requirement is one which is a little less tangible, or does not specifically define system behavior, but is no less important.
Non-functional requirements dictate page speed
There are many types of NFRs, but one of the most recognizable is page speed. You may think that it’s obvious that your e-commerce platform should be fast, but defining page speed is actually a lot more complex than it sounds.
Different pages throughout an e-commerce platform will always load at different speeds due to the differences in byte size and complexity, as well as the operating system, browser, and network having a big impact on page load times.
A typical page speed NFR will define the device, operating system, browser, network, and actual page that the speed relates to, such as PDP should load in less than 4 seconds on Apple iPhone 6s and above, iOS 10+, Safari on 4G. You do not need to specify the speed on all combinations of devices or networks, but you should at least set a speed benchmark. It is advisable that this is done for mobile devices, as it is likely that mobile traffic will account for the majority of visits to your e-commerce website.
Types of non-functional requirements
There are many other types of NFRs, all of which can have a critical impact on the performance, scalability, and usability of your e-commerce platform. These include:
- Security – Specify the level of security that should be met such as the OWASP top 10
- Privacy – Meet basic requirements for GDPR
- Scalability and performance – Ensure that the system can scale to meet expected traffic and order volume at normal and peak times
- Speed of key user journeys – Define how long each step with key user journeys will take
- Speed of web services – Dictate how long web services will take to provide a response
- Accessibility – Make sure that the platform meets the basic accessibility standards throughout
- Documentation – Ensure that the platform is sufficiently documented
- Quality – Know that the best e-commerce platforms can be used badly so you should insist that code is developed to a good quality standard
- Extensibility – Maintain that the platform is extended in such a way to make future development feasible
- Data integrity and retention – Set how long data should be stored and how the integrity of data is maintained
- Testing – Address how unit testing will be built into the solution
- Compatibility – Ensure that the platform can be easily integrated with thrid-party systems
- Search – Assess how quickly the system will return search results
- Availability – Set the agreed uptime of the platform under normal conditions
- Infrastructure – Define the infrastructure performance thresholds (CPU and memory usage)
Although this list is not exhaustive, it demonstrates the wide range of NFRs that can – and should – be defined when building out the list of requirements for, and specification of, an e-commerce platform.
Why NFRs are so important
NFRs essentially define the quality of your platform. A functional requirement will define its behavior, but the NFR will define how well it will exhibit that behavior.
A well-defined set of NFRs will have the following benefits:
- Higher code quality
- Tighter security
- Reduced total cost of ownership
- Improved user experience
- Fewer bugs
- Better speed and performance
- More uptime
Without correctly defining them, your developer may meet all of your functional requirements but still deliver an unsatisfactory product. However, if you have not specifically defined the NFRs, they cannot really be held responsible for that.
Many e-commerce projects in the past have failed or become much more costly than expected due to a lack of well-defined NFRs. Without good NFRs you could end up with an e-commerce platform that meets its functional requirements but is slow, insecure, hard to manage, costly to maintain, of a poor quality, and provides a poor experience to your users.
For more on this topic, see Digital Experience: The Key To User Delight.