how fast is “fast”? demystifying nfrs terry wiegmann, cbap, csqe, pspo, atm-g director, people...
TRANSCRIPT
How Fast is “Fast”?Demystifying NFRs
Terry Wiegmann, CBAP, CSQE, PSPO, ATM-GDirector, People Service Line LeadQuick Solutions, Inc.@twieg
Fast Easy to Use Available when I need it to be Accurate Accommodate a large number of
users
Heard these?
Non-functional requirements specify criteria that can be used to judge the operation of a system, rather than specific behaviors.
What are they?
Functional requirements define what a system is supposed to do; NFRs define how a system is supposed to be.
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.
BABOK V2, Chapter 9, Techniques
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)
ISO/IEEE Definition
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
Karl Wiegers
Observable at run time: Security, usability
Evolution qualities Testability, maintainability, extensibility, scalability, embodied in the status and structure of the system
Rachel Davies/Execution Qualities
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
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
Square Pegs, Round Holes
NFRs: qualities of a system that are important to: User community
usability, learnability, reliability, etc.
Development community scalability, maintainability, reusability, etc.
Stakeholders
ERD for NFRsOperation
s
TrainersSales, Marketing
New System
Finance
Customer
Support
Known Bugs Workarounds Enhancement Requests
Hostile usersCompetitors’ Beta testersDR/BC
Contractual Attributions Escrow
Set up Trainees’ User IDsRefresh dataSeparate enviroment
Ability to create demosPress ReleasesTrade Shows
FAS 86SOP 98SLAsROI/BC?
Support the system in ProdOS updatesMaintenance Windows
Security
Legal
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
Often Overlooked Stakeholders
Capacity
Max users
Max concurrent
users
Max transactions
Data Set sizes
Reliability
Degree to which the system performs as requiredSystem 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
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.
Performance Examples
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…)
Web-based system: Compliance with standards for the blind
Accessibility
Video games: Compliance with age/content ratings systems (e.g., no violence)
Metric: mean time between failures
Measure: number of failures in a period of time (an observation!)
Measures and Metrics
Invalid – the system should respond to user input within 10 seconds.
Defined Circumstances
Valid – for use case ABC the system will respond to a valid 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.
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
FURPSHewlett-Packard
Planguage Keywords & SyntaxKeyword DescriptionTAG A unique, persistent identifierGIST A short, simple description of the concept contained in
the Planguage statementSTAKEHOLDER
A party materially affected by the requirement
SCALE The scale of measure used to quantify the statementMETER The process or device used to establish location on a
SCALEMUST The minimum level required to avoid failurePLAN The level at which good success can be claimedSTRETCH A stretch goal if everything goes perfectlyWISH A desirable level of achievement that may not be
attainable through available meansPAST An expression of previous results for comparisonTREND An historical range or extrapolation of dataRECORD The best-known achievementDEFINED The official definition of a termAUTHORITY The person, group, or level of authorization
QUality in INformation Technology(superset of ISO 9126)
Functionality Reliability Usability Efficiency Maintainability Portability
QUINT
IFPUG RECENTLY RELEASED THE NEW SNAP (SOFTWARE NON-FUNCTIONAL ASSESSMENT PROCESS) METHOD, AIMED TO SIZE THE NON-FUNCTIONAL SIDE OF A SOFTWARE APPLICATION.
IFPUG/SNAP
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
NFR as User Stories