The capacity of your application to scale and perform is mandatory and vital to your software development and maintenance. An inability to scale with an increasing workload can damage your brand reputation resulting in your customers turning away very quickly.

Essentially, if your application cannot scale effectively with increasing load, the success of your organization will be impacted. Users demand a swift operating application that causes no digital deterioration.

By 2021, organisations that have embraced a performance engineering approach for application development will outperform the competition that has not, in both customer satisfaction and business results”

Joachim Herschmann, Gartner 21 June 2018

What You Need To Know

Many organizations still don’t have such a holistic view of quality. Whilst the functional requirements are collated and tested thoroughly, the application performance is often inadequately captured.

Performance-related defects are difficult to remediate as they affect a larger number of components in different parts of the application. These types of system architectural and design defects are main contributors to technical debt. To avoid these larger technical debts, application leaders should adopt a performance purpose-driven approach in the development and maintenance of their applications.

Adopting a Proactive Performance Quality Strategy

Joachim Herschmann from Gartner in his article “Adopt a Performance Engineering Approach for DevOps”, concludes that:

Application leaders must reduce technical debt and mitigate application performance risks. They should adopt a combined “shift left” and “shift right” performance engineering approach to build a highly productive software development organisation

Joachim Herschmann from Gartner, 18 June 2018

An application that performs well, of course, is dependent on the “eye of the beholder”. According to 2018 research by Google, 53% of mobile users leave a site that takes longer than 3 seconds to load.

Adopting a proactive performance quality strategy by making it an intentional and explicit requirement within your software delivery program will ensure you are mitigating your application performance risks within your organization.

Recommendations

Key elements of a holistic performance engineering approach to application development include:

  • Defining performance requirements
  • Performance optimized design
  • Coding with performance in mind
  • Continuous performance testing as part of the CI process
  • Testing in production
  • Performance monitoring, including synthetics and real-user monitoring (RUM)

Involving and engaging key stakeholders (business, IT and users) from within your organization at the outset is the starting point. Setting up measurable performance goals will contribute to a successful performance testing regime.

Ready to Transition

If you are ready to make the transition to adopt a holistic performance engineering approach, Testpoint can help you and your organisation complete that transition. TALK TO US

Keywords used in this article

Synthetics
Synthetics monitoring and testing also known as active monitoring is the use of software to simulate user interaction with a given system. Synthetics monitoring and testing is a technique to collect data from dispersed agents configured to simulate the way real users interact with your applications.
Shift Right

Shift-right is about obtaining end user/customer feedback continuously using performance and usability monitoring strategies against your application.

 

Shift left

Shift-left testing is an approach to software testing in which testing is performed earlier in the life-cycle.

The shift-left concept is seen as an enabler of better business outcomes, aligning IT and the business more effectively.

Technical debt
Technical debt reflects the extra development work that arises when code that is easy to implement in the short run 
is used instead of applying the best overall solution.

Technical debt is generally a result of poorly written code and may also be known as design debt.
Load
Load normally referred to as "Load Testing" is a software test activity to determine 
a system's behavior under normal and peak conditions. 

The load is based on the number of users or transactions applied to an application or technology at any given
interval of time until the threshold has been reached.

Load testing will determine how each component (application, web server, database) of your system behaves under Load.  
Bottlenecks like CPU, Memory, Network delays, etc are identified during load testing.
Workload
A performance workload is designed to identify key test scenarios and load distribution profiles necessary 
which will model real life application/technology usage scenarios. 

This includes different user types and characteristics expected for your application/technology.
Scale
For an application to be able to scale it means it has been tested and verified against different number of user requests.

For example:
A web page to be considered as being able to scale you would need to monitor the number of users, CPU, network
For a web server you would check the number of requests being processed