Every company with some history has encountered the problem of the legacy products.
There's always a customer somewhere that has been happy with a certain product installation for years and now they want some small set of issues fixed or maybe even some tiny new
feature added. Of course they don't want to pay for a full upgrade to a new product or to the latest version. They want to keep it "simple".
But it's not that simple, is it?
The developers who did the work for that product are either
working on the new projects, which are obviously more important for the future of the company
promoted to some management or architect position and they haven't written a line of code in years
long gone from the company payroll
The conclusion is that the company needs to find someone to take over the particular legacy project and that someone will be completely new to the project. As usual with every new
project the learning is pretty steep. If he or she was involved in another project it will surely affect their current estimates and if they were not involved in other projects why
are they being payed for? The problems may start even before reading any code. The project may not even compile if the last release was like 5 years ago and was built on some now
obsolete linux distribution or even worse to some Windows XP with some specific set of tools installed in a certain order that nobody remembers.
In the best case scenario the sacrificial developer will find a hack to solve the task before the customer loses interest, but he will never forget the torture he's been subjected to.
The overlooked solution to the whole thing is to pass this task to an external contractor. Once you decide a certain project is legacy sign a maintenance contract under an NDA allowing
you to keep your rights over the code and version releases, leave the past behind and focus on the future.