Legacy Is Sexy
Author
Marcus HeldHi,
Unpopular Opinion Warning: Legacy is Sexy!
To be honest - I didn’t always see it that way.
You probably felt similar.
My first (big) professional project was a legacy application
It wasn’t actually that old. If I remember correctly, it wasn’t even a decade old.
But it felt much older.
This was mainly due to the many inexperienced developers who worked on the application.
I was green behind the ears as well.
The central architectural pattern: The God Class
It was terrible to work with. Changes took a long time. There were all sorts of side effects. Test coverage was poor. The few tests were tightly integrated with the production code.
I was not unhappy
But I kept looking with envy at the teams that started on a green field.
How nice it would be to do everything better.
I would be so productive. I would make everything perfect. I could implement every requirement.
How much my perspective has changed since then
Later followed a multi-year phase in which I was only in new projects. Just what I always wanted.
And my expectations were initially met.
I could be free. Fulfill all my wishes. I was fast. There were no users to worry about.
Database migrations - could be omitted, the database can always be flattened.
API changes - just do it, nobody is consuming it yet.
Introducing another service - no problem, I don’t need to invest time in monitoring yet.
But then?
The return on investment was not good enough. For a while, we tried to turn things around. Then management pulled the plug.
So, on to the next project
Again Greenfield. It went the same way. The ROI was not good enough. Discontinued.
And again from the beginning. We build something. Discontinued.
And again. And again.
Greenfield is beautiful. But it’s even better to build something that is used. Legacy.
Legacy applications are legacy for a good reason.
They are successful.
They have users.
They provide value.
They benefit people.
Legacy is Sexy
Yes, every project develops technical debt. Some more, some less. But technical debt means that something was built. Something that is used. The greatest technical debt comes in times when things are going well. When business is successful. When quick decisions are necessary. When the most is being made of the product.
Those who get to work on a legacy application get to work on something successful.
And that’s a nice feeling
For me, it’s more motivating today to have a meaningful task. Technical debt can always be reduced. But a product cannot always be made successful. Sometimes it just doesn’t fit.
Be happy when you work on legacy. You are doing something valuable!
ps. According to the current Developer Ecosystem Report by IntelliJ , 50% of all developers are still working with Java 8. You’re not alone 😉
Rule the Backend,
~ Marcus