ArchitectMind
  1. Home
  2. Tutorials
  3. Book 8 · Architecture Quality Attributes
  4. Volume I
  5. Quality Attributes
Book 8 · Volume I — Quality Attributes & Architectural Thinking · Topic 1.1

Quality Attributes

The measurable "how well" that shapes every architecture

15 min readStage 3 · Systems10 interview questions
Chapter
Chapter 1 — What Are Architecture Quality Attributes?
Prerequisites
Book 7 Volume I (requirements, constraints)
You will be able to
Define a quality attribute precisely, distinguish functional and quality requirements, express a quality as a scenario with a response measure, decide whether a requirement is architecturally significant, and explain how qualities rather than features drive structure
Covers
Definition · Functional vs quality requirements · Quality attribute scenarios · Architecture significance
On this page
  1. 1. Concept / Definition
  2. 2. Why It Exists
  3. 3. Core Concepts
  4. 4. How It Works Internally — From Stakeholder Need to Design
  5. 4A. Deep Dive — Qualities Are Properties of the Whole System
  6. 5. APIs / Features / Syntax — Capturing Qualities
  7. 6. Practical Examples
  8. 7. Common Problems & Mistakes
  9. 8. Performance & Production Considerations
  10. 9. Architecture & Design Considerations
  11. 10. Interview Questions & Answers

1Concept / Definition

A quality attribute (QA) is a measurable or testable property of a system that indicates how well the system satisfies the needs of its stakeholders — beyond the fact that it performs its functions. Examples: latency of checkout, availability of payments, time to add a new payment rail, time to detect a security breach.

What is a quality attribute?
Figure 1 — What is a quality attribute?
TermMeaningExample (ShopNow)
Functional requirementWhat the system must doCustomer can place an order
Quality attributeHow well it must do itCheckout p95 ≤ 800 ms at 1,500 orders/s
ConstraintDecision already made, not negotiableMust run on AWS in India (data localisation)
Quality attribute scenarioTestable statement of a QASource, stimulus, environment, artifact, response, measure
Architecturally significant requirement (ASR)Requirement that shapes the architecture99.95% checkout availability during sales
Table 1 — Vocabulary used throughout Book 8
Common namesNote
Non-functional requirements (NFRs)Widely used, but suggests they are optional — they are not
"-ilities"Informal: scalability, availability, maintainability…
Quality requirements / quality characteristicsISO/IEC 25010 terminology
Architectural characteristicsRichards & Ford terminology
Table 2 — Same idea, different names

2Why It Exists

Early software projects specified features in detail and qualities in one sentence ("the system shall be fast and reliable"). Systems then passed functional tests and failed in production — slow under load, down during peaks, impossible to change. The quality attribute concept exists to make those properties explicit, prioritised and verifiable so they can be designed in, not discovered late.

The requirements iceberg
Figure 2 — The requirements iceberg
Problem without explicit QAsConsequence
"Fast" means different things to business and engineeringArguments at go-live, rework
Qualities discovered in productionExpensive retrofits (see Topic 1.2)
No priorities between qualitiesDesign optimises the wrong thing
No way to test architecture decisionsOpinions instead of evidence
Hidden qualities (operability, deployability)Toil, slow delivery, burnout
Table 3 — Why the concept exists

3Core Concepts

3.1 Definition

A good definition has three parts: a property (latency, availability, lead time), a stakeholder who cares about it, and a measure that shows whether it is achieved. Without the measure, the attribute is an opinion.

PartQuestionExample
PropertyWhat quality?Availability
StakeholderWho cares, and why?Head of e-commerce — lost sales per outage minute
MeasureHow do we know?Successful checkout requests / total, rolling 30 days ≥ 99.95%
Table 4 — Three parts of a quality attribute
ISO/IEC 25010 characteristicMaps to Book 8 attributes
Performance efficiencyPerformance, scalability
ReliabilityAvailability, reliability, recoverability
SecuritySecurity
MaintainabilityMaintainability, modifiability, testability
Usability (interaction capability)Usability
Flexibility / portabilityDeployability, operability (partly)
Functional suitability, compatibilityMostly functional scope, interoperability
Table 5 — Relation to the ISO/IEC 25010 model

