Skip to content

How to Assess The Future Performance of IT Systems in Retail

Technology

Mar 17, 2021 - 5 minutes read

1450 Retail IT Predict Future Blog 416X300[23965]
Michal Galinski Senior Project Manager

He’s a Project Manager at Objectivity, delivering projects for one of UK’s most successful retailers. Interested in technical aspects of the solution and how they impact project realisation. After work, he likes running, dancing and building things from wood and other materials.

See all Michal's posts
1553 Devops Whitepaper News Section 416X300 EN

Share

"It is very difficult to predict — especially the future."
Neils Bohr

 

Retail companies depend on systems that facilitate daily allocation, ordering, dispatch, and delivery of products, and provide crucial reporting to the business. The performance of these systems, their ability to process data on time, and to provide the right service to the users is crucial for the company to run smoothly.

However, while ensuring the proper performance here and now is definitely important, it might not be enough to support business growth. According to Eurostat, retail trade volume and turnover grew by 15% over the last five years.

retail trade volume and turnover in last 5 years

Figure 1: Retail trade volume and turnover in last 5 years

Companies can usually express their plan of growth in business terms; for instance the number of new shops to be opened, their expected size and staff count, or the anticipated sales growth. Having all this in hand, how to predict the system performance and the required capacity in the next year or two?

Let’s dive into how Objectivity solved that puzzle for one of its retail customers. In this post, we will focus solely on the system’s ability to process data on time. The performance of the system in terms of responding to user requests will be covered separately.

Understanding The Correlations and Trends

The system needs to load and process daily stock and sales data related to products in warehouses and stores, and process changes in the product lists to determine which items should be available in each store. Goods expected to be delivered to depots soon are also considered. There’s a limited time window to finish the processing and let the users access the system early in the morning. The system has hundreds of data tables and a dozen jobs to execute simultaneously during the night to handle this challenge.

How to correlate business growth parameters with the system’s internal data and find the critical areas to measure?

In order to answer this, we implemented a monitoring system that collects a wide range of information, including business parameters (e.g. the number of active stores), data volume parameters (e.g. the size and number of recodes in tables) as well as the executed jobs, together with their execution time. The monitoring data is collected in real-time using Filebeat and Logstash, and it’s put into the ElasticSearch database. Kibana tool is used to visualise the data with charts and graphs. These tools, together known as the ELK Stack, provide a fast and reliable search engine for all measurement data, and allow us to analyse trends across data sets.

Trend of data volumes measured for the retail systems

Figure 2: Trend of data volumes measured for the retail systems. Data from 2019.

The above graph shows the amount of data processed every day of the year. You can clearly see a peak around the golden quarter.

Over the last years, we carried out an analysis of business trends related to changes of database parameters and job execution time. It gives us a great insight into the relationships between business growth parameters, data volumes and system performance.

Populating Data From The Future

By understanding the relationship between business growth parameters, the volume of the data and their impact on the job execution time, we can predict the expected volume of critical data, based on business growth plans. But is it just about inserting dummy data to expand the critical tables and input data to the expected size? Is that so simple?

At the end of the day, we would like to run the system to process the predicted transaction volumes. Dummy data, in most cases, can lead to processing errors due to the lack of data relationships and wrong timestamps. Even if the system can process such a data set (generating warnings/errors to the log), the execution time might not be relevant. In the worst case scenario, the system might process this data quicker due to the rejection of all the records that we inserted.

As a solution to that problem, we have developed a bespoke tool to populate the future data sets with all the required relationships and dependencies, either within the database, or between the input and the database. Although part of the data (e.g. sales figures or stock value) is still dummy, all the relations, database keys and constraints are in place, so the application can process the predicted volume without errors.

Another aspect to consider is how many data sets will be needed to produce reliable results. Let’s assume that the client wants to know what will happen in the next 2 years. It wouldn’t be wise to populate the data only for the +2 years point in time. Having more data sets, e.g. from +1 year and +1.5 year from now, will give us more confidence and allow us to calculate the trend line.

Last but not least, it’s important to choose the right starting point — the database backup and the input data that we’ll use as a baseline to populate the future data. Look at the trend presented on the figure above. There is a huge difference in the data volume between August and November. Increasing the data volume from August by 20% won’t be enough to reach the November’s peak, let alone the expected future growth. The best option would be to choose the November data as a baseline. This, however, might require long-term planning — a 6-months old backup may no longer be available.

Measuring The System Performance

Having all this prepared, we can run the system and measure the time required to process the future data. Once again, we are using the same monitoring system to oversee the system under test. All the parameters: business growth parameters, data volume parameters and executed jobs with their execution time are collected in the same way as in the production system. This gives us a great capability to visualise and compare the test environment measurements with the measurements taken from the production system. At the same time, we can make sure that we match the expected growth, and learn when the future eventually becomes the present.

Conclusion

Predicting the future performance of a system is crucial for every company and software systems for retail are no exception. You need to make sure that the currently effective applications can handle a demand increase from the business. And if not, the problem needs to be solved before it impacts the growth plans. There are several aspects to be considered before we can thoroughly test an application. These include: collecting business growth parameters, analysing data trends and application performance in relation to the given parameters, mocking up the data, and eventually running the performance tests.

Prediction is not a trivial task, but with deep knowledge of the business and proper tools in place, it can be done. Moreover, if we’d like to have a long-lasting relationship with the customer and keep their systems in good health, it’s very important to check the future system performance on a regular basis. And this is what Objectivity does for its clients — as presented in the case study describing how the ongoing business growth is supported to ensure high performance.

1553 Devops Whitepaper News Section 416X300 EN
Michal Galinski Senior Project Manager

He’s a Project Manager at Objectivity, delivering projects for one of UK’s most successful retailers. Interested in technical aspects of the solution and how they impact project realisation. After work, he likes running, dancing and building things from wood and other materials.

See all Michal's posts

Related posts

You might be also interested in

Contact

Start your project with Objectivity

CTA Pattern - Contact - Middle

We use necessary cookies for the functionality of our website, as well as optional cookies for analytic, performance and/or marketing purposes. Collecting and reporting information via optional cookies helps us improve our website and reach out to you with information regarding our organisaton or offer. To read more or decline the use of some cookies please see our Cookie Settings.