Non-Functional Requirements

Non-Functional Requirements

What are Non Functional Requirements?

Traditionally when we talk about requirements we’re talking about functional requirements. Functional requirements are those that define what a system is supposed to do. Non functional requirements (NFRs) define constraints which affect how the system should do it.

Failure to consider NFRs can result in waste and delays to product work. Discuss them early and widely with your team - and create a shared view of what’s important.

Non Functional Requirements List

Performance and Reliability

  • Speed / Performance / Response time
  • Capacity / Throughput / Volume
  • Quality / Spec
  • Elasticity / Scalability

Reliability

  • Reliability (Mean time between failures) / Availability (uptime, Service Level Agreements)
  • Durability / Robustness
  • Resilience / Redundancy / Failsafes
  • Recoverability / Boot up time
  • Maintainability / Supportability / Readability
  • Monitoring / redundancy of monitoring
  • Security / Exploitability
  • Authentication
  • Authorisation (levels of)
  • Privacy

Data

  • Backup
  • Archiving
  • Integrity
  • Retention
  • Quality
    • Accuracy
    • Completeness
    • Reliability
    • Relevance
    • Timeliness

System Characteristics

  • Adaptability / Flexibility / Extensibility
  • Cost / Lifecycle cost
  • Efficiency
  • Dependencies
  • Internationalisation / Localisation
  • Personalisation
  • Resource constraints
  • Scalability
  • Portability (OS / Vendors / Cloud Providers / Platforms)
  • Interoperability / integrations / compatibility
  • Reusability / leverage / micro-services

Social

  • Audit-ability / Transparency / Verifiability
  • Compliance / Legal
  • Licensing / Open Sourcing
  • Accessibility
  • Usability
  • Ethics, Bias and Fairness
  • Sustainability / Environment
  • Testability / test coverage

Operational

  • Reporting
  • Documentation / Readability
  • Configuration management / configurability
  • Deployment
  • Development Environments
  • Help / Support