Last Update: 22.03.2018. By Jens in Developers Life | Learning | Newsletter
I’ve started helping out on a pretty old legacy system. It’s in its second decade and probably not far away from 20 years of existence. It went through many developer hands, everybody leaving its mark on it, myself included. There have been several attempts to reinvent it or at least parts of it, but none has been really successful so far. It is a mess, but it still works.
However, it raises a good question.
Should we update legacy systems?
As devs we hate working on legacy systems. The older, there worse the job. But, is it always necessary to update such a system?
In my old days, I’d say yes. It’s a Maintenence nightmare and everybody hates working on it. There are also problems that can’t be solved with such a system. In such attempts, parts of the overall system were refactored. The result? Temporary fix, but the overall mess got bigger.
Nowadays, I see it differently. Sure, if it adds benefit for the business and is doable regarding the circumstances, let’s do it. But not just, because we devs hate to work on it.
For us, building stuff for the sake of it is enough, it makes fun. However, for business applications it’s different. Here software is solving a particular business problem and everything done with it has to have a return on investment. No business is spending money just for fun. So, if a redesign costs 100k or more, it better has an ROI.
Every system is solving business problems and there is an ROI. Sometimes clearly visible, often not. So keep that in mind as it helps to discuss refactoring, updates, etc with management much easier.