Logo
    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