Application performance issues affect all businesses, big and small – and the examples are daunting. If such a giant as BBC found they lost an additional 10% of users for every additional second their site took to load, how can you prevent losing customers due to poor performance? Get started with UX! In this article, I’ll help you understand the mechanics of performance and suggest a few patterns that can maintain users’ attention and engagement.
Expectations vs. reality: devices and networks
When it comes to digital products, there are two major aspects of performance. First, there are user expectations regarding how smooth and fast modern applications are. Those expectations are constantly being raised by new fast-performing operating systems and the increasing network speed limits. If your target user group has high expectations regarding performance, then you should make sure to meet them.
The second aspect of performance refers to the limitations of target user groups. Let’s imagine building a solution that will be used in developing countries, where smartphones are not high-end and network conditions could be lower than expected. If this issue is not properly addressed in your product, you will end up with poor performance and poor user experience.
To better understand the performance aspect of the product, it might help to divide what is happening on the client’s side into two separate elements:
- Client app
- User device
Therefore, the overall performance of the application will be the result of the efficiency of the backend, network conditions, the client app and the capabilities of the user device.
How to measure the performance of your product
You can use either application monitoring or event tracking tools (or both if you’re particularly curious).
Let’s see what you can achieve with event tracking. First of all, it enables you to measure and store information about the loading time for every event tracked. One more thing you need to do is calculate those times in the code of your app, but this should be a no-brainer for your developers.
Here you can see that the loading time is sent as a property assigned to an event called
transfer_started. The loading time sent is also rounded to full seconds as this will help us generate a neat report in Mixpanel.
That’s what you can obtain after sending the said data to Mixpanel: a distribution of loading times. It gives you a clear picture of how long it takes to load a particular screen from the user perspective.
The diagram below will show you something more interesting: conversion calculated separately for users with shorter loading times and for those with longer ones. If you get such a picture in your product, it tells you that performance affects your conversion.
When to optimise performance
When different performance results in different conversion rate
When it comes to the question “should we optimise performance?” – the answer is clear: yes, if you have any evidence that the current performance affects conversion. This is a situation when event tracking should help you understand user behaviour and detect issues to improve.
But what should you do if all users are experiencing roughly the same performance? In such a case, event tracking will not give you the necessary answers.
When your benchmark product performs better
The second clue is the comparison between your performance and the performance of any other product you choose as a benchmark. What might seem average performance to you may turn out to be below expectations when paired with the indicators of a similar application.
Just give it a try
Even without any clear evidence of how your product is affected by the current performance, it’s worth to give it a try. You may not even realise how different factors of your app performance affect conversion – because they’ve always been there. Example? DoubleClick by Google found out that 53% of mobile site visits were abandoned if a page took longer than 3 seconds to load. You can find more such cases on e.g. Google Web Developers website, which might give you an idea of different application elements that need a closer look in terms of performance.
How to optimise performance
If you are convinced that you should optimise performance of your product, then how can you do this? In theory – it’s simple. You just need to make all of your software components work in a more efficient way. In practice, there could be a lot of challenges, especially if the limitations of user devices are the key factor harming your performance.
On the User Experience level, there are a few general patterns you can apply to minimise the harm caused by less-than-perfect performance (especially when it’s affected by poor network conditions). The fundamental pattern is to use loading indicators for any operation that takes time from the user perspective.
If you use loading indicators when the screen is being initialised, you can consider showing them with some delay. It will eliminate the blinking effect if your solution is already quite fast.
You can also consider a global loading indicator used every time when some component loads data from your backend.
Another way is to use asynchronous communication with your API. It’s the best solution for operations that require more time to complete. Such a pattern may require some additional UI elements to inform that the operation is in progress. In many cases, you need to improve User Experience with additional notifications (in-app or using email).
If possible – improve this pattern with a progress bar.
The need to analyse and improve performance in software products applies to anyone, including you. Even though it may seem like everything is OK on your end, remember to measure performance from your user perspective as well – you may not realise how much it affects conversion rates. There are plenty of tools available to measure the performance of digital products and search for issues that need to be addressed. Finally, you can apply several surefire design patterns to create a more engaging experience.