Some of you may be wondering what a ‘legacy system’ is. So, at the beginning, it’s worth to explain that it means a software program that is outdated or obsolete. Recently we have done a few projects in Evertop where we had to rewrite such an obsolete solution to a new technology. These projects were much differentiated – some of them were done for private and some for public clients. Some were very old, and others only a little outdated. These projects have inspired me to share some thoughts about rewriting legacy systems. To be clear – I don’t want to talk about automatic migration to new technologies. I’ve seen a couple of times such magical solutions but I don’t believe in magic. It’s usually a bunch of tricks and at end it occurs it doesn’t work!
So when I use the word ‘rewriting’ – I mean building a custom software solution from scratch with the same functionalities as the old one had.
A lot of still working software solutions were done in 2000s. Well, time goes by and it is really easy to count that most of these apps are teenagers right now. Some are even of age and they can legally buy alcohol (at least in Poland). Unfortunately, there are really a few things that get older faster than software applications. Most of them looks pretty old-school after 5 years but getting to an age of 10 years is quite a stunt.
The age of 15 or 20 is nothing more as geriatrics. Just try to remind how most popular websites looked like at the beginning of 2000s:
So, is it worth to rewrite a legacy system to a new technology? In my opinion yes. And here are 6 reasons why:
Yes, just look at these two screenshots above; there is nothing to add at this point. Graphical user interfaces were pretty ugly at that time. Screen resolution was something about 640 pixels wide so there was not much space to show information on it.
Nobody was even thinking of hiring UX or UI Designer so most Graphical User Interfaces were done by programmers and they usually had no idea how to do that. To be honest I was also a great example of such a person.
Therefore if you can’t stand how your old system looks like it’s a good moment to redesign it and rewrite it from the very beginning. Today’s application can look beautiful and user experience is also wider so you and your employees will be more efficient and can do much more with the data you collect and process.
Legacy Systems may have huge security problems. Applications written 10, 15 or 20 years ago, were maybe even safe when they were deployed but when time goes by, some security flaws occurs in operating systems, applications or database servers and if they weren’t fixed, they affect the legacy systems to.
Other problems are week passwords and not defined rules that would force users to make them stronger. Encryption was also not so popular those times so usage of https was rather a whim than something obligatory.
Of course rewriting a legacy system is a good moment to move to the newest versions of base software so most of flaws should not be an issue anymore. Besides, you can use all updated security guidelines while building a new version on latest technologies.
Do not kid ourselves – we all have smartphones and we are using them all the time. So, when there is any important application or webpage with data that is important to us we all want to have an access to it from our mobile phones!
Of course you can just dream to get to your legacy system via your iPhone or Android device. Some, if are lucky, may get there via mobile web browser but the web page for sure would not be responsive. Mobile applications are not available and usually there is nothing you can do about it.
When you decide to rewrite your legacy system you can think also about creating a mobile application. It’s something pretty usual and not so hard and expensive to do. If not a mobile app – maybe at least a RWD page that would look great on your desktop, tablet or mobile phone web browser.
When you develop your business, software that supports it should be also developed. If you reorganize some processes in your company, a corresponding system should be adjusted. If not, it becomes useless.
On the other hand, I’ve seen too many examples, where companies couldn’t move further their offer because of lacks in legacy systems. They were so old and so un-adjustable that nothing could be done, and the only solution is to keep old procedures, processes and so on.
Very often legacy applications can’t be developed because the company that uses it does not have source codes. The other reason is that there is only one person who has been doing it so far and nobody else can understand what’s going on in the sources. Or the applications were modified so many times by so many programmers that there is a real mess called spaghetti code.
When you decide to rewrite your app to a new technology of course you get the possibility to develop it further immediately after the deployment but you can also add extra functionalities during the rewriting process. It’s really a good moment to think what is important, what is missing and what is useless and shouldn’t be done in a new system.
We’ve done at least two projects where the main motivation of rewriting systems to new technology was that the old one was planned not to be supported anymore. First one was Silverlight, second – Flash. It’s not so bad if you are using your system internally only. The problem gets really big if this is your key of selling application. Just imagine that one day none of your clients would be able to log in to your service because their web browser will not allow them to run it.
Sounds like a problem? Yes, but it can be solved if you start thinking about it in advance. Usually 4-8 months should be enough to redesign and rewrite legacy system for a new technology. So do not wait, just act!
Oracle Forms and APEX, Microsoft Forms and Web Forms, mentioned above Adobe Flash and Microsoft Silverlight… are only a few technologies promoted by manufacturers and popular some years ago. Now, a number of people who are able to use these technologies is dramatically low. I know that because we also support and maintain such strange solutions possessed by our clients and we’re not very happy about it.
In this case it seems to be easier and maybe even less expensive to redesign and rewrite legacy applications to a new technology than to maintain and develop a current solution. Young developers are much more likely to learn new, fancy technologies than coarse, old, rough ones. And you can easily find them on the market unlike evaporating masters of old times.
As you can see there are many reasons. I could even think of some additional like costs of maintenance and review of existing business process but they are related to those described above. Anyway, for sure not all of those reasons are applicable to your situation but it seems that most of them is adequate to legacy systems older than 10 years.
It is also worth mentioning that redesigning and rewriting legacy systems is much easier and less risky when you do it for the first time. Users usually know very well what they need and this is essential while building custom software. The Contractor can easily define what exactly should be done, how it should work and look like. And what is most important – how much time it would take and how expensive it would be.
Last but not least – If there is a legacy system that is needed and is being used, sooner or later it will be replaced by a new solution. This moment can be postponed but it will happen anyway. It’s certain like death and taxes.
If you want to rewrite your software using the newest technologies, just contact me!
Written by Maciej Kotok
Technical person converted to an entrepreneur. Previously a programmer, designer, analyst and project manager.
Now a CEO at Evertop. Coffee during the day. Whiskey and wine in the evening.