Lipstick on a pig

When I was in high school, I had a friend of mine who was obsessed with the VW Beetle. Somewhere around the age of 14, he got his hands on a rusted out version needing a lot of work - and he got to work! Evenings, weekends, vacations - he stripped that car back to the rivets and rebuilt it - carpets, seats, paint. Not just any paint job either - he did a beautiful metallic grey front blending into a metallic blue rear - the car looked GREAT!

I would never criticize someone for following their passion like that, but here's why (for me) it would be a pointless exercise. At the end of the day, the VW Beetle has a couple of fundamental design issues that no layers of metallic paint will ever address. The engine was built to be sturdy, not powerful, and being air cooled - putting it as far away from the airflow as possible kind of guarantees it will overheat at some point. There's more - but the bottom line is that this will never be a fast or comfortable ride by modern standards - the bones are just not up to it.

Some of us are still putting metallic paint on our VW Beetle code and trying to convince ourselves that this is an upgrade. At some point, you have to recognize that the fundamental structure that you are working with is outdated and take on the work to replace it.

There are many things that have changed since the Beetle was designed back in the 1930's - fuel injection, emissions, safety, ICE - the list goes on and on. So if you were going to build a new version today - it might LOOK somewhat the same, but the underpinnings would be very different.

So too with our code. If you're working with a monolithic, 20 year old code base - you may not be able to replace it overnight, but you HAVE to start looking for ways to add modules to it, not just keep customizing that old platform. Move your DB to the cloud, create some APIs, build a new front end as a webapp, add CI/CD and automated testing for the new code if not for the old - slowly you can wean yourself away from that old platform and each time you replace a section, life will get easier. It may still look like the old Bug, but the development, maintenance and performance can be completely different.