There is no shortage of bad programmers, there are plenty of medium programmers, it's also not that hard to find decent programmers. It's harder to find good programmers, but much harder to find great ones. The thing is that a great programmer can do 5X more than a good programmer, that can do 2X more than a decent one, that can do 2X more than a medium one. It's not just the number of features they can write in a given time or the fact they have less bugs or test their code better, or simply can do things no one else can. It's not even their ability to design better. It's their ability to do all that and influence the others to follow.
I think there is a shortage in that kind of developers, and there is no school that teaches these soft skills.
1 - virtually no supposed 5x or 10x programmer makes even 2x more. If people are really 5x, why on earth don't I see $300-$500k salaries? Particularly given the fall in communication costs ala Brooks, it would be an enormous win for employers
2 - at least in the bay area, there would be tons and tons of highly qualified candidates if moving to the bay area wasn't a financial nightmare (cost of living is horrific and the pay doesn't come anywhere close to making up for it); and if buying a decent 3 bedroom home and having kids didn't nearly require winning a startup lottery -- or at least enough for a good downpayment to get to a conforming mortgage.
3 - I'm in my 30s, and in my cohort of developers I know a number (all of them very skilled and in high demand in the bay area) who have moved to the midwest or austin because financially they're so much better off
4 - the majority of complaints about unavailability of developers, particularly in the bay area, are after the fact justifications to (1) cover employers not paying salaries commensurate with the cost of living, and (2) the ability to import (cheaper, more easily controlled) h1b labor
4a - with a side of companies ducking their responsibilities to america, the state they are in, and their communities to help create the employees they need. Now obviously I don't think 1-4 person startups have any such responsibilities, but somewhere between that and google/fb/hp companies have responsibilities to their communities and countries that bay area companies in particular almost completely duck. For example, why isn't facebook or google, in lieu of whinging about difficulty hiring (while illegally restraining wages, ain't that beautiful) running hacker schools themselves? It couldn't be because they'd rather let someone else pay for it and cherry pick the winners (saving money two ways)?
"1 - virtually no supposed 5x or 10x programmer makes even 2x more. If people are really 5x, why on earth don't I see $300-$500k salaries? [...], it would be an enormous win for employers"
Some reasons you don't see higher salaries:
1. It's very hard to measure the difference in programming ability directly. Good programmers also tend not to realise just how much better they are, and are generally unwilling/unable to demand higher salaries (not because they're programmers, but because most people by default aren't good at these things.)
2. Good programmers tend to cluster around good companies, one of their advantages being that they're surrounded by people at their level. Think Google, Facebook. Over there, if everyone is as good as you but making the same as you, then you don't feel there is a disparity.
3. Some programmers DO make 300-500k. You just don't hear about it.
4. More importantly, some people make 300-500k in roundabout ways. E.g. some great programmers work as freelancers and make that amount, because that's one way to solve the problem of companies being unwilling to pay so much more.
5. Some programmers with more business-fu start consultancies and startups, making lots of money that way in a non-obvious way.
I don't buy the hard to measure argument. CEOs at large companies make a tonne of money. This is usually justified by saying that they are more skilled than the average CEO but this kind of skill is also hard to quantify. Why does this argument work for CEO pay but not programmer pay?
If there was really a shortage you'd see salaries for programmers going up. Instead there are documented cases of companies colluding to keep pay down. Based on the high salaries you could argue that America has a CEO shortage and needs to increase visas for foreign CEOs.
"CEOs at large companies make a tonne of money. This is usually justified by saying that they are more skilled than the average CEO but this kind of skill is also hard to quantify. Why does this argument work for CEO pay but not programmer pay?"
Because it's much easier to measure performance of CEO's, at least artificially. If Google does well, then you (supposedly) know that Larry Page is doing well. That's how the market treats it, at least. But can you really tell me that you're able to tell me which of the 10's of thousands of engineers that Google has is responsible for that success?
Also, there's the issue of leverage. Just like a programmer can build software that is used by millions, and therefore has a lot more leverage and creates more wealth, so a CEO usually influences even more customers than the programmer. Paul Graham has an article about exactly that - the idea of a startup is to give e.g. programmers a lot more leverage than they usually have.
And arguably, the fact that a few engineers can build WhatsApp and earn billions is an example of that in action - getting more leverage by building a company, proving success, then gaining the money it gives. But the average exceptional programmer, while being 10X better at programming, won't necessarily also be better at business or money generation, etc.
Lastly, the fact that there are cases of companies colluding to keep pay down proves the opposite of your point - that salaries should have been even higher!
|Because it's much easier to measure performance of CEO's, at least artificially. If Google does well, then you (supposedly) know that Larry Page is doing well."
Originally I wrote a much longer reply but after re-reading it it came across as much more anti CEO compensation than I intended. I don't view short term market movements as an accurate reflection of company or CEO performance. If you willing to use easy to calculate but broken metrics I can supply a few for programmers. How about lines of code? This also ignores under performing executives getting big salaries and severance packages. No one is going to pay me millions if I get fired.
"And arguably, the fact that a few engineers can build WhatsApp and earn billions is an example of that in action"
I view employment at a startup like buying a lottery ticket. Someone is going to get a large payday but that doesn't mean they're better than someone that doesn't get one. Even with the possibility of a big payout your expected return is pretty low.
I think I stated the collusion argument badly so let me try again. If you're in charge of a major corporation and experiencing a talent shortage would you tell your HR department to exclude a large portion of the local candidate pool? That's what those companies did.
You raise interesting points. I'm honestly not knowledgeable enough to tell you if it makes sense to judge a CEO by the short-term, or even long-term, performance of their company. I don't think anyone really knows just how much is the correlation there.
What is clear is that, assuming CEO's do affect the value of a company significantly, they'll tend to affect it much more than even the best programmers, especially at a company the size of Google. That's just an issue of leverage. So a (possibly semi-broken) method of judging whether you made billions for the company will still spit out compensations of millions.
As for startups, I was talking specifically about the founders, not employees. And yes, I agree that startup's succeeding, at least on the Whatsapp scale, is very similar to a lottery. But smaller startups/consultancies can make much more money for the programmers who start them, who have skills that the market cares about more than just programming well.
>virtually no supposed 5x or 10x programmer makes even 2x more. If people are really 5x, why on earth don't I see $300-$500k salaries?
Small sample size. These types of developers are very few and far between. I worked with one that I keep in touch with and he is making somewhere between 400 and 500k at his current job. His output of good code was pretty amazing to see. He did manage to produce the work of 5 average Bay area engineers consistently.
I would describe that as simply "being professionals". No magic n-time programmers, just mature pros.
What you're describing as a great programmer is the equivalent of a chef in the kitchen, what you're describing as good programmer is a talented amateur cook, and your medium programmers are ordinary people that can cook an edible meal.
We have a shortage of professional developers, and a huge number of people who wouldn't get hired if they had the same skill level in a profession where there wasn't a shortage.
We've put lots of meat in seats to compensate for the shortage of mature, professional developers. Meat that can get away with incredibly immature, irresponsible and unprofessional behavior because, hey, who else are they going to get?
Fuck me, the ones that manage to build only slightly more shit than they break already get labelled "decent" programmers.
And it's self perpetuating, because if you combine the amateur playgrounds of most software departments with the systematic wage suppression you create a career perspective anybody with any sense would steer clear of.
With all those clowns calling themselves programmers, and the rest of us being tarred with the same brush, who the fuck wants to be a programmer when they grow up?
I don't disagree that there is a shortage of great programmers, but another problem is that people are generally not willing to pay 100x (or anything close to that) for a 100x programmer. Often they don't even realize whether a person is a great programmer or not.
You hit the nail on the head. He talks about the 5x programmer. Well if the 1x programmer is making $100k-$150k a year, the 5x programmers should be making $500k-$750k a year. When was the last time you went on Craigslist and saw a programmer job offering over $500k or more a year? I'm not saying it never happens, but...