{"id":5563,"date":"2018-05-22T13:51:00","date_gmt":"2018-05-22T16:51:00","guid":{"rendered":"https:\/\/www.fh.com.br\/eng\/?p=5563"},"modified":"2020-12-04T16:33:27","modified_gmt":"2020-12-04T16:33:27","slug":"e-commerce-alert-how-non-functional-requirements-impact-user-experience","status":"publish","type":"post","link":"https:\/\/fh.nabile.com.br\/eng\/blog-fh\/category-agribusiness\/e-commerce-alert-how-non-functional-requirements-impact-user-experience\/","title":{"rendered":"E-commerce alert! How non-functional requirements impact user experience"},"content":{"rendered":"<p>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.<\/p>\n<p>We are all used to defining functional requirements, such as what will happen when a user clicks the \u201cadd to basket button\u201d or when they input a search term. These are tangible, easy to quantify and understand, and typically define the behaviour of a system based on user interactions.<\/p>\n<p>A non-functional requirement is one which is a little less tangible, or does not specifically define system behaviour, but is no less important.<\/p>\n<p><strong>Non-functional requirements dictate page speed<\/strong><\/p>\n<p>There are many types of NFRs, but one of the most recognisable is page speed. You may think that it\u2019s obvious that your e-commerce platform should be fast, but defining page speed is actually a lot more complex than it sounds.<\/p>\n<p>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.<\/p>\n<p>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.<\/p>\n<p><strong>Types of non-functional requirements<\/strong><\/p>\n<p>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:<\/p>\n<ul>\n<li><strong>Security<\/strong>\u2013 it is important to specify the level of security that should be met such as the OWASP top 10<\/li>\n<li><strong>Privacy<\/strong>\u2013 meeting basic requirements for GDPR<\/li>\n<li><strong>Scalability and performance<\/strong>\u2013 ensuring that the system can scale to meet expected traffic and order volume at normal and peak times<\/li>\n<li><strong>Speed of key user journeys<\/strong>\u2013 defining how long each step with key user journeys will take<\/li>\n<li><strong>Speed of web services<\/strong>\u2013 defining how long web services will take to provide a response<\/li>\n<li><strong>Accessibility<\/strong>\u2013 ensuring that the platform meets the basic accessibility standards throughout<\/li>\n<li><strong>Documentation<\/strong>\u2013 ensuring that the platform is sufficiently documented<\/li>\n<li><strong>Quality<\/strong>\u2013 even the best e-commerce platforms can be used badly so you should insist that code is developed to a good quality standard<\/li>\n<li><strong>Extensibility<\/strong>\u2013 ensuring that the platform is extended in such a way to make future development feasible<\/li>\n<li><strong>Data integrity and retention<\/strong>\u2013 defining how long data should be stored and how the integrity of data is maintained<\/li>\n<li><strong>Testing<\/strong>\u2013 defining how unit testing will be built into the solution<\/li>\n<li><strong>Compatibility<\/strong>\u2013 ensuring that the platform can be easily integrated with 3rd party systems<\/li>\n<li><strong>Search<\/strong>\u2013 defining how quickly the system will return search results<\/li>\n<li><strong>Availability<\/strong>\u2013 defining the agreed uptime of the platform under normal conditions<\/li>\n<li><strong>Infrastructure<\/strong>\u2013 defining the infrastructure performance thresholds (CPU and memory usage)<\/li>\n<\/ul>\n<p>Although this list is not exhaustive, it demonstrates the wide range of NFRs that can \u2013 and should \u2013 be defined when building out the list of requirements for, and specification of, an e-commerce platform.<\/p>\n<p><strong>Why NFRs are so important<\/strong><\/p>\n<p>NFRs essentially define the quality of your platform. A functional requirement will define its behaviour, but the NFR will define how well it will exhibit that behaviour.<\/p>\n<p>A well-defined set of NFRs will have the following benefits:<\/p>\n<ul>\n<li>Better code quality<\/li>\n<li>Better security<\/li>\n<li>Reduced total cost of ownership<\/li>\n<li>Better user experience<\/li>\n<li>Less bugs<\/li>\n<li>Better speed and performance<\/li>\n<li>Better uptime<\/li>\n<\/ul>\n<p>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.<\/p>\n<p>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.<\/p>\n<p>Source: <a href=\"http:\/\/www.the-future-of-commerce.com\/2018\/05\/02\/how-non-functional-requirements-impact-ux\/\">The Future of Commerce<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>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 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":5564,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[606,609,611,613,615,616,618,619,622],"tags":[],"_links":{"self":[{"href":"https:\/\/fh.nabile.com.br\/eng\/wp-json\/wp\/v2\/posts\/5563"}],"collection":[{"href":"https:\/\/fh.nabile.com.br\/eng\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fh.nabile.com.br\/eng\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fh.nabile.com.br\/eng\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fh.nabile.com.br\/eng\/wp-json\/wp\/v2\/comments?post=5563"}],"version-history":[{"count":2,"href":"https:\/\/fh.nabile.com.br\/eng\/wp-json\/wp\/v2\/posts\/5563\/revisions"}],"predecessor-version":[{"id":17395,"href":"https:\/\/fh.nabile.com.br\/eng\/wp-json\/wp\/v2\/posts\/5563\/revisions\/17395"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fh.nabile.com.br\/eng\/wp-json\/wp\/v2\/media\/5564"}],"wp:attachment":[{"href":"https:\/\/fh.nabile.com.br\/eng\/wp-json\/wp\/v2\/media?parent=5563"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fh.nabile.com.br\/eng\/wp-json\/wp\/v2\/categories?post=5563"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fh.nabile.com.br\/eng\/wp-json\/wp\/v2\/tags?post=5563"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}