Tackling Legacy Technical Debt: from Monolith to Microservices

Most large, non-digitally native companies are currently going through some form of digital transformation within the constraints of a legacy technical stack. That can make it hard to get new initiatives to market quickly. It can be restraining on innovation, both in terms of getting new products out to market and through the technical constraints of existing monolithic platforms that control the customer experience. Those platforms are often delivering sub-standard experiences as well as just being slow, which drags down engagement and conversions. The approach also leads to a brittle enterprise architecture, with tightly integrated, multiple legacy platforms. This creates high risk dependencies and requires expensive testing cycles.

As a technical consultancy we see this pattern a lot. The solution (the future state of architectural vision) and the strategy to iterate towards that vision are also a common pattern. At a high level the solution to the problem is one that we've helped many of our clients overcome. The diagrams below represent most of the organisations that we work with. 



Over the last 10 to 20 years we’ve tried to solve our digital needs by sticking in another monolithic platform that promises to solve all our problems. The icon used to represent release management processes should probably be globally adopted. Monthly (or fewer!) releases with technical teams staying up late to conduct testing and worrying about a possible rollback are still all too common.




The previous scenario is a little simplistic for more complex organisations. Let’s have a look at an enterprise version of this diagram:


Our “scary integrations” are the architectural equivalent of the “here be dragons” label on an old map. Who knows how they work?! Perhaps you’ve got some single sign-on but perhaps you’ve still got users logging into multiple systems that are slow and deliver a poor experience.



If you were a trendy Silicon Valley tech start-up, you’d architect using a more fluid enterprise architecture that used a broader range of third party SaaS services and microservices, decoupled from your front-end experience layer providing world-class (and fast!) experiences to your end users. And the whole thing would be designed from the customer experience up. But you can’t throw it all away and start again. We’ve never seen that be commercially viable.



Initially we push the monolithic platforms up behind a new integration / orchestration layer. We use traditional IT processes behind the scenes and more modern continuous delivery to get value out to customers quickly through bespoke, lightweight web applications (and other channels as required).



Too many consultancies that aren’t practical “doers” or lack capabilities in lean product delivery don’t support clients in this area. We still need to challenge the vision and de-risk it by releasing iteratively, since rebuilding the entire experience layer could be a huge task if not broken down. Typically, we use existing (or new) A/B testing tools to build and release the high value user journeys iteratively, testing them against the legacy experience. 



Over time this approach means that we get close to our vision. A high performing experience layer enables rapid releases to market using a modern DevOps approach. To measure the efficacy of what we have built, this will be supported by data and analytics.



This architecture means that the business is much better placed to start to split out those monolithic platforms behind the scenes -perhaps replacing an enterprise WCMS with a lightweight headless CMS. This can be considered in parallel to earlier steps. Getting rid of all those monolithic platforms may take a very long time but this iterative approach to delivering a future state architecture has many benefits. 

Innovation at this point is much easier. We can help clients create new, engaging experiences, perhaps born out of a proof of concept. These can be more easily deployed to your customers through a modern experience layer. We can even help you deliver content and experiences through voice channels via the service layer.

We’ve seen this approach deliver huge benefits to our clients, such as Vodafone, over the last few years. If this problem looks familiar and you’d like some support in defining your future state architecture and a strategy to iterate towards it, bringing in the best practices from lean product delivery, please give us a call on 02072425698 or drop us an email hello@mmtdigital.co.uk.