In this series so far I have addressed “functional” requirements. These are the requirements that address features, functions and processes for the new system. There are also many requirements that are not related to the features, functions and processes. These are called “Nonfunctional Requirements” and mostly address the quality of the delivered product.
Here are some examples of Nonfunctional Requirements:
- Performance – Response time, transaction rates, throughput.
- Operating constraints – System resources, people.
- Platform constraints – The target platform may have been predetermined.
- Accuracy – Some applications (e.g. Consumer Data Base) can tolerate some level of inaccuracy, while others (e.g. Taxes) have to be very accurate. This should be agreed upon in advance. Accuracy has a cost so it should be in line with the value.
- Maintainability – The effort required to make changes. Sometimes this will be sacrificed in order to meet a target date. Your business sponsor should be well aware of this decision.
- Portability – The effort needed to move to a different platform
- Availability – System up-time. Should specify the maintenance windows.
- Security – Requirements of the protection of the system and it’s data.
- Usability – How difficult will it be to learn the system? How much training time is needed?
- Legal – Consult your company’s legal team for these. Your project could involve labor laws, privacy laws, etc.
Your organization may have standard templates for these types of requirements. If not, you should create the templates as part of your project. There should be lots of useful information from previous projects for you to use as source material.