Digital decoupling: Legacy technology doesn’t have to hold you back
- Posted on December 20, 2019
- Estimated reading time 3 minutes
Today’s rapid rate of technology innovation has resulted in a similarly rapid change in customer expectations. It’s no longer optional to have a user experience that’s as fast and frictionless as possible – customers demand it, and any hitches in that experience are likely to be broadcast on social media.
This makes most markets ripe for upstarts who think they can do better, and in many cases disrupt entire industries. Today’s organizations need to be able to respond if they are to survive, they need to be Ready by design.
Businesses who don’t react fast enough risk putting their future in jeopardy, or at best, miss an opportunity to grow or improve customer satisfaction levels. But what’s holding them back from innovating? What do they have to contend with that the upstarts do not?
One answer is legacy technology – the same tech that made them successful in the past, is now their Achilles Heel. A recent Gartner report stated that “one of the biggest inhibitors of innovation is the inertia created by existing large systems.” Gartner also says that “modernizing legacy apps is top priority for software decision-makers,” so businesses are recognizing that there’s a problem.
The solution, however, is rarely easy. Organizations that invest heavily in building and implementing mission-critical systems find resistance from their line-of-business stakeholders – the same functionality just on a newer platform? And we can’t get our new features added until you’re done in a few years? No thanks.
The days of multi-year “big bang” modernization projects are numbered, if not gone completely. So how do we get the best of both worlds – leveraging the power of our historical investments and modernizing them incrementally, without having that “legacy tech” hinder the delivery of new features and functionality? Even more importantly, how do we avoid falling into this trap again?
Embracing the concept of Evolutionary Architecture is a good first step. Evolutionary architecture designs for incremental change in its architecture as the primary principle. If this is prioritized and built into a system architecture, changes to applications become easier and faster because they’ve been designed with change in mind, designed to be modular and decoupled, shaped to adapt and evolve.
Incorporating the practice of Domain Driven Design accentuates this, resulting in systems that are designed and organized around business capabilities – which frequently change. That change can then propagate more broadly into the enterprise, enabling improvements to development and release practices as well as overall agility. Coupled with embracing new native and open-source technologies, this can also extend an enterprise’s innovation into partner ecosystems. Sounds great – but how do we get there without a massive overhaul to our systems?
Our colleagues within our parent company Accenture have referred to this type of incremental change as Digital Decoupling, and we’re seeing this approach resonate well as we talk to clients. It involves splitting a monolithic architecture – over time – into one that is microservices-based and event-driven.
The event-driven part is critical, as it allows new microservices and existing systems to remain decoupled, but in sync. Change Data Capture techniques are the key to making this work with existing/legacy systems and enable the incremental transformation, while APIs are leveraged to make that transformation transparent to internal and external customers. By using Domain Driven Design techniques like Event Storming, we’re able to help our clients create the appropriate domain models which form the basis of the architecture for microservices and the boundaries between them. All of this requires foundational elements of modern engineering and DevOps, ensuring things like security and monitoring are incorporated from the start.