3.2 Functional vs Quality Requirements

Functional vs quality requirements
Figure 3 — Functional vs quality requirements
AspectFunctional requirementQuality requirement
AnswersWhat?How well?
ScopeUsually one featureCross-cutting, many features
VerificationPass/fail test caseMeasurement against threshold under conditions
ChangesFrequently, per sprintLess often, but costly to change late
Architectural impactLow–mediumHigh — drives style, tactics and technology
Example"Customer can cancel an order""Cancellation reflected in stock within 5 s, 99.9% of the time"
Table 6 — Comparison

Some requirements look functional but hide a quality: "the admin can export all orders" becomes architecturally significant when "all" means 400 million rows and the export must finish in under 10 minutes without slowing checkout.

Same function, different qualities
Figure 4 — Same function, different qualities

3.3 Quality Attribute Scenarios

A quality attribute scenario turns a quality into a testable statement using six parts. Chapter 2 covers scenarios in depth; here is the shape.

Quality attribute scenario (preview of Chapter 2)
Figure 5 — Quality attribute scenario (preview of Chapter 2)
PartCheckout performance example
Source1,000 concurrent shoppers on mobile and web
StimulusPlace orders at 1,500/s
EnvironmentNormal sale-day load, all AZs healthy
ArtifactCheckout service and its dependencies
ResponseOrder accepted and confirmed
Response measurep95 ≤ 800 ms, errors < 0.1% over 5-minute windows
Table 7 — A scenario at a glance

3.4 Architecture Significance

Not every quality requirement shapes the architecture. An architecturally significant requirement (ASR) is one whose satisfaction depends on structural decisions — changing it later would require restructuring.

Architecture significance test
Figure 6 — Architecture significance test
RequirementASR?Reason
Checkout 99.95% available during salesYesNeeds redundancy, multi-AZ, failover design
Product page p95 ≤ 300 ms at 20k rpsYesNeeds caching layers and CDN
Order confirmation email within 60 sMaybeAsync queue suffices; low structural impact
Button colour follows brand guideNoLocal UI change
Support staff access to PII audited 100%YesCross-cutting audit mechanism
Add a new payment provider in ≤ 10 dev-daysYesNeeds ports/adapters design
Table 8 — Classifying ShopNow requirements
Architectural impact by requirement type
Figure 7 — Architectural impact by requirement type

4How It Works Internally — From Stakeholder Need to Design

StepActivityOutput
1Identify stakeholders (customers, business, ops, security, developers)Stakeholder map
2Elicit concerns in their words ("sales must never stop")Raw concerns
3Map concerns to attributesAttribute list
4Write scenarios with response measuresScenario catalogue
5Prioritise by business value and architectural riskUtility tree (H/M/L)
6Select tactics and patterns for top scenariosDesign decisions, ADRs
7Verify by analysis, tests and production metricsEvidence
Table 9 — From need to verified quality
StakeholderTypical concernAttribute
Customer"Pages load instantly, orders never lost"Performance, reliability
Head of e-commerce"We must survive Big Billion Day"Availability, scalability
CISO"No card data breach, pass PCI audit"Security
SRE lead"I can see and fix issues at 3 a.m."Operability
Product teams"Ship a feature in days, not weeks"Modifiability, deployability
QA lead"Regression in hours, not weeks"Testability
Table 10 — Concerns become attributes

4ADeep Dive — Qualities Are Properties of the Whole System

A quality attribute is rarely owned by one component. Checkout latency is the sum of network, edge, service logic, dependencies and database; availability is the product of every component on the path. This is why qualities are architectural: they emerge from how components are arranged and interact, not from any single piece of code.

Emergent effectExampleArchitectural lever
Latency adds along a path5 sequential calls × 100 msParallelise, cache, remove hops
Availability multiplies in series5 × 99.95% = 99.75%Redundancy, fewer serial dependencies
Security is limited by the weakest linkOne unauthenticated admin endpointConsistent enforcement at gateway + service
Modifiability limited by couplingShared DB tables across teamsEncapsulation, data ownership
Table 11 — Why qualities emerge from structure

5APIs / Features / Syntax — Capturing Qualities

