If there's a shortage of programmers, why aren't wages up?

"There's no shortage of IT workers because wages would rise!"

I've heard that so many times that I want to scream. And it's all because of one damnably simply, yet misunderstood, supply and demand graph:

supply and demand graph

We all learn about that graph in introductory economics classes and, to misquote Mencken (as everyone does), it's simple, elegant, and wrong.

The graph not wrong per se, but there are a few problems with it. First and foremost, it's a model of how a market with perfect competition responds to changes in supply and demand of goods and services. A model, however, is not the market, and there's no professional economist (worthy of that title) on the planet who would claim that it is (well, maybe from the Austrian school ... </snark>). A model is a tool used to illustrate a principle, to help understand it. After a moment's reflection it should be self-evident to anyone that given the complexities of economies, a simplistic graph isn't enough to model developer wages.

However, I mentioned that there was more than one problem with that graph. I mentioned perfect competition. Did you know that the graph looks radically different given a monopoly? Or a monopsony? Or an oligopoly? Even with perfect competition that graph is easily distorted by manipulating the information consumers receive. There are, in fact, myriad ways of impacting what that supply and demand curve looks like, but nobody seems to know (or care) about that. Again, after a moment's reflection it should be self-evident that given the complexities of economies, maybe brandishing an economics 101 graph isn't quite enough to model typical developer compensation packages.

But actually, programmer's salaries have gone through the roof ... for Facebook, Google, Twitter, and so on. They have average salaries around $120,000 US, but keep in mind that "average" means that many are making far more than that.

Most developers are earning far less and I still regularly get contacted by recruiters in London offering me an "attractive" position at £45K per year. Um, no.

The salaries tend to be higher in areas like San Francisco and New York, but those are to help offset insane living costs. And while it's clearly geographically biased, many of us still have the feeling that salaries aren't rising that much, even though there's still this talk of a "market shortage" for developers. So what gives?

