Modernisation as a one-off project? Think again!

by Michal Petrik Head of Software Development
System modernization is a must for each company
Why not just replace every time?

Two types of people and companies

There are always different ways of doing things. Take the everyday task of mowing the lawn. Some people mow it regularly at least once a week. They want to keep up appearances. Sure, it takes time and effort but just look at those immaculate straight lines, that luscious green. Their investment pays off. They’re the envy of their neighbours.

And then there’s another group of people. They like the “idea” of a nicely mown lawn but don’t fancy all the work involved. We all know where this is going, right? So what happens? They either do the bare minimum, i.e. pick a few weeds, or outsource the job to someone else. Or, worst of all, they let nature run wild and reap the consequences.

So what’s mowing your lawn got to do with software systems modernisation? Quite a lot actually. In my experience, businesses behave in exactly the same way. While one company seeks every opportunity to make their systems better day in day out, the other one only addresses the most immediate problems to the neglect of everything else.

Short-term vs. long-term

The uncomfortable truth is that from a short-term and cost-oriented perspective, the second group is right. Why should you invest in something you don’t absolutely need right now? But as we all know this short-term view is myopic. Successful companies understand the need for continuity. If you’re burdened with a 10-year-old core system or older, you can be sure business is being held back.

Inevitably the day comes when the unmaintained system runs amok and action must be taken quickly. In these pressurised situations, a complete replacement of the system can appear too tempting to ignore. In the blink of an eye, huge budgets are prepared out of nowhere to fund gargantuan rip-and-replace projects. And with it, inflated business expectations.

Unfortunately, changing a legacy core system is a bit more complex than replacing 200 square meters of lawn. Deadlines are missed. Budgets become exhausted. But one day, finally, the task is done. Mission accomplished. A new bright era begins. Well, does it? Long story short – it doesn’t. Companies that get locked into this rip-and-replace culture are condemned to repeat the same mistakes over and over.

Year 3 Cost, Complexity, Risk Fit, Value, Agility Year 5 New systems need to be continuously modernized too

When the curves meet

The above graphic shows the development trajectory of a new system that doesn’t get maintained properly. Here, only critical business features are implemented. In other words, there’s zero tangible investment in the system apart from bug fixing and operational costs. You can see the most business-critical metrics such asfit, value and agility gradually decline over time. To make matters worse, maintenance costs, complexity and attendant risks all increase.

But don’t let the apparent similarity of the two curves deceive you. The red line stays pretty much linear the whole time. But the purple line starts out linear only to veer upward exponentially from about year 5 onwards. This is where things start to get out of control.

Look at the graph again and you’ll notice two important milestones: year 3 and year 5. In year 3, half of the costs go on just keeping the system running. In other words, the company has to pay more to get the same features it did in year 1. Not exactly a great return on your investment. Plus, more and more features are accruing technical debt. Legacy frameworks, libraries, etc. need to be fixed. The problems build and build.

Fast-forward to year 5 and the situation changes abruptly. The maintenance investments are now equal to the funds required to implement new features. The bad news is that problems like this snowball with every subsequent year from this point on.

Every system gets outdated

To be clear, this happens to all software systems that don’t get modernised. It doesn’t matter whether the system is new or old. As Martin Fowler famously put it: “Let’s face it, all we are doing is writing tomorrow’s legacy software today.”

So if you’re still considering modernisation as a one-off project, please don’t! Always remember that even the most hyped, cutting-edge systems will be legacy one day. The trick is to adopt a considered transformation strategy that delivers long-term stability. It doesn’t matter whether your development preference is agile or waterfall. Continuous modernisation is the most important thing. That and a beautiful patch of green you can take pride in.