A lightweight way to keep qualities visible is to store them as a versioned quality requirements catalogue next to the code and link each entry to tests and dashboards.

YAML
# docs/quality/qr-catalogue.yaml  (versioned with the architecture)
- id: QR-07
  attribute: performance
  artifact: checkout-service
  scenario: >
    1,500 checkouts/s from mobile+web shoppers during sale peak, all AZs healthy
  response: order accepted and confirmed
  measure: { p95_ms: 800, p99_ms: 1500, error_rate_max: 0.001, window: 5m }
  priority: { business: H, risk: M }
  verified_by: [ k6/checkout-peak.js, grafana/checkout-slo ]
  owner: checkout-team
JAVA
// Instrumenting the artifact so the measure can be observed (Micrometer, Spring Boot 4)
@Timed(value = "checkout.place", histogram = true,
       percentiles = {0.95, 0.99}, description = "QR-07 checkout latency")
public OrderConfirmation place(CheckoutCommand cmd) {
    return checkout.complete(cmd);
}
ToolRole for quality attributes
ISO/IEC 25010Checklist of characteristics
Quality Attribute Workshop (QAW)Elicit scenarios with stakeholders
Utility treePrioritise scenarios
ADRsRecord which tactic satisfies which QR
Micrometer + PrometheusMeasure runtime qualities
k6 / GatlingVerify performance scenarios before release
ArchUnitVerify structural qualities (modifiability)
Table 12 — Toolkit

6Practical Examples

6.1 ShopNow: two stakeholders, one word

The business said "checkout must be fast". Marketing meant "the pay button responds instantly on 4G phones"; engineering assumed "server time under 2 s". Writing QR-07 as a scenario exposed the gap: the agreed measure became p95 ≤ 800 ms server-side and ≤ 2.5 s end-to-end on a 4G device profile, which added a CDN and a lighter mobile payload to the design.

6.2 A hidden quality becomes significant

The requirement "support can search any order" looked functional. Asking about scale revealed 400M orders and a 2-second search target. It became an ASR and led to an OpenSearch read model fed by order events instead of SQL LIKE queries on the transactional database.

Before analysisAfter analysis
Functional: search ordersPerformance scenario: p95 ≤ 2 s over 400M orders
Implementation: SQL queryRead model in OpenSearch via events
Risk: slows checkout DBIsolated from checkout
Table 13 — Revealing a hidden quality

6.3 Same features, two architectures

Quality profileArchitecture chosen
100 orders/min, 99.5%, 6 developersSingle Spring Boot app, one PostgreSQL (Book 7, 9.1)
100k orders/min, 99.95%, 12 teamsMicroservices, Kafka, caches, multi-AZ (Book 7, 9.4)
Table 14 — Qualities, not features, chose the architecture

6.4 Worked example — classify requirements

Scenario. The product owner for ShopNow's coupon feature handed the architect a list of twelve "requirements". They mixed what the feature should do with how well it should do it, plus rules nobody could change, so the team could not tell which items should shape the architecture.

RequirementType
Customer can apply a couponFunctional
Coupon validation p99 ≤ 50 msQuality (performance)
Coupons stored in India regionConstraint
New coupon type in ≤ 3 daysQuality (modifiability)
All coupon changes auditedQuality (security/auditability)
Table 15 — Classification exercise

What it shows. Classifying each item separates three kinds of requirement. "A customer can apply a coupon" is functional: it describes behaviour. "Coupon validation p99 at most 50 ms" and "a new coupon type within three days" are quality requirements, for performance and modifiability, with measurable targets. "Coupons stored in the India region" is a constraint: a fixed boundary the design must respect, not a quality to trade off. Each category is handled differently: functions become features and tests, qualities become scenarios and tactics, and constraints narrow the solution space.

Takeaway. Classify requirements before designing. Quality requirements and constraints drive architecture far more than functional ones, and they are easy to lose when mixed into a feature list.

6.5 Worked example — from concern to scenario

Scenario. ShopNow's CISO said, "We must know quickly if someone abuses admin access." The statement was important but impossible to design or test as written.

