If you have ever worked on an already started project, then you know what legacy code is. And you also know that you can find almost anything in there. But this is a normal process tied to software development.
Working with legacy code is about taking a tangled, opaque, convoluted system and slowly, gradually, piece by piece, step by step, turning it into a simple, nicely structured, well-designed system. In such big systems with tons of legacy code, patience is your best friend. Try to apply your ideas and improvements step by step, in small sections and most importantly, with the agreement from all your developer colleagues.
What you write today, will be legacy tomorrow.
We shouldn’t blame the legacy code and their authors, since most probably you would have written the same at the time that code was written. The developers, the languages, the patterns and methodologies evolve, and thanks to that legacy code we can learn and improve our software.
If we are always complaining about Legacy Code and about how hard it is to add or change something in it, then let’s do something to improve it. Most of the time it may seem easier to just write 10 more lines to the existing code to add that new feature, but in the long run it is going to lead to more problems and bugs, and we will need to invest precious time fixing them.
Source: No more excuses