What are they
Detailed requirements will be gathered as development progresses, some requirements represent the vision of a successful project and are not related to any specific component of the system. These are the requirements that are often characterized by the words ‘cheaper, faster and better’, these are mainly about quality of service. Non-Functional Requirements are requirements that are achieved by a successful project and it is very important that these should be well understood at the start of a project.
How they are determined
The best source of non-functional requirements will be the stakeholders, these requirements represent the expectations of the stakeholders and their initial input into the project.
Business requirements
Non-functional business requirements should be measurable and preferably will map to an operational goal and the targets within that goal.
Some functional requirements may imply non-functional requirements, this can be apparent in the way that customers are allocated numbers to assist in identification of the customer, this is a functional requirement that implies a non-functional requirement for the accurate and high quality identification of a customer. The identification of customers would form part of the operational plan for providing good customer service and may involve multiple methods of customer identification.
Some stakeholders who are deeply involved in the day-to-day administration of the business may be unaware of the motivation behind functional aspects of the business process; these aspects can be determined by analyzing the motivation behind process and may not be uncovered in the initial definition
Technical requirements
An IT solution may well be constrained by aspects of the technical environment that is must exist within, this should be established from the stakeholders who represents technical interests. Technical requirements can also represent risks and any risks associated with the requirements should also be determined. Technical requirements come under the broader category of dependencies that should be identified
Implementing Requirements
These requirements form the basis of determining whether a project is progressing in the correct direction these requirements should be stated or referenced in the Project Charter and also referenced by the specifications, tests and documentation.
Requirements documentation
Documentation of non-functional requirements need not proceed in the same way as functional requirements; however it is important that all requirements should be uniquely identified and cross referenced to implementation. Due to the direct link between the project success and and the non-functional requirements, these requirements must be accessible as a single document referenced from project definition.