Performance Testing in an Agile World
We used Performance Engineering to help a leading UK Grocery retailer deliver a scan and go application to hundreds of stores.
Our client is a leading UK grocery retailer with an estate of over 1000 stores. As part of a digital strategy they provide a till-free contactless ‘scan and go’ app for a new generation of ‘digital savvy’ shoppers.
The challenge
Initially performance was the main factor behind our clients inability to rollout their solution to their entire estate, when we first landed the solution could only handle the throughput of a handful of stores. There were a number of moving parts to this solution, with varying technology used across multiple development teams, some inhouse, some outsourced. It was also becoming increasingly important for the solution to not only scale to the desired rollout plan, but also offer a level of resilience paralleled to the criticality of the physical till solution.
What we did
A Performance Engineering team was initially put in place to identify and resolve the immediate inability to scale. Within a short time frame it was clear that one of the key services within the solution was being throttled by an unmaintained database instance. We engaged a DB technician to assist and within days the solution could now scale to several dozen stores. We continued with this approach of identifying the next “weakest link” in the solution and working with the development team to implement a fix.
To do this the team introduced an iterative process, knocking out one bottleneck at a time. This included a daily automated test run against a predetermined baseline, which allowed the development teams to get much faster, and consistent feedback on any changes made: for every change made, there is a validation exercise to check whether performance, or scalability, has improved, worsened, or stayed the same.
Outcome
Our approach allowed our client to offer their contactless shopping experience to several hundred stores, with participation increasing daily. At a time where social distancing is encouraged, yet shopping still essential, we helped deliver a safe environment for customers to shop.
We are now introducing a more frequent and targeted testing approach. This will not only accelerate the feedback loop to the development teams but will increase the rate of change whilst maintaining confidence and quality in delivery.