When we are discussing about the non functional requirements, what do you think about? In most of the cases we are thinking about those requirements which are not related with the system functionality, but let’s debate a little bit this subject.
On a daily basis activity as a business analyst, we are usually focused on the functional requirement area, to be more precise, how the system should work and react, thus we are not so focused on the resources and capabilities areas of the designed system. Could be different kind of reasons why we are focused mainly on functional requirements, and I would like to mention the principal one from my point of view, I would said direct exposure of functional requirements as a user story in the interaction with all the stakeholders during the interview sessions.
If we are thinking about, it make sense to be treated as a priority, because those functional requirements represents the starting point of the analysis phase, but do not forget others requirements which maybe are not so visible, or are considered to be by default understood like: performance requirements, usability, security, etc.
For an easy understanding, I’ll take an example where we have a stakeholder from the banking area who has the following requirement: ‘I would like to have a system which is capable to process payments in RON and EUR currencies’. Let’s think about what would mean to implement a system who is capable to solve the business requirement, I mean to process RON and EUR payments, but the used technology and the capabilities of the system does not allow to process more than 100 transactions per hour. Taking into account the fact that in a banking system are processed around 10000 transactions per hour, this implementation would be a failure, basically even though has been delivered a system capable to process payments in RON and EUR, this one couldn’t be used because is not able to support all the transactions volume.
Therefore, to avoid all of this, is necessary, since from analysis phase to take into account and have a detailed picture of what non functional requirements mean.
I would like to describe the main non functional requirements category as is presented below:
Performance requirements – requirements about the response time and velocity of the system;
Usability requirements – requirements about how difficult it will be to learn and operate the system;
Security requirements – requirements about how the stored date are protected and secured;
Reliable requirements – requirements about how often the software fails. Need to have a clear definition about what ‘Fail’ means;
Portability requirements – means the effort required to move the software to a different target platform;
Accurate and precision requirements – requirements about how accurate an precise are the system data;
Audit and control requirements – help to track the changes from a system;
Maintenance requirements – requirements about how flexible the system is to have changes.