Skip to Content

Performance Perspective of Quality

When delivering a digital product, there are seven perspectives of quality. The performance perspective of digital quality is about establishing the availability of your product when your audience is looking to use it. You cannot chose when someone interacts with your product, so it must perform when they do. All the investment in creating a compelling user experience and functioning product are for naught if someone goes to visit your product and it doesn’t load or is very slow.

Performance is about how your product scales and responds under expected load scenarios both now and in the future. There are three key components of performance:

  • Responsiveness – How quickly does the product respond to an end user’s actions?
  • Concurrency – How many end users can interact with the system at the same time?
  • Reliability – How stable is your product and how likely is it that it could fail during a given time period?

Responsiveness and concurrency work together. When a system doesn’t support concurrency it won’t be responsive. However, a non-responsive site doesn’t necessarily mean it has issues with concurrency.

To plan for performance, start with projecting your usage by end users so that you have a good sense of concurrency demand. It’s key to define the peak load since that is what impacts responsiveness and concurrency. If you have ten thousand visitors spread evenly over a day that is much easier to handle then if the load is spread over ten minutes. Often it is difficult to project peak load, so you need to make assumptions. If you have an existing product, start with looking at past data and their trends. If you have a new product you need to make educated guesses about the behaviors of your users.

Today, cloud services like Amazon AWS or Microsoft Azure allow you to setup scaling that supports concurrency so new servers can be added to your hosting infrastructure on demand. Instead of building an expensive infrastructure for the worst-case scenario, cloud services allow you to build based on criteria you set, server load, etc. Then, new servers can be spun up and added to your infrastructure when needed and automatically removed from rotation once the load decreases.

You also need to consider the responsiveness of your site and the performance of your front-end. This is the main element of responsiveness that isn’t impacted much by concurrency. This includes considering the size of your pages and the type of content you are sending. When a web browser requests a page from a server, say you type www.itx.com into your browser, that request is sent over the internet to the server and the server responds with everything that makes up that page: the code, images and formatting, to the browser. Therefore the size of the “page” and how the page is designed makes a significant difference in how fast it loads.

Performance doesn’t have to be a guessing game. There are proactive front-end testing tools such as Google PageSpeed or Yahoo YSlow that test and give you a grade for your front-end performance and load time. In addition, performance testing can be done to simulate concurrency loads on your infrastructure and measure how it responds. There are a wide variety of tools to do this from loadimpact.com, which does software as a service load testing, to open source tools like Apache JMeter.

The final area of performance is reliability. How does the system work overtime? Issues occur with systems when the unexpected happens. This most often is unexpected data that the system cannot handle or obscure use cases. New browsers or browsers not tested on can also cause problems. Your product should therefore handle errors gracefully and log those errors for analysis by your support team.

Performance is a critical component to the effectiveness of your product. You need a system that is resilient and can scale to your needs today and your needs tomorrow, all in a cost effective way. By proactively testing front-end and overall performance through testing and constantly measuring performance with logs and monitors you can greatly increase the likelihood that you will have a performant product.

Like what you see? Let’s talk now.

Reach Out