It's Never Too Early to Think About Performance

9. April 2018
Kategorien
Newsletter abonnieren

It's never too early to think about performance
Business users specify their needs primarily through functional requirements. The non-functional aspects of the systems, like performance, responsiveness, up-time, support needs, and so on, are left up to the development team.
Testing of these non-functional requirements is left until very late in the development cycle, and is sometimes delegated completely to the operations team. This is a big mistake that is made far too often. Having separate development and operations team is already a mistake by itself, but I will leave that discussion for another article.
I was recently part of two large software development projects were performance was addressed to late, and the costs and time necessary fixing it was a magnitude larger as it would have to address performance early in the project. Not to mention the bad reputation the teams and systems got after going live with such a bad performance that users could hardly do their daily work with the system. 
Besides knowing before you go live that users are not going to be happy (and therefore should NOT go live) there is another big advantage of early performance testing. If you aren’t looking at performance until late in the project cycle, you have lost an incredible amount of information as to when performance changed. If performance is going to be an important architectural and design criterion, then performance testing should begin as soon as possible. If you are using an Agile methodology based on two-week iterations, I’d say performance testing should be included in the process no later than the third iteration.
Why is this so important? The biggest reason is that at the very least you know the kinds of changes that made performance fall off a cliff. Instead of having to think about the entire architecture when you encounter performance problems, you can focus on the most recent changes. 
Doing performance testing early and often provides you with a narrow range of changes on which to focus. In early testing, you may not even try to diagnose performance, but you do have a baseline of performance figures to work from. This trend data provides vital information in diagnosing the source of performance issues and resolving them.
This approach also allows for the architectural and design choices to be validated against the actual performance requirements. Particularly for systems with hard performance requirements, early validation is crucial to delivering the system in a timely fashion.

“Fast” Is Not a Requirement 

«Fast» is not a requirement. Neither is «responsive». Nor «extensible». The main reason why not is that you have no objective way to tell if they’re met. 
Some simple questions to ask: How many? In what period? How often? How soon? Increasing or decreasing? At what rate? If these questions cannot be answered then the need is not understood. The answers should be in the business case for the system and if they are not, then some hard thinking needs to be done. If you work as an architect and the business hasn’t (or won’t) tell you these numbers ask yourself why not. Then go get them. The next time someone tells you that a system needs to be «scalable» ask them where new users are going to come from and why. Ask how many and by when? Reject «lots» and «soon» as answers.
Uncertain quantitative criteria must be given as a range: the least, the nominal, and the most. If this range cannot be given, then the required behavior is not understood. As an architecture unfolds it can be checked against these criteria to see if it is (still) in tolerance. As the performance against some criteria drifts over time, valuable feedback is obtained. Finding these ranges and checking against them is a time-consuming and expensive business. 
If no one cares enough about the system being «performant» (neither a requirement nor a word) to pay for performance tests, then more than likely performance doesn’t matter. quote
You are then free to focus your efforts on aspects of the system that are worth paying for.

Automated Performance Testing

In order to keep costs and spend time on performance testing in check, I advise you to automate this as much as possible. Tools like Taurus simplifies the automation of performance testing, is built for developers and DevOps, and relies on JMeter, Selenium, Gatling and Grinder as underlying engines. It also enables parallel testing, its configuration format is readable and can be parsed by your version control system, it’s tool friendly and tests can be expressed using YAML or JSON.
Here are some types of tests you can run automated:

> Load Tests are conducted to understand the behavior of the system under a specific expected load.

> Stress Tests are used to understand the upper limits of capacity within the system.

> Soak Tests determine if the system can sustain the continuous expected load.

> Spike Tests determine if the system can sustain a suddenly increasing load generated by a large number of users.

> Isolation Tests determine if a previously detected system issue has been fixed by repeating a test execution that resulted in a system problem.

Closing Thoughts

Technical testing is notoriously difficult to get going. Setting up the appropriate environments, generating the proper data sets, and defining the necessary test cases all take a lot of time. By addressing performance testing early you can establish your test environment incrementally avoiding much more expensive efforts once after you discover performance issues.

