Which techniques should be used and what are the pitfalls to avoid?
Should we turn to technical experts or psychologists? A lack of responsiveness means losing clients and, therefore, revenue. My client, a major retail player, recently encountered performance issues following an overhaul of its e-commerce website, carried out with SAP Hybris*. The first step was, of course, to record metrics in order to identify the location of obstacles. It rapidly became clear that our biggest problem was related to the new Hybris promotion engine based on Drools. Our initial, human reaction was to blame the solution and Drools. In the end, this turned out not to be very constructive. With the help of SAP Hybris experts, we were able to put the design of our solution into perspective. Instead of taking on the risky challenge of optimising the promotion engine, or tiny sections of code, we called into question all of our implementation choices. This decision, which was a difficult one, as it meant facing our mistakes and initial choices, turned out to be very beneficial for the project. Putting things into perspective enabled us to rethink our design and reach a viable solution, while continuing to use Hybris, with functions such as prices and discounts, as well as its new promotion engine.
Performance tests are an essential step in the management of performance issues.
This phase, which is often poorly handled, can be critical for a project. To begin with, we determined volumes and scenarios intended to represent the reality of customer journeys. Initial results proved to be catastrophic... Once again, human nature led us to blame the quality of the code at first. The risk is to naively go down this path and spend a lot of energy on micro-optimisations, which, at the end of the day, provide no substantial benefits. Instead of doing this, we challenged our scenarios and volumes. We observed that the results of our first tests were not viable and ultimately represented absurd cases. Following analysis work, we completely reviewed our scenarios and arrived at much faster response times, without having changed the code! The SAP Hybris solution is currently used by many key accounts in various sectors. Out of the box, it offers many functionalities and customisation possibilities. However, this solution has its limits and is, of course, unable to meet the requirements of all clients, in all markets, without being personalised. Given that SAP Hybris is a proprietary solution, customising its core can be very risky, or even not recommended by the publisher. We were lucky enough to be able to work in collaboration with SAP experts, in order to make viable optimisations to our customisations and the Hybris core. This win-win relationship offers us the opportunity to benefit from experimental optimisations on which Hybris's R&D team is working and, for them, it makes it possible to test the viability of their changes in a real environment.
Looking at performance also means looking at oneself
It means calling into question code you have worked on for weeks or even months. It means being able to say "let's scrap everything and start over". It also means being able to gain perspective and think about different possibilities that the solution could offer. As shown by the example of the performance tests, we must be able to call into question "truths" that we base ourselves on. It is easy to lose sight of reality and get lost in obscure developments because a given tool has slowed down. The source of the problem can be very different indeed and it is this that needs to be located and dealt with! Lastly, it is an excellent opportunity to better understand the solution you are working with by exploring, with the help of experts, seldom trodden paths. For a consultant like myself, this collaboration gives me faith in the solution, by showing the efforts and future improvements that R&D promises.
* SAP Hybris is now named 'SAP Customer Experience'