top of page

How to write performance requirements so that they are actually implemented (and tested)


Introduction

As a product becomes more popular, the number of users, orders, API requests, and data increases. At this point, typical problems “suddenly” appear: pages take longer to load, search slows down, checkout freezes, and integrations with partners start returning errors.


Very often, the reason is simple: performance requirements are either missing or written in too general a way (“should work fast”). As a result, it is difficult for the team to understand what exactly is considered success, and for testers to know how to test it.


This article explains how to formulate clear, measurable, and testable performance requirements in a language accessible to business analysts and product owners.


What is system performance — in simple words

Performance is not just “speed.” It is a set of characteristics that describe how predictably and consistently a system operates under high user load and large data volumes.


performace metrics

Key components of performance:

  • Latency / Response time - how quickly the system responds to an action.

  • Throughput - how many requests/operations the system can process.

  • Error rate - how many errors occur under load.

  • Scalability - how well the system copes with increasing load.

  • Resource utilization - how much the system "costs" to operate (CPU/RAM, etc.).


Why performance requirements are important

Well-written performance requirements help:

  • align business and development team expectations;

  • prepare for peak loads (promotions, seasonality, PR campaigns);

  • avoid production “fires”;

  • include performance in the Acceptance Criteria, rather than mentioning it at the end.

One of the most useful practices: consider performance as part of the quality of service, just as important as functionality.


Mini-dictionary

• Response time ( Latency) - how much time passes from user action to result.

• Percentile (Percentile: P95/P99) - “in 95 cases out of 100 it will be faster than X”. This is more accurate than the average.

• Throughput - how many requests/operations are processed per second/minute.

• Concurrency - how many operations/users are “working” at the same time.

• Error rate - the proportion of requests with errors or timeouts.

• Availability - what percentage of the time the system is available.

• Graceful degradation - controlled simplification of functions during peak hours so that the system does not “crash”.

• Service Level Agreement (SLA) - a legally/formally guaranteed level of service (e.g. 99.9% availability).

• Service Level Objective (SLO) - an internal goal (e.g. P95 latency ≤ 500ms), often “stricter” than SLA.

• Service Level Indicator (SLI) - a specific metric that is measured (latency P95, error rate, availability).

levels of performance requirements

Load profile: what is it and why is it needed?

Even a correct requirement like “P95 ≤ 800 ms” will be incomplete if you do not describe the conditions under which it should be fulfilled.


Load profile - a description of how the system is used in real life:

  • what actions are performed most often (search, browse, checkout);

  • in what proportions;

  • how the activity changes over time (growth → peak → decline);

  • what typical data (for example, basket size or “heavy” queries).

System load profile

Example of a load profile for e-commerce

During peak hours, users may perform different actions with different frequencies:

  • 35% - browse the catalog

  • 25% - search

  • 20% - view the product

  • 10% - add to cart

  • 10% - place an order


It is also important to describe how the load behaves over time:

  • Warm-up: gradual increase, for example, 15 minutes

  • Peak: consistently high traffic, for example, 60 minutes

  • Decline: return to normal, for example, 15 minutes


This helps to formulate requirements not “in a vacuum”, but in a realistic scenario.

Scenario and performance requirements

How to formulate performance requirements: simple logic

A good requirement usually answers 4 questions:


1) What do we measure? (scenario)

2) What metric? (speed, throughput, errors…)

3) Under what conditions? (peak, duration, typical data)

4) How is it measured? (client, server, DBMS/E2E logs)


Example of “bad/good”:

Bad: “The system should work fast.”

Good: “For ‘Order Placement’, response time P95 ≤ 800 ms and P99 ≤ 1500 ms during peak load for 60 minutes; error rate ≤ 0.3%.”

Request distribution and response time

That is why it is important to measure P95/P99, not the average.


Confluence/Jira template

Scenario: [Description of the function/scenario]


Why is it important (Business importance): [Business value, impact on the user or process]


Description of the user action (User journey): [Briefly: what the user does and what result is expected]


Expected load (Load profile):

- Peak load (Peak):

- Share among all actions (%):

- Typical data (Data characteristics):


Speed ​​requirements (Response time):

- P95 ≤ …

- P99 ≤ …


Stability (Error rate): - ≤ … %


Throughput: - … requests/sec or … operations/min


Measurement conditions (Conditions):

- Peak duration:

- Data type:

- Environment:


Graceful degradation: [What is allowed to be simplified and what should remain stable]


Measurement/monitoring: [logs, E2E, external monitoring systems]


Template example

Scenario: Checkout


Why it is important (Business importance): Critical stage of sales. Delays affect user conversion and trust.


Description of user action (User journey): User clicks “Checkout” → receives order confirmation.


Expected load (Load profile):

- Peak load: 3000 requests/sec

- Share among all actions: about 10%

- Typical data: cart 3–5 products (P95 - up to 20 products)


Speed ​​requirements (Response time):

- P95 ≤ 800 ms

- P99 ≤ 1500 ms


Stability (Error rate): ≤ 0.3% during peak hours


Throughput: The system must process at least 3000 requests/sec


Measurement conditions (Conditions):

- Peak lasts 60 minutes;

- Production-like environment;

- Realistic datasets (obfuscated production data).


Graceful degradation: Allow for recommendations to be simplified during peak times, but order fulfillment must remain stable.


Metrics/Monitoring: E2E monitoring, server logs


How to write requirements for data processing systems

For products that involve data loading and processing, it’s often not “milliseconds” that matter, but the time to the finished result. This can be described in the most business-like terms.


Three simple categories of requirements:


1) Time to result: “New data should be available in reports/results no later than 30 minutes after loading.”


2) How long the system can withstand under peak conditions: “During peak conditions, the system should accept up to 200 downloads per minute without failures.”


3) Stability: “During peak activity, no more than 0.2% errors are allowed.”


Additionally, if there is a “business deadline”: “Night processing should be completed by 07:00, even if the data volume increases by 2 times.”


data process

Bonus: if the product works with embedded hardware

In systems that interface with devices, it’s not just “fast” that matters, but “always on time.” Here, requirements like:

  • “A task must be executed every 10 ms; maximum execution time is no more than 7 ms.”

  • “Signal processing must be stable without TTL skips.”


Checklist: is the requirement well formulated?

  • There are specific metrics (speed / throughput / errors / time to result)

  • There are P95/P99 percentiles (not just average)

  • There is a clear scenario

  • There are conditions (peak, duration, typical data)

  • It is stated how the result is measured

  • It is described what is allowed under the peak (degradation)


Conclusion

To make performance requirements work, a simple rule is enough: numbers + scenario + conditions + measurement method.


BA/PO does not need to delve into technical details. It only needs to correctly describe the product's expected behavior under real-world load and make it part of the acceptance criteria.


If you want to delve deeper into the topic of non-functional requirements, pay attention to the course "Non-Functional requirements(NFR): elicitation and analysis"


Art of Business Analysis training schedule 


News and articles on business analysis: 

 
 
 

Комментарии


bottom of page