Show Me The Money: The Market for Legacy Development

Show me the moneyMost programmers hate dealing with legacy systems. It is not glamorous to be fiddling around with existing systems, tweaking it and working on it just so everyone else doesn’t even realize anything was broken. Programmers want to stretch their minds and create new products that have never been seen before. But one thing I have seen in the market is the need for not only maintenance programmers but programmers who work with legacy languages.

The Need Is There

Think about it for a moment. If everyone was off creating the latest and greatest products, who would be around to work on the systems that keep businesses running? The fact is, many businesses love to run systems into the ground. When I was in the travel industry, I had seen systems that were still working off of plain old DOS. This is when everyone in the world was pretty much on XP SP1 or greater. Go to a freelance website and take a look at the type of projects people are willing to pay programmers for. Half of the jobs are looking for people to come fix their broken software and to bring it up to present specs. Often times these are the jobs that are also willing to pay the most. Nothing like a company in a tough bind with a piece of software to boost that pay up. If you can handle the often increased pressure, extra complexity of knowing obscure systems, working with constraints of all kinds it might be something to think about.

Want to Be Marketable? Learn a Legacy Language

So this might be the hidden truth that no one really wants to talk about, but if you want to have an ace in the back pocket of your career, learn a language of old. Do you know what some programmers who are still coding in COBOL or FORTRAN can ask for these days? Everyone knows that VB4/5/6 is all but dead (or is it really?), but there are companies out there still needing VB6 programmers that can at least help them get into the world of .NET. C programmers are even making a killing working on projects designed decades ago just because some business couldn’t afford to upgrade the system until it is pretty much coughing up blood…err I mean cash. You may also find yourself in a position where a business is wanting to hire a legacy programmer but can’t find any applicants except you. Great, no competition and that means you can command a premium!

If you are a new programmer, do learn new languages to address the job opportunities of the future. However, if you also want to keep a foot in the grave with some old language as well as one of the new languages, you may find tons of opportunity for system migration work or to help businesses stay on life support. You will be glad you kept all your old books on the languages you know and bookmark places where you can receive help on the net because these may become harder and harder to find going forward.

What Languages Would I Recommend?

Well first off, kill two birds with one stone and learn C/C++. This will give you that shot at legacy systems while also seeing opportunities in jobs of the future. The C/C++ community is still vibrant and going full steam ahead. If you know VB.NET you might want to try VB6 or if you are doing web, try Classic ASP. If you can go back into COBOL that may work for you as well if you are planning on going to help financial institutions. One site still working with COBOL is OpenCOBOL.org, so give them a look if you are interested. But the trick is to find out what languages are in demand from old business and there you may find your golden goose. In these cases legacy may only be a few versions back and even then you may not have that many programmers working with it. It all depends on the language.

Sure the road may bit full of potholes and the tools are probably not as slick as you are use to (VB6 compiler comes to mind), but those daring adventurers that can put a couple old languages under their belt will surely never go completely hungry. It will be hard going but full of opportunity as well. Those same people looking for a legacy programmer tend to be those people who are also going to be looking for a leader to help carry them forward. You may advise them that their system is beyond salvaging and recommend a new system. Then you just turned a legacy project into one where you can push the envelope.

If you are not afraid to get your hands dirty and willing to put in the hard work, you can find riches in the market of legacy applications. Just don’t go too far back or too obscure… always look for the market first.

Have a comment to throw our way? Do you work in a job that deals with legacy systems on a daily occurrence? We would love to hear from you. Let us know in the comments below and thank you for reading. :)

About The Author

Martyr2 is the founder of the Coders Lexicon and author of the new ebook "The Programmers Idea Book". He has been a programmer for over 16 years. He works for a hot application development company in Vancouver Canada which service some of the biggest telecoms in the world. He has won numerous awards for his mentoring in software development and contributes regularly to several communities around the web. He is an expert in numerous languages including .NET, PHP, C/C++, Java and more.
  • Kevin Peck

    Learning a new language to support a legacy system has a couple of issues.

    First it can be hard to get hold of old tools. Finding and setting up old Cobol and VB stuff on a new OS can be a hassle. You might really need to know what you are doing with it before you can even get it to run. Not really an issue with C/C++ as they have been supported forever. Of course using the newest C/C++ tools might leave you thinking that you can walk into any place and start coding. Generally places using legacy stuff are using legacy tools and build systems too.

    Second learning the syntax of a language is one thing. Actually working on a large project to know all the tips and traps is another. Sure, companies are willing to pay big bucks but they expect someone to know the language inside and out. They are not paying for you to come in and learn the language, compiler, tools and weirdness of the language. They want you to come in knowing everything and hitting the ground running just learning their business needs and fixing the issues at hand.

    If you want to learn a legacy language you need to really learn it. Tackle a big project. Learn how to use packaging, libraries, version control, connectivity to other systems, file operations, the tools etc. Don’t expect to have written a 200 line utility in a single file just playing around and being able to sell yourself as an expert consultant.

    If you know older languages brush up on them. I have not done C/C++ programming for a long time. I could get back into it and help out a company using it.

    Please don’t spend a few nights dinking around with the syntax of an older language then sell yourself as a legacy programmer for $80 per hour. You are going to get found out soon enough and have a black mark next to your name.

    • http://www.coderslexicon.com/ The Coders Lexicon

      As to your first point you are certainly right. That is part of the hard times ahead in learning legacy languages. There are still tools out there and you can find them, but it will take some time and trouble. Configuring them on modern systems too is a pain for sure.

      I don’t think all companies are looking for a complete professional when it comes to legacy systems however. I don’t at all endorse someone to simply pick up a few tricks and pass themselves off as experts (see my article “Why Everone Should NOT Learn to Code… http://www.coderslexicon.com/why-everyone-should-not-learn-to-code but if you are in a position to pick up enough to help fix things, no reason why you can’t give it a shot… especially if their system is already breaking down.

      The whole thing is a bit of a gray area and so each situation is unique. Be honest and up front with what you can and can’t do. As experience comes, you will surely be better placed to help. Thanks for the insights! :)