If you have ever done any DIY in the UK or employed a builder or tradesman, then you have almost certainly been a customer of Travis Perkins plc. A British builder’s merchant and home improvement retailer, the Group has over 1,800 branches across the UK. It is listed on the London Stock Exchange and the FTSE 100 Index.
As you might expect, an organisation of this size which has made over 200 acquisitions in the last decade, has a complex operational system – and that complexity is reflected in their IT systems. The IT platform ran the entire group’s operations, from transactions and stock control to customer management and HR. The system was based on a technology stack named UniVerse, which was developed in the late 60’s and combined a proprietary Operating System, a variant of the BASIC programming language, and a multivalued database.
This legacy system had served the group well, but now it was limiting capabilities and growth. Recruitment was a growing problem and few employees understood maintenance of the codebase, let alone changes. The cost of operating the system was growing, while unexpected problems could prove a major catastrophe. The legacy code was a risk to business continuity – or as we put it – a ticking time bomb.
Wisely, Travis Perkins looked ahead and knew that these symptoms would only get worse. They determined to tackle the problem head on. Migrating to a modern technology stack had become a critical business priority.
The costs involved with replacing the system in its entirety in one go were large, as was the potential for something to go wrong. The very scale of the issue felt overwhelming.
UniVerse code tracer developed by Energized Work
After exploring a range of options, Travis Perkins called Energized Work. The task was to find a migration path from the legacy system to a new and modern platform. That may sound simple, but those at Travis Perkins did not underestimate the task. No-one was really certain what the legacy system did – the stories about the system often resembled legend more than technology!
Energized Work took a stepwise approach. We began by picking a single thread as a demonstration of what could be achieved. We could learn, develop the internal teams’ capabilities and provide a model for migrating each element in turn.
The easy thing to do would have been to find something non-critical. But we knew that wouldn’t help Travis Perkins in the long run. So instead we grasped the most complicated and business critical part – the pricing business logic. A senior leader at Travis Perkins ruefully said, “if you can demonstrate how to deal with GET.PRICE, it will be totemic.”
The pricing logic consisted of 57,000 lines of BASIC. The first comment had been written in 1987. There were no unit tests and no debugging tools. Because of the risk of making changes to existing code, engineers had adopted an approach in which new logic was simply appended to the end of the main routine. It was – to put it in layman’s terms – big and complicated.
Knowing that neither huge manpower nor off-the-shelf ‘methodology’ would make headway, Energized Work deployed a 3-man crew and launched an extensive forensic discovery effort. With little initial understanding of the technology stack and the business logic, we began framing the problem.
The team began by totally immersing themselves in the engineering and business departments, conducting interviews and gathering data. They set up Knowledge Management systems and began sketching a portrait of the existing platform. At the heart of this monumental task was a challenge to document the existing business logic buried within a mountain of spaghetti code.
The legacy technology stack lacked tools to help debug and trace code. The team engineered a suite of tools to help them understand the code base. These tools offered immediate benefits, reducing activities that would normally take a day or more into the work of a few minutes. The team then integrated the individual tools into a framework which enabled end to end testing of the pricing logic from outside the legacy implementation.
This offered a crucial safety net, now the team could investigate creating rules that would add real value at the enterprise level – without worrying about endangering existing operations.
Completing the mission
Travis Perkins needed an overall migration plan that was technically sound. But before the company could commit to even the most brilliant technical advice they needed absolute certainty that new components would not negatively impact the business. Updating and modernising the system wasn’t enough. Our ambition was to start embedding those advanced capabilities that the business had been crying out for.
The mission produced three key deliverables:
Visual business rules builder/analyser UI for the modern pricing engine developed by Energized Work
Energized Work delivered all of this within 12 weeks. It met both business and technical challenges and surpassed Travis Perkins’ expectations of the project’s possibilities. The Energized Work crew did not work in isolation – we trained and developed the existing teams’ skills by working together.
Travis Perkins have a practical proven plan for tackling their legacy; they feel fully confident in doing so, and their teams have won awards for their Agile practices. The organisation as a whole is well on its way to another 25 years of sustained growth.