Refined description
Because of great contributions, the description mutated as follows:
My application's purpose is to register customers into a system.
The requirement is: enable traceability for registration attempts under certain conditions
, and it can be implemented by creating a boolean flag which can be used for data analytics.
Under the following premise, the requirement is a functional one:
If I write the user story like: As a Data Analyst, I want to enable traceability for registration attempts so I can measure the amount of abandoned applications...I can see that the app creates output so the persona (Data Analyst) is able to use the system for his purposes.
On the next opposite premise, the requirement is a non-functional one:
Measuring the amount of abandoned applications is basically measuring the system's usability and that is universally recognized as a non-functional requirement.
So which one is it, functional or non-functional?
Historic
Please consider contributing instead of downvoting. It's a valid question that most people won't care to dig in. Just look at few youtube videos (e.g. a, b, c) and everybody talks about the same definitions and written material covers same extent. I am note expecting textbook definitions but a well cemented argument. It's so discouraging getting negative feedback from bad apples in a good community.
I have a practical example and I need some help. Please share your expertise, good practices, lessons learned from your organizations.
My application's purpose is to register customers into a system.
The requirement is to enable traceability for registration attempts under certain conditions, and it can be implemented by creating a boolean flag which can be used for data analytics.
In my head, that requirement is not part of the system's functionality. I think of it as an enabler for reporting and tracing the product's usability. I want to classify it as a non-functional requirement. However, it doesn't intuitively follow the main guideline from this answer:
Functional requirements define what the system or application will do...NF requirements are also not implementation details...
On the other hand, when I check wikipedia I can see that common examples of non-functional requirements are:
- Reporting.
- Usability
My rationale is: this requirement is meant for reporting and tracing usability. It can be expressed as an implementation detail but has nothing to do with the functionality of the application so I want to classify it as a non-functional requirement, however, it is something that must be implemented by the system and will produce a flag (output) and certainly can be translated to an implementation detail (but at the end of the day everything has to be implemented some way, right?).
Edit (Apr/30/2022)
I believe that it is a functional requirement and the mistake I made while posting this question is that I didn't define the story properly and was not considering that the persona might be the consumer of the data.
The story I was working on was poorly written and that caused the confusion so I am realizing the importance of having good processes and how those affect the overall health of a project.