Reasons to be Cheerful
I spent the last section identifying problems, but I want to be positive about a situation we often find ourselves in – and I think that some of the issues with legacy systems are due to neglect caused by negativity. So, here are a few of the reasons why working on a legacy system should be viewed as a positive experience.
A Legacy System is a Successful System
I've already mentioned this but it's worth repeating. If the system had no value, then it would be turned off. It is worth finding out what the value is, even if the only reason you do so is so that you can make sure a replacement system is at least as good. Many of the positive points might only be obvious after a good investigation. Users will be very forthcoming with complaints but the parts they don't talk about can be excellent.
You Have Real Users You Can Talk To
One of the greatest obstacles to developing a Greenfield project is knowing who the end users will be and what they require. With a legacy system, you have end users you can speak to. They can tell you what they like and dislike about the current system and tell you what they would like to be included in any upgrade. This is a massive advantage but is also one that many developers don't take advantage of.
You Can Learn a Lot about the Business
The system might define a lot of the business and organizational processes. Many of the business decisions will be automated in the system and much of the external interaction. Some of the more complex decision processes might have been carefully defined several years before and now no one is left who knows them. The only place you can learn is by examining the IT system! I have found this to be particularly true in the finance industry. You can learn enough from an existing system to ask intelligent, relevant, and specific questions of business users (for example, the system is doing X, should it also be doing Y) rather than vague, open questions they may find difficult to answer.
You Can Have a Large Impact Quickly
If a system hasn't been modified for a while, but the way it is being used has evolved, then small changes can be made that help the users a lot. I'll talk about this more in later sections but simple performance tweaks (such as adding an index so a report runs in good time) or automating a simple, manual process can dramatically improve the user experience. You can look like a hero for little effort!
It's Important, But Not Trendy, So You'll Get Paid Well!
Everyone wants to work on the cool new system with a cutting-edge graphical interface on an expensive mobile device. The law of supply and demand means that the cost (pay) goes down for this popular work. A high value system that isn't trendy means you can justify being highly paid. Maybe this is shallow, but if you have a mortgage and a couple of kids, then you'll understand.