First of all, there is a market shortage. My wife and I are starting a company that, amongst other things, handles international IT recruitment, and our research confirms again and again that yes, there's a shortage. There's enough of a shortage that for knowledge workers in general and IT workers in particular, many of the normal roadblocks to relocating abroad are being torn down. Many startups are trying to recruit back-end developers, front-end developers, system administrators, and other "tech" people, but finding competent ones is hard (once at the BBC, a manager lamented to me that while they couldn't find Perl developers, they could find plenty of PHP developers, none of whom the BBC was willing to hire).

For those of you working back in the internet explosion of the late 90s, you probably recall what it took to get a raise: quit and take a new job every six months. It was madness. Having "HTML" on your résumé got you a job. You can create an alert box in Javascript? Oh my god, hire this person now!

And the landscape of internet history is littered with the carcasses of companies who had no idea how to monetize their ideas but were nonetheless flush with VC money. It wasn't quite the electronic equivalent of the California Gold Rush because at least in the Gold Rush the inherent value of gold wasn't in question. Instead, it tended towards being a modern day tulip mania. Today, while we hardly have what economists would call a "mature market" for the internet, the crazy days of the 90s are gone and while investors are cautiously optimistic, the keyword is caution.

And that's the issue. There are still many, many new companies constantly springing up to innovate and find or create new markets. For every startup swimming in cash, you can find plenty more who are scraping by, hoping to make it. They can't pay those higher salaries, even if they're increasing demand. And even if they wanted to, there's a problem there. You see, while there may be demand for you, you're generally not the product: you're helping to build the product. Thus, your salary is constrained by the demand for the product, not the demand for you.

Yes, the demand is increasing, but the ability to pay higher wages simply isn't there. This does not make the demand go away, but it does distort the market. One statistic I've been reading over and over again lately is how telecommuting is more common outside of Europe and the US. I believe that part of this is European and US companies hiring less expensive telecommuters from developing nations. I've read several anecdotes about this and I can't prove it, but from an economic standpoint, it's a natural response: and it's going to continue to limit your salaries.

On the plus side, the demand means that you'll still have better job prospects than many of your compatriots, but it's going to be hard for many of us to hit Google-level salaries or better unless we:

  • Become such skilled developers that Google or their competitors will hire us
  • Become essential to a cash-flush industry such as finance
  • Launch our own company and succeed

It's going to be a long, long time before this industry settles down and until it does, simplistic supply and demand graphs won't even begin to explain the dynamics of developer compensation.


Thank you for this information it makes sense, I hadn't thought about it before now and I need to.

Its not just companies that are hiring Asian telecommuters, did you see this?! http://edition.cnn.com/2013/01/17/business/us-outsource-job-china

I think you're conflating several issues.

First, "programmers" aren't commodities. Usually, what employers mean is more along the lines of "there's a shortage of GOOD programmers". Because a good programmer is often considered to be 10x more effective (or more!) than an average one, the value of finding (and keeping!) a good one is huge.

For that group of "good" programmers -- as you point out -- wages are indeed rather high -- comparable to many other professional careers (and often without the high debt load of professional schooling).

Second, on startups and programmer salaries, you're right that startups can't afford to pay high wages. They should be offering equity that -- on a risk adjusted basis -- makes up for the opportunity cost of a good programmer leaving a large, secure organization with a good wage. It's possible that programmers aren't good at understanding or negotiating equity compensation or assessing risk -- but that's not a market failure, just inexperience.

Third, most market participants, employers and employees, are operating with imperfect information.

Programmers probably think they are better than they are (i.e. "are you an above average programmer?") and have no real way to benchmark themselves or their compensation.

Employers are terrible judges of talent. Employers are also terrible judges of how much talent they really need and where. For some tasks, they really need "good" programmers. For others, an average programmer will do.

With 10x or more differences in programmer productivity, you should expect to see similar ranges of compensation. Some will earn $120K+. Others (perhaps in "outsource" destination economies) might earn a tenth of that (or less!).

So there are two "problems": (1) companies who think they can pay average wages for good programmers; (2) programmers who think they should earn good wages for average ability.

Group #1 is doomed to suffer. Group #2 can adjust expectations or develop greater or more specialized expertise (as Ovid points out).

nrr just pointed this out to me: https://news.ycombinator.com/item?id=5803800

And seeing that i have to point out a massive mistake i see recruiters make all the time: Talk about the area, but not about the job. What perl versions are in use, what cpan modules are in use, what source repository, what ticket system, etc. etc. etc. For the linked job, if i'm thinking of the right company, they can't even use CPAN stuff due to CC requirements. That's a massive thing and as a job seeker i'd be very annoyed to find that out after investing time into talking with them.

Alright, that makes sense, your target demographics is people who actually do care more about the place.

Another thing, i can likely add two more companies to those in Hannover, if you wish you can poke me anytime on IRC about them and i'll let you know what i got.

In the US, you can find many programmers (such as myself) working from their home in a low-rent market but being paid out of a high-rent market. This has the same effect on the market as hiring overseas, but I believe it is much more common here simply due to the constraints that hiring outside of your country places on a company (such as access to an employee in another time zone, not to mention contract and legal complications).

Ovid, what I was trying to highlight by saying "programmers aren't commodities" is that you missed making more of the distinction between "good" and "bad" (not that it's binary, either).

Take wine as an analogy. Yes, there is aggregate supply and demand for wine that affects overall price levels. But there can be a glut of crap wine that depresses prices at the low end and yet a shortage of truly excellent wine that drives high-end prices to the stratosphere.

I think that distinction explains a lot of why we hear both "there's a shortage" and "wages aren't rising".

Fortunately, unlike a bottle of wine, programmers can influence their own quality. :-)

thanks for sharing thoughts, great post. I feel like I learned something :)

Thanks for explaining the situation so clearly. I am disappointed but not surprised that most of the best salary positions are working for employers (e.g. Oracle, Microsoft) or industries (e.g. finance, advertising) I would rather avoid.

USA should be really concerned about the creeping/uncivilized Caste system in America due to H1B/Immigrants from India. Caste system is worse than terrorism. It's a slow poison that will destroy American middle class.

About Ovid

user-pic Freelance Perl/Testing/Agile consultant and trainer. See http://www.allaroundtheworld.fr/ for our services. If you have a problem with Perl, we will solve it for you. And don't forget to buy my book! http://www.amazon.com/Beginning-Perl-Curtis-Poe/dp/1118013840/