In a nutshell: It’s never too early to think about performance.

Tags

Das könnte Sie auch interessieren

The Professional Services Transformation Paradox #11 – Risk Mitigation vs. Innovation

7. Mai 2026

Professional services firms are designed to minimize risk. Their business model depends on trust, reputation, and consistency. Clients rely on them for assurance, judgment, and reliability, which means failure is not just a delivery issue, but a firm-level risk. A single incident can have disproportionate consequences, whether through litigation, regulatory scrutiny, or reputational damage. That

Weiterlesen

The Professional Services Transformation Paradox #10 – Client Intimacy vs. Platform Standardization

28. April 2026

Professional services firms win through relationships. The closer they are to the client, the more value they create. Understanding the client’s context, adapting to their needs, shaping solutions around specific situations rather than applying generic ones. That is where trust is built, where differentiation happens, and where premium pricing becomes possible. Standardization moves in the

Weiterlesen

The Professional Services Transformation Paradox #8 – Short-Term Revenue vs. Long-Term Capability

23. April 2026

Professional services firms are built around revenue. Revenue is visible, measurable, and immediate. It drives partner compensation, signals performance, and anchors decision-making across the firm. Every client won, every project sold, every hour billed translates directly into current-year outcomes. Capability building works differently. It requires investment upfront, often without immediate return, and pays off over

Weiterlesen

The Professional Services Transformation Paradox #7 – Partner Autonomy vs. Firm-Level Strategy

18. April 2026

One of the defining features of professional services firms is partner autonomy. Partners are expected to build and run their own business. They originate clients, grow revenue, manage teams, and are rewarded based on the performance of what they directly control. This creates strong ownership, high accountability, and a culture where individual success is tightly

Weiterlesen

The Professional Services Transformation Paradox #6 – Service Lines vs. Firm

16. April 2026

One of the most persistent illusions in professional services is the idea of “one firm.” From the outside, large firms present themselves as unified organizations. One brand, one client proposition, one set of capabilities delivered across audit, tax, advisory, and deals. The expectation is clear: if the firm is integrated in the market, it should

Weiterlesen

The Professional Services Transformation Paradox #5 – Global Standardization vs. Local Economics

12. April 2026

One of the least discussed challenges in large transformation programs is the illusion of standardization. From the outside, global professional services firms look highly uniform. One brand, one set of services, one methodology, delivered across countries in a way that suggests consistency and control. Audit, tax, consulting, deals all appear to operate within the same

Weiterlesen

The Professional Services Transformation Paradox #4 – Accountability vs. Alignment

1. April 2026

In large transformation programs, accountability is rarely missing. It is distributed. It sits with executive sponsors, steering committees, transformation offices, service line leaders, and partner groups, each with a defined role and a legitimate claim to involvement. On paper, this creates alignment. In practice, it often removes ownership, because when accountability is spread across too

Weiterlesen

The Professional Services Transformation Paradox #3 – Long-Term Investment vs. Short-Term Management

27. März 2026

One of the most underestimated constraints in professional services transformation is not technology, capability, or even funding. It is time. Real transformation takes longer than most firms are structurally able to tolerate. Core systems such as ERP platforms, data architectures, AI capabilities, or global workflow solutions are not incremental improvements. They are foundational changes. They

Weiterlesen

The Professional Services Transformation Paradox #2 – Internal vs. Client Execution

26. März 2026

One of the most persistent, and least openly discussed, tensions in professional services firms lies in how they execute their own transformations. It is a tension that does not reveal itself in strategy decks or partner presentations, but in the day-to-day reality of large internal programs that quietly struggle to deliver. At first glance, the

Weiterlesen

The Professional Services Transformation Paradox #1 – Technology Alliances vs. Internal Fit

20. März 2026

This article is part of a series exploring the tensions at the core of the Professional Services Transformation Paradox. The paradox itself is straightforward, yet deeply consequential. Firms that excel at transforming their clients often struggle to transform themselves. Not because they lack capability, but because their own structures, incentives, and operating models create resistance

Weiterlesen
Next