How Fast is “Fast”? Demystifying NFRs Terry Wiegmann, CBAP, CSQE, PSPO, ATM-G Director, People Service Line Lead Quick Solutions, Inc. @twieg Heard these? Fast Easy to Use Available when I need it to be Accurate Accommodate a large number of users 4 Ws and an H What are they Why do we care Who has them Where can we find them How to organize them What are they? Functionality Oxymorons, Ilities, QoS What are they? Non-functional requirements specify criteria that can be used to judge the operation of a system, rather than specific behaviors. Functional requirements define what a system is supposed to do; NFRs define how a system is supposed to be. BABOK V2, Chapter 9, Techniques Purpose Is to describe the required qualities of a system, such as its usability and performance characteristics. These supplement the documentation of functional requirements, which describe the behavior of the system. ISO/IEEE Definition A software requirement that describes not what the software will do but how the software will do it (ISO/IEC/IEEE 24765:2010 Systems and software engineering-Vocabulary) Karl Wiegers A description of a property or characteristic that a software system must exhibit or a constraint it must respect, other than an observable system behavior Rachel Davies/Execution Qualities Observable at run time: Security, usability Evolution qualities Testability, maintainability, extensibility, scalability, embodied in the status and structure of the system Domain Requirements Problems Understandability Requirements are expressed in the language of the application domain; not understood by developers Implicitness Domain specialists understand the area so well that they do not think of making the domain requirements explicit Why do we care? Square Pegs, Round Holes Have more impact on design than stories Cross-cutting scope, apply universally or to more than one strand of functionality Elicitation forces consideration of design and architecture Loss of Customers Bad Press Loss of Investment, Life Who has them? Stakeholders NFRs: qualities of a system that are important to: User community usability, learnability, reliability, etc. Development community scalability, maintainability, reusability, etc. ERD for NFRs Customer Support Known Bugs Workarounds Enhancement Requests Operations Support the system in Prod OS updates Maintenance Windows Security New System Finance FAS 86 SOP 98 SLAs ROI/BC? Hostile users Competitors’ Beta testers DR/BC Legal Sales, Marketing Trainers Ability to create demos Press Releases Trade Shows Contractual Attributions Escrow Set up Trainees’ User IDs Refresh data Separate enviroment Often Overlooked Stakeholders Operations Support the system once in Production Support/Help Desk Known Bugs, Workarounds, Enhancement Requests Security Hostile users, Competitors’ Beta testers Trainers Set up users, Refresh data, separate enviroment Legal & Finance Contractual attributions, Escrow, SLA, FAS86, SOP98 Capacity Max users Max concurrent users Max transactions Data Set sizes Reliability Degree to which the system performs as required System defect rate shall be less than 1 failure per 1000 hours of operation. Security • Ability to resist unauthorized attempts at usage • Continue providing service to legitimate users Performance Performance Examples System shall be able to process 100 payment transactions/second in peak load. In standard workload, the CPU usage shall be less than 50%, leaving 50% for background jobs. Production of a simple report shall take less than 20 seconds for 95% of the cases. Scrolling one page up or down in a 200 page document shall take at most 1 second. Availability • System shall meet or exceed 99.99% uptime. • System shall not be unavailable more than 1 hour/1000 hours of operation. Testability • Ability to detect, isolate, and fix defects • Time to set up test env & run tests • Test coverage (requirements coverage, code coverage…) SLAs Usability Learnability Efficiency Memorability Error avoidance Accessibility Web-based system: Compliance with standards for the blind Video games: Compliance with age/content ratings systems (e.g., no violence) Pretty, Fun, Cool What about NFRs such as “fun” or “cool” or “beautiful” or “exciting”? Reference Model Where can we find them? Where to Find Them Stakeholder Interrogation How do we organize them? Attributes/Gottesdiener IIBA Spotlight Webinar: Oh, No! Not Nonfunctional with Roxanne Miller User Needs Measures and Metrics Metric: mean time between failures Measure: number of failures in a period of time (an observation!) Defined Circumstances Valid Invalid – for – the use system case ABC should therespond system will to user input within respond to a10 valid seconds. user entry within 5 seconds for a median load of 250 active users and 2000 logged in users 95% of the time; or within 10 seconds for a peak load of 500 active users and 4000 logged in users 90% of the time. RASSUI (NCR) Reliability Availability Serviceability Security Usability Installability And Accuracy and Security and a Pony… FURPS Hewlett-Packard Functionality Feature set, Capabilities, Generality, Security Usability Human factors, Aesthetics, Consistency, Documentation Reliability Frequency/severity of failure, Recoverability, Predictability, Accuracy, Mean time to failure Performance Speed, Efficiency, Resource consumption, Throughput, Response time Supportability Testability, Extensibility, Adaptability, Maintainability, Compatibility, Configurability, Serviceability, Installability, Localizability, Portability FURPS+ Competitive Engineering, Tom Gilb Planguage Keywords & Syntax Keyword TAG GIST STAKEHOLDE R SCALE METER MUST PLAN STRETCH WISH PAST TREND RECORD DEFINED AUTHORITY Description A unique, persistent identifier A short, simple description of the concept contained in the Planguage statement A party materially affected by the requirement The scale of measure used to quantify the statement The process or device used to establish location on a SCALE The minimum level required to avoid failure The level at which good success can be claimed A stretch goal if everything goes perfectly A desirable level of achievement that may not be attainable through available means An expression of previous results for comparison An historical range or extrapolation of data The best-known achievement The official definition of a term The person, group, or level of authorization QUINT QUality in INformation Technology (superset of ISO 9126) Functionality Reliability Usability Efficiency Maintainability Portability IFPUG/SNAP IFPUG RECENTLY RELEASED THE NEW SNAP (SOFTWARE NON-FUNCTIONAL ASSESSMENT PROCESS) METHOD, AIMED TO SIZE THE NONFUNCTIONAL SIDE OF A SOFTWARE APPLICATION. When do we deal with them? Agile Good Practice: Model a bit Ahead NFRs as User Stories NFR as User Stories Build into Definition of Done As User Stories All reqs look the same Can be understood by everyone, even non-tech Have same visibility May get deprioritized As Technical Stories Allot some points each iteration Not visible to customer, can’t prioritize In Acceptance Criteria Architecture cost in first story Key Points Keep Them on Your Radar One Size Doesn’t Fit All Capture Learnings Do and Improve