While low-code is not the answer to every problem — there are specific areas where it excels. This article is the first in a series that looks at scenarios where low-code may help you.
Legacy systems present a dilemma for modern organisations. Many still run on-premise — giant beasts, lurking in the cellar that everyone is afraid to go near. Many have lived for decades with little attention; loathed but needed by the businesses that imprison them.
We feed them just enough to keep them alive — because, despite the pain they cause us, we cannot do without them. In an ideal world, we all have modern applications that cater to our every need. Digital services that do precisely what we ask of them - without breaking stride. Legacy systems have long disappeared, put out to pasture to enjoy the retirement they deserve.
If only we had more time
It’s nice to dream but with so many other digital initiatives, replacement seems impossible. It would take an enormous effort, and the risks are too great. Besides, nobody understands how these systems work anymore. The people who built them have retired with no forwarding address and no interest in resurrecting a career in legacy support.
So, we endure the increasing problems that our legacy systems create. Making a note to look again next year. Twelve months fly by, and the issues in the IT cellar are worse than ever. Begrudgingly, we continue to tolerate the green screens and poor user experience. In the meantime, the IT support team struggles to make essential changes. An activity that increases with the age of the system. You can tell when this happens by the screams of frustration (and mumbled expletives if you're close enough to ground zero to hear them).
Over in the HR department, everyone is wondering why attrition in IT is higher than it's ever been. As support people leave, all the tacit knowledge they have accumulated leaves with them. Replacing lost information is a gargantuan task. That's assuming you can recruit new engineers to replace those who have left. And so the cycle of legacy lethargy continues.
It doesn't have to be this way
Low-code does not guarantee success, but it does increase your options. With productivity gains of between 5 and 10 times compared to manual coding, it's something to consider. Low-code may give you a fighting chance, but there are still challenges to overcome.
Why do we never have time to do it right, but always have time to do it over? — Anonymous
Let's look at how low-code compares to some alternative options with five factors that influence legacy replacement. The relative magnitudes of each of these factors vary from organisation to organisation. Conducting an exercise of this nature for yourself helps decide on the best course of action.
Tailored development delivers the most value, whether you do this with low-code or manual coding. You develop only the features you need, and in the order, you need them. With an iterative approach, you can release updates early and often—frequent feedback from end-users drives continual improvement. Low-code has the additional benefit, over manual coding, of reducing time to market.
Packaged software aims to cover as much of your requirements as possible. The downside is you end up paying for more than you need. Any missing parts require additional development or a compromise to the way you work. Lift & Shift moves everything as it is — which is fine if your goal is to get software into the cloud as part of strategic operations. Otherwise, you can end up with all the same problems that you started with — only in a different place.
Low-code development delivers greater value with lower effort. Packages may require less effort when they closely match your needs. However, there is often custom development, integration with other systems and significant configuration to take care of. Packages can end up having either too many features or too few features for their customers.
Lift & Shift attracts the least effort. That's assuming everything works when you drop your virtual machine into the cloud. In reality, system integration, performance and transaction processing often need refactoring. It also takes effort to maintain the software and operating system that's running on a virtual machine.
Ease of maintenance
With software, we never get the chance to step back and admire our creations. As soon as we're 'done', continual improvement begins. Tuning performance, reviewing security, fixing bugs, and adding features is a never-ending crusade. The ability to support and maintain your software is essential — from the first release until it heads off into the sunset.
Always code as if the guy who ends up maintaining your code is a violent psychopath who knows where you live. — Martin Golding
Low-code has visual modellers that allow business and IT to work together and share knowledge. In this way, it's easy for everyone to understand and contribute to how a feature should behave. Processes and process changes are visible at all times — to everyone.
Someone once told me the problem with software code is that it's easier to write than to read. Understanding legacy code is as much an art form as it is a science. Especially considering some systems are likely to have been around for longer than you have.
Packages come with well-written documentation, although there may be lots of information that is not relevant for you. Also, it's essential to keep everything updated when you add extra features or extend existing ones.
The most significant advantage here, for low-code development, is that the processes you build are self-documenting. You can see what's going on by looking at the process flows that link to executable code. The documentation is always up-to-date — no matter how old your system is.
In an uncertain world, agility is essential—the ability to adapt to customer needs and working practices. We must be able to deliver benefits early and often — focusing relentlessly on providing the best service for everyone.
Package providers are continually improving their products; although it's unlikely you’ll be able to control what comes next. Adding additional features can be difficult and expensive, especially if you need to hire experts to help you.
Low-code platforms support 'single-click deployment'. A way to update everyone, across multiple devices with the click of a button. Self-documenting workflows help everyone contribute — whether technical or non-technical.
It's rarely a case of either/or
This article suggests how low-code may help you address your legacy replacement and modernisation objectives. This does not mean that low-code is always the best option. Your choice depends on the specific needs of your customers and your business.
Some package providers are introducing low-code into their packages to extend them. Software frameworks have code by convention and specialist libraries making coding more straightforward and quicker than ever before. For many scenarios, containers provide a viable alternative to Lift & Shift. Combining these tools, and others, can lead to better outcomes.
"In any moment of decision, the best thing you can do is the right thing. The worst thing you can do is nothing." ― Theodore Roosevelt
If you're reaching the point where legacy replacement or modernisation is a serious consideration, then low-code should be on your list. It may be a deciding factor in how you proceed. And please remember, a low-code solution means you only build essential features. Anything you no longer need can be confidently ignored.
I'd love to hear how you are dealing with legacy systems in your organisation. Please get in touch if you would like to discuss these, or other, challenges in more detail.
For more information, download Objectivity’s latest white paper on low-code: “Gain more by doing less”.