In this article, we will get an understanding of the importance of non-functional requirements related to client satisfaction. In software development, the functions required by the client are defined in the requirement definition document, etc., and designed and implemented accordingly. However, the functions required by the client are the minimum required items, and to increase the satisfaction of the client, it is also necessary to consider “non-functional requirements” related to usability and the like.
This time, I would like to introduce the importance of non-functional requirements related to client satisfaction.
What are non-functional requirements?
Non-functional requirements are all non-functional requirements .
It’s a potential requirement, not an overt requirement.
For example, the functional requirement is “I want a function that allows me to easily purchase my company’s products”, “The waiting time until the screen is displayed is 3 seconds”, and “Even if many users access it at once, the server will not go down.”, Etc., refers to requirements related to performance, security, operability, etc.
If non-functional requirements are not met, it may not be possible to develop a good system even if the functional requirements are sufficient.
Not only functional requirements but also non-functional requirements must be well defined.
Differences between functional and non-functional requirements
Functional requirements are software-defined requirements that are functional.
For example, in the case of an employee list management system, the software processing contents and screen display, such as “search by employee number” and “display employee photos on the list screen”, must be implemented at a minimum. Refers to things.
Non-functional requirements are non-functional requirements such as software usability, performance, reliability, extensibility, operability, and security. Non-functional requirements have a significant impact on user satisfaction, so they are important along with functional requirements.
Non-functional requirements grade 6 categories
Functional requirements (and non-functional requirements) are concepts based on the developer’s perspective on how software should be designed. On the other hand, functional requirements (and non-functional requirements) are those that embody what the client wants to achieve or achieve by using the software. Functional requirements will be organized based on functional requirements, and non-functional requirements will be organized based on non-functional requirements.
Non-functional requirements are defined by various organizations and researchers. In Japan, the Information-technology Promotion Agency (IPA) released in April 2018, non-functional requirements are classified into 6 categories. This article will introduce it.
This is a request to make system services continuously available.
For example, the operation schedule such as operating hours and maintenance schedule do not interfere with the client’s use, the recovery procedure and schedule in the event of a failure are prepared in advance, and the recovery days are acceptable. Etc. are the requirements from the viewpoint of availability.
 Performance and expandability
Requirements for system performance and future system expansion.
Specifically, it is designed in consideration of the possibility of adding functions in the future, and whether it can withstand the number of clients used at the same time and the data load.
 Operation and maintainability
Requests for system operation and maintenance services.
For example, it corresponds to the fact that the operating time can be secured according to the purpose of using the software, that the data is backed up in an appropriate format and frequency, the division of roles during operation, and the manualization of the procedure, etc. increase.
A request for the migration of current system assets.
An example is whether master data and transaction data, which are the assets of the old system, can be safely migrated to the new system, and what is the burden of migrating.
This is a request for ensuring the safety of information systems.
For example, it is a viewpoint to clear the aspects such as whether access to highly confidential information is restricted or whether unauthorized access can be blocked.
 System environment / ecology
It is a requirement regarding the installation environment and ecology of the system.
Examples include whether the server installation environment is seismically isolated and earthquake-resistant, whether the temperature and humidity are controlled so as not to damage the equipment, and whether the environment is considered in terms of energy.
To visualize the level of fulfillment of the request from the client’s point of view, we will make it possible to confirm each item “early”, “without misunderstanding”, and “without leakage” while detailing each item step by step.
Once you have organized the above, let’s move on to organizing non-functional requirements and running non-functional requirements tests.
It is “non-functional requirements” that increase client satisfaction
Functional requirements are clarified through interviews with clients, but there is a possibility that definition omissions may occur because there are some parts that clients are not aware of regarding non-functional requirements. In addition to the content of the hearing, it is important to analyze and define the requirements from the perspective of the six categories explained above.
Check non-functional requirements with non-functional tests
Non-functional testing is a test to check whether the software has non-functional requirements. The following five are typical non-functional tests.
This is a test to confirm that the software works as intended according to the requirements by running the software in an environment that assumes and reproduces the actual usage situation. Here, we mainly check the performance such as the amount of processing per hour, the speed, the response time, and the memory consumption.
This is a test to check whether the software has a structure that can withstand the actual amount of data and the number of accesses. Check whether there is any problem with the client’s system usage, such as the system going down under abnormal circumstances such as when access is suddenly concentrated, as well as the amount of data expected at normal times.
This is a test to check whether the software is easy for the client to use and easy to understand. Specifically, when looking at the display and layout of the screen, we test from the perspective of whether the client can do what he wants to do and whether he can operate it intuitively.
This is a test to check whether it is easy to maintain and manage while operating the software for a long period. Specifically, the viewpoints are whether the structure is easy to repair functions and detect defects and whether it is easy to modify or extend the code.
The software tests for malicious external attacks on vulnerable parts and operational risks such as the loss of important information. Also known as “penetration testing” or “vulnerability diagnosis”.
This time, we have introduced general content about non-functional requirements related to client satisfaction.
Since the functions defined in the functional requirements are implemented and taken for granted by the client, it is better to uncover the needs that the client is not aware of and to properly define the non-functional requirements to improve satisfaction. It’s the key. To make sure that the non-functional requirements are met, try incorporating the non-functional tests introduced here.
If you ever want to know about similar things, check out the Facebook page Maga Techs