Concern (CISO)"We must know quickly if someone abuses admin access"
AttributeSecurity (detection)
ScenarioAdmin account performs > 50 PII reads in 10 min (stimulus) → alert raised and account suspended (response) within 5 min (measure)
Tactic hintedAudit logging + anomaly detection + automated response
Table 16 — Concern to scenario

What it shows. The architect turned the concern into a quality attribute scenario. The attribute is security, specifically detection. The stimulus is an admin account performing more than 50 reads of personal data within ten minutes; the environment is normal operation; the response is an alert and automatic suspension of the account; and the response measure is within five minutes. The scenario is now specific enough to choose tactics, such as audit events streamed to a detection rule, and to test them with a simulated abuse.

Takeaway. Convert stakeholder concerns into six-part scenarios with measurable responses. A concern becomes architecture only when you can test whether the system meets it.

6.6 Worked example — significance scoring

Scenario. ShopNow's backlog contained dozens of quality requirements, and the architects could not analyse all of them in depth before the first release.

RequirementValueCost to change laterSignificant?
Multi-region DR (RTO 1 h)HHYes — decide now
Dark mode UILLNo
Checkout p95 ≤ 800 msHMYes
Report export CSV/ExcelMLNo
Table 17 — Scoring ASRs

What it shows. Scoring each requirement on business value and on the cost of changing the design later shows which ones are architecturally significant. Multi-region disaster recovery with a one-hour recovery time is high on both, so it must be decided now, because retrofitting it is very expensive. A checkout p95 of 800 ms is high value with moderate change cost, so it is also significant. Dark mode and CSV or Excel export are low on change cost, so they can be handled later without affecting the architecture.

Takeaway. Focus architecture effort on requirements with high value and high cost of change. Everything else can be decided later, when more is known.

6.7 Worked example — verifying QR-07

Scenario. ShopNow's quality requirement QR-07 states that checkout must keep p95 latency under 800 ms at 1,500 requests per second. Previously, nobody checked it until customers complained during a sale.

JAVASCRIPT
// k6 thresholds encode the response measure (verified in CI before each release)
export const options = {
  scenarios: { peak: { executor: 'constant-arrival-rate', rate: 1500, timeUnit: '1s',
                       duration: '30m', preAllocatedVUs: 2000 } },
  thresholds: {
    'http_req_duration{name:checkout}': ['p(95)<800', 'p(99)<1500'],
    'http_req_failed{name:checkout}': ['rate<0.001'],
  },
};

What it shows. The k6 script encodes the requirement directly. A constant-arrival-rate scenario generates exactly 1,500 requests per second for 30 minutes, regardless of how fast the system responds, which matches real open traffic. Thresholds on the p95 duration and on the error rate turn the response measure into a pass or fail result. The test runs in CI against a production-like environment before each release, so a regression blocks the release instead of reaching customers.

Takeaway. Make quality requirements executable. A requirement checked automatically on every release is a guarantee; one written only in a document is a hope.

6.8 Worked example — interview answer structure

Scenario. In interviews, ShopNow asks candidates, "What is a quality attribute, and why does it matter to an architect?" Many answer with a list of words such as scalability and security.

StepAnswer fragment
Define"A quality attribute is a measurable property of how well the system serves stakeholders."
Contrast"Functions say what; qualities say how well — and they drive the architecture."
Example"Checkout p95 ≤ 800 ms at 1,500/s during sales, all AZs up."
Significance"It's significant because meeting it needs caching, async and multi-AZ design."
Table 18 — Structured answer

Why it works. The structure in the table builds a complete answer in four steps. Define it as a measurable property of how well the system serves its stakeholders. Contrast it with functional requirements: functions say what the system does, qualities say how well, and qualities drive the architecture. Give a concrete example, such as checkout p95 at most 800 ms at 1,500 requests per second, and the tactics it led to. Close with how the quality is verified, such as load tests in CI and production dashboards.

Takeaway. Answer with a definition, a contrast, a measurable example and how you verify it. That shows you can apply quality attributes, not just name them.

7Common Problems & Mistakes

MistakeSymptomBetter practice
Adjectives instead of measures"Fast, scalable, secure"Scenario with response measure
Treating NFRs as optionalCut when schedule slipsPrioritise ASRs with business owners
Ignoring design-time qualitiesSlow delivery after year oneInclude modifiability, testability, deployability
One global number"99.99% for everything"Tier by business criticality
No ownerNobody watches the metricOwner + dashboard + alert
Qualities decided by technology fashion"We need Kafka"Start from the scenario, then choose tactics
Table 19 — Mistakes and fixes

