By Daemonite Des Walker
Legacy presents a real problem in IT today. Traditional businesses have invested huge amounts of money in systems, which then become difficult to update. Younger companies buy SaaS or build modern and cloud-native applications which allow them to shift strategy and processes quickly. This gives them a significant competitive advantage. So if you’re in enterprise, how should you handle your legacy systems?
I’ve spent my entire career involved with legacy systems. I’m used to the complexity they present. But for business leaders, it’s a considerably bigger headache. Leaders don’t understand why work takes so long, and feel are ‘stuck’ with an outdated and unpredictable system. Understandably, the overwhelming urge for many businesses is to replace the whole thing. A lot of ecommerce sites are reliant on legacy systems that aren’t automated and become the slowest moving part. Some DevOps specialists would also want to steer clear of legacy, but I feel differently.
If you understand enterprise, then you know legacy is a fact of life. That’s why at Daemon, we take a more balanced view. We don’t see these systems as an obstacle, and we’re not afraid of a challenge. Why? Because we want to be flexible. We think it’s a myth that DevOps and legacy systems won’t work together.
Purist or Pragmatist?
A purist thinks all application architecture should be modernised in an automated, scalable way. This works if you’re in an environment where it’s feasible, or the systems are worth transforming. In retail, for example, systems which add business value and drive revenue should take priority over HR or back office systems. But this purist view doesn’t account for imperfect business structures, and for many large companies, legacy systems must be managed instead of displaced.
I take a more pragmatic approach. I know that some legacy systems will never be modern, but being able to work with them, instead of fighting them, has resulted in a lot of wins for us and our clients. I like to think about potential workarounds, ways of optimising what exists, and improving as you develop. Legacy systems aren’t the enemy.
Pragmatic DevOps means automating parts of a legacy system, where purists would simply start again. Replacing a legacy system in this way could take 18 months and cost £5m, whereas modernising it could take 3 months and cost £100,000. In the modern Digital world, replacing larger systems can take years and cost upwards of £20m. Thankfully, we’re able to achieve more in a shorter time frame, with less investment. This makes a big difference for our clients.
The ‘Unknown Unknowns’
Legacy systems present serious challenges for DevOps projects; unknown levels of complexity inside a ‘Pandora’s Box’ of legacy development work. Because legacy systems are so complex, it can be hard to manage cost and customer expectations, as well as timescales.
A lot of companies have data centres with inbuilt legacy systems, costing millions each year to maintain. Even if data migration to the cloud has begun, the systems still remain. That’s why management become paralysed, because they don’t know whether to work with the existing system or to start again. Because of the limited understanding of how legacy works, the problem gets bigger. The typical challenges we see are:
- Fear of change — reluctance within the organisation to update the system
- Skills — lack of skills required to modernise and migrate
- Knowledge — a lack of available internal knowledge
- Batch — legacy systems often feature heavy batch processing which is a black box
- Integration — interconnectivity between 10–20 other systems to support critical processes
- Data — vast amounts of customer data stored within the system
Very often, customers have expensive support contracts with the system vendor. The product vendor won’t encourage their customer to change, because the contract is so valuable to them. This leads to a common misconception that you ‘can’t do anything’ with legacy systems, and the only option is to start again. This is bad for everyone, creating a marketplace where businesses invest vast sums in replacement, instead of working with what they have.
In a perfect world, every business could behave like a startup, choosing SaaS solutions and building modern microservice applications which are cloud-native. All systems would be built in a modern way, with clear ROI and clear deadlines. Sadly, that’s not possible for most enterprise customers, what business can afford the disruption and cost of a complete enterprise IT modernisation. With mounting costs, and growing timescales, what’s the solution?
Instead of feeling blocked and paralysed, we take a short-term view. Can we improve the situation in 3 months, instead of 2 years? We deliver quick wins whilst planning for the big change ahead. This creates environments that are more reliable, with a shorter delivery timescale, and automated testing (read more on this here).
Thanks to technology that builds instances and environments of your existing application, you can make improvements without re-writing systems. Instead, our technology moves them into the cloud. Allowing us an architectural view of the legacy app, whilst creating a space to start modernisation. Through this process of reverse engineering, we can learn more about the application and automate it where possible.
In the process of re-engineering or modernising a legacy application, we are forced to learn about the application and have the opportunity to codify that knowledge. This helps move away from the crippling legacy issue of ‘lost knowledge’. This changing of the workplace culture is another example of how DevOps can make big differences to legacy systems by working with what you’ve got. For more information on culture, you can read our article here.
At Daemon, the majority of the work we do has a legacy element to it. We frequently help our customers automate critical elements of systems instead of replacing them. The beauty of DevOps is that you can change the way a system works, the way it’s managed, and improve the technology to suit the new processes within the organisation.