62
How Fast is Fast”? Demystifying NFRs Terry Wiegmann, CBAP, CSQE, PSPO, ATM Director, People Service Line Lead Quick Solutions, Inc. @twieg

How Fast is “Fast”? Demystifying NFRs Terry Wiegmann, CBAP, CSQE, PSPO, ATM-G Director, People Service Line Lead Quick Solutions, Inc. @twieg

Embed Size (px)

Citation preview

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?

What are they Why do we care Who has them Where can we find them How to organize them

4 Ws and an H

What are they?

Functionality

Oxymorons, Ilities, QoS

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

Why do we care?

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

Loss of Customers

Bad Press

Loss of Investment, Life

Who has them?

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

Performance

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…)

SLAs

Learnability Efficiency Memorability Error avoidance

Usability

Web-based system: Compliance with standards for the blind

Accessibility

Video games: Compliance with age/content ratings systems (e.g., no violence)

What about NFRs such as “fun” or “cool” or “beautiful” or “exciting”?

Pretty, Fun, Cool

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

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.

Reliability Availability Serviceability Security Usability Installability

RASSUI(NCR)

And Accuracy and Security and a Pony…

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

FURPS+

Competitive Engineering, Tom Gilb

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

When do we deal with them?

Agile Good Practice: Model a bit Ahead

NFRs 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

NFR as User Stories

Key Points

Keep Them on Your Radar

One Size Doesn’t Fit All

Capture Learnings

Do and Improve