8Performance & Production Considerations

ConsiderationPractice
Qualities change with growthReview the catalogue each quarter and before big events
Production is the final judgeEvery runtime QR has a dashboard and alert
Test environments differRecord environment assumptions in scenarios
Cost of measurementHistograms and sampling instead of per-request logs
RegressionAutomated thresholds in CI (k6, ArchUnit)
Table 20 — Keeping qualities real in production

9Architecture & Design Considerations

PrincipleImplication
Architecture is chosen for qualitiesStart design sessions with the top 3–5 scenarios
Qualities conflictExpect trade-offs (Chapter 4)
Qualities are emergentReason about paths, not components
Significance guides effortSpend architecture time on ASRs
Table 21 — Design principles

10Interview Questions & Answers

Q1Basic

What is a quality attribute?

A quality attribute is a measurable property that describes how well a system performs its functions for its stakeholders, rather than what those functions are. Examples include performance, such as checkout latency; availability, such as uptime per month; scalability; security; modifiability, such as how quickly a new coupon type can be added; and operability. Each quality attribute must be expressed with a measure and a target to be useful, for example p95 latency at most 800 ms at 1,500 requests per second. Quality attributes are the main drivers of architectural decisions, because they determine structure, technology and trade-offs.

Q2Basic

How do functional and quality requirements differ?

A functional requirement describes what the system must do: a behaviour or feature, such as "a customer can apply a coupon". A quality requirement describes how well the system must do it, under which conditions, with a measurable target, such as "coupon validation completes within 50 ms at p99 under peak load". Functional requirements are verified by testing behaviour; quality requirements are verified by measurement, such as load tests, availability monitoring or change-lead-time tracking. Two systems with identical functions can need completely different architectures because their quality requirements differ.

Q3Intermediate

Why is "non-functional requirement" a weak term?

The term "non-functional requirement" defines these requirements only by what they are not, which suggests they are secondary, optional or a technical detail to address later. In reality, qualities such as performance, availability and security usually drive the architecture more than features do, and they are expensive to retrofit. The term also groups very different concerns under one vague label, making them easy to skip in planning. "Quality attribute requirements" or "quality requirements" puts them on equal footing with functional requirements and encourages expressing them with measurable targets.

Q4Intermediate

What is a quality attribute scenario?

A quality attribute scenario is a structured way to make a quality requirement concrete and testable. It has six parts: the source of the stimulus, such as users or an attacker; the stimulus itself, such as 1,500 checkout requests per second; the environment, such as normal operation or a degraded zone; the artifact affected, such as the checkout service; the response, such as processing orders; and the response measure, such as p95 at most 800 ms. Writing scenarios turns vague statements like "fast" or "secure" into targets that can guide design decisions and be verified.

Q5Senior Engineer

What makes a requirement architecturally significant?

A requirement is architecturally significant when it has high business value and would be expensive to satisfy later if the architecture ignored it. Other signals include wide impact across many components or teams, very strict response measures, such as sub-10 ms latency or five-nines availability, and novelty, where the team has no proven approach. For example, multi-region disaster recovery with a one-hour recovery time is significant, because adding it later would require restructuring data and deployment. Significant requirements get explicit analysis, tactics and ADRs early; the rest can be handled incrementally.

Q6Senior Engineer

Give an example of a functional-looking requirement that is really a quality.

"Support agents can search all orders" sounds like a simple feature. But at ShopNow's scale of 400 million orders, with a requirement that results appear within two seconds, it becomes a performance requirement that shapes the architecture. It may require a dedicated search index, data partitioning, asynchronous indexing from events and careful access control. The functional statement hides the hard part. Asking about data volume, response time and concurrency for every important feature reveals quality requirements hidden inside functional ones.

Q7Technical Architect

Why are qualities called emergent?

Quality attributes are emergent because they arise from how components interact, not from any single component. Latency adds up along a request path: if checkout calls three services in sequence, their latencies combine, and the slowest dependency shapes the total. Availability multiplies: a request that depends on four services each available 99.9% of the time is available only about 99.6% of the time. So a quality cannot be guaranteed by optimising one part; it must be designed and measured end to end, considering dependencies, call patterns and failure handling.

Q8Technical Architect

How do you keep qualities from being forgotten after design?

Keep qualities visible throughout the system's life. Maintain a versioned catalogue of quality requirements with scenarios, owners and targets. Link each significant requirement to the ADRs and tactics that address it. Encode measurable targets as automated checks, such as k6 thresholds in CI and fitness functions in the build. Track them in production with dashboards, SLOs and alerts, each with a named owner. Review the catalogue when requirements or load change. When qualities are measured continuously, regressions are caught early instead of being rediscovered during incidents.

Q9Solution Architect

How do you elicit qualities from non-technical stakeholders?

Avoid technical jargon and start with business impact. Ask questions such as "What happens to the business if checkout is down for an hour?" or "How long can a customer wait before abandoning?" and collect stories of past failures and frustrations. Translate the answers into quality attribute scenarios with measurable targets, then confirm the numbers with the stakeholders, explaining the cost of stricter targets. For example, a merchandiser's complaint that "prices take too long to change" becomes a modifiability scenario. Stakeholders know their priorities; the architect's job is to make them precise.

Q10Solution Architect

How would you explain to a CTO why two teams need different architectures for the same feature?

Show that the same feature serves different quality requirements in each context. For example, product search for customers must handle 2,000 requests per second with p95 under 300 ms during sales, while search for support agents must cover all historical orders with results in two seconds for 50 concurrent users. These scenarios lead to different tactics: a cached, replicated read model versus a deep historical index. Present the scenarios side by side, the tactics each requires and their cost. The CTO can then see that the difference comes from business needs, not team preference.

Newsletter

Get new tutorials every week

New ArchitectMind tutorials and interview questions, once a week. No spam, unsubscribe anytime.

Almost done! Check your inbox and click the confirmation link to complete your subscription.
Keep going in Book 8

Architecture Quality Attributes

Volume I · Topic 1.2

Why Quality Attributes Matter

Quality Attributes & Architectural Thinking

Volume I · Topic 1.3

Quality Attribute Categories

Quality Attributes & Architectural Thinking

Volume II · Topic 1.1

Performance

Performance & Capacity

Volume II · Topic 1.2

Latency Components

Performance & Capacity

Volume II · Topic 1.3

Tail Latency

Performance & Capacity

Volume III · Topic 1.1

Scalability

Scalability & Elasticity

Volume III · Topic 1.2

Vertical Scaling

Scalability & Elasticity

Volume III · Topic 1.3

Horizontal Scaling

Scalability & Elasticity

Volume IV · Topic 1.1

Availability Fundamentals

Availability, Reliability & Resilience

Volume IV · Topic 1.2

Availability Calculation

Availability, Reliability & Resilience

Volume IV · Topic 1.3

Nines of Availability

Availability, Reliability & Resilience

Volume V · Topic 1.1

Security Requirements

Security, Privacy & Compliance

Volume V · Topic 1.2

Security Architecture

Security, Privacy & Compliance

Volume V · Topic 1.3

Threat Modeling

Security, Privacy & Compliance

Volume VI · Topic 1.1

Maintainability

Maintainability, Modifiability & Testability

Volume VI · Topic 1.2

Technical Debt

Maintainability, Modifiability & Testability

Volume VI · Topic 1.3

Code Quality

Maintainability, Modifiability & Testability

Volume VII · Topic 1.1

What Is Operability?

Operability, Observability & Deployability

Volume VII · Topic 1.2

Operational Readiness

Operability, Observability & Deployability

Volume VII · Topic 1.3

Production Readiness Checklist

Operability, Observability & Deployability

Volume VIII · Topic 1.1

Why Evaluate Architecture?

Quality Attribute Trade-offs & Architecture Evaluation

Volume VIII · Topic 1.2

Architecture Evaluation Methods

Quality Attribute Trade-offs & Architecture Evaluation

Volume VIII · Topic 1.3

ATAM

Quality Attribute Trade-offs & Architecture Evaluation