Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Using Data to Predict Future Usage and Increase User Insights

Using Data to Predict Future Usage and Increase User Insights

Lire ce contenu en français

By identifying usage trends, you can proactively adjust load, scaling, and routing to better handle the load on particular parts of the globe when you know it will peak there, says Craig Risi. Data about how users interact with your application can be used to design future features that better mimic these patterns and ensure that new features have a better chance of solving real user problems and getting suitably adopted.

Risi will talk about using data to predict future usage at Agile Testing Days 2022. This conference will be held November 21-24 in Potsdam, Germany.

According to Risi, having data from actual usage patterns and understanding which paths in a website are used most often can help to determine the correct load requirements and decide on future work that should be developed based on what is important to your clients.

Another area of data to monitor is system errors and the issues raised by the users through the support teams, as Risi explains:

Having a look at system errors and then trying to understand them helps to prevent them from happening in the future. And as for issues that users experience, it's a good way to understand potential modifications or defects that need to get addressed and then prioritize that in the development cycles to give a better user experience. Even if it's a minor thing, if many users are complaining about it, then it’s worthwhile to change it. This has the added benefit of showing customers that you take their feedback seriously and they are more likely to keep using your applications as a result.

According to Risi, most software issues don’t just happen. There were events, whether it be user, data, security, or performance related that caused them to happen. Some of these might be odd anomalies and obvious errors that need to be fixed, but by understanding clients’ usage and overall system performance, and the events that lead up to performance and security issues, you will be able to both change your software to better support these needs and identify potential issues before they arise:

I have found this especially true of performance issues where you can monitor different aspects of system performance and very reliably identify when system performance is tracking towards bottleneck or failure and be able to prevent this from happening. Either by adjusting the load or fixing the issue immediately.

InfoQ interviewed Craig Risi about using data to increase user experience.

InfoQ: How do you use data to understand how the system behaves and how users experience it?

Craig Risi: We can track the actual performance of the underlying software and servers, depending on laid across different times of day and the year. Here you can measure actual response times of services, DB requests, and UI rendering. This is measured in conjunction with things like CPU and memory usage of the underlying VMs or servers to help identify how the application and code perform in certain conditions and identify where further optimization can be made while being able to correctly predict load requirements for the future.

This is not a removal of traditional performance testing, but is done in conjunction with it. Most performance and laid testing deals with expected usage are laid across specialized conditions and environments, which may not always be indicative of actual usage. So monitoring this gives a better idea of what is actually happening with the performance of the software and system and should help shape the future direction of performance testing, along with system optimization.

InfoQ: What benefits did you get from gathering and using data?

Risi: It taught me an awful lot about how users use our system, understanding what is important to the client, and also getting a better insight into how our different development teams work.

I was able to first adjust our development schedule to focus on things that mattered to our clients and would provide a better user experience.

And in understanding our issues and what is causing them, I was able to drive big organisational change in the way teams and the company operated which helped to improve our development processes, testing apps and prevent issues from occurring. This was especially effective in new teams which had yet to establish a good working pattern, but could leverage these learnings from other teams to prevent them from occurring in their own code.

About the Author

Rate this Article