views:

1774

answers:

12

It's fairly well recognized that some programmers are up to 10 times more productive than others. Joel mentions this topic on his blog. There is a whole blog devoted to the idea of the "10x productive programmer".

In years since the original study, the general finding that "There are order-of-magnitude differences among programmers" has been confirmed by many other studies of professional programmers (Curtis 1981, Mills 1983, DeMarco and Lister 1985, Curtis et al. 1986, Card 1987, Boehm and Papaccio 1988, Valett and McGarry 1989, Boehm et al 2000).

Fred Brooks mentions the wide range in the quality of designers in his "No Silver Bullet" article,

The differences are not minor--they are rather like the differences between Salieri and Mozart. Study after study shows that the very best designers produce structures that are faster, smaller, simpler, cleaner, and produced with less effort. The differences between the great and the average approach an order of magnitude.

The study that Brooks cites is:

H. Sackman, W.J. Erikson, and E.E. Grant, "Exploratory Experimental Studies Comparing Online and Offline Programming Performance," Communications of the ACM, Vol. 11, No. 1 (January 1968), pp. 3-11.

The way programmers are paid by employers these days makes it almost impossible to pay the great programmers a large multiple of what the entry-level salary is. When the starting salary for a just-graduated entry-level programmer, we'll call him Asok (From Dilbert), is $40K, even if the top programmer, we'll call him Linus, makes $120K that is only a multiple of 3. I'd be willing to be that Linus does much more than 3 times what Asok does, so why wouldn't we expect him to get paid more as well?

Here is a quote from Stroustrup:

"The companies are complaining because they are hurting. They can't produce quality products as cheaply, as reliably, and as quickly as they would like. They correctly see a shortage of good developers as a part of the problem. What they generally don't see is that inserting a good developer into a culture designed to constrain semi-skilled programmers from doing harm is pointless because the rules/culture will constrain the new developer from doing anything significantly new and better."

Paul Graham has an essay on wealth that really covers the same ground. It comes down to measurement and leverage. Even though it is hard to measure, it still exists. Paul even advocates a higher multiple than 10.

Like all back-of-the-envelope calculations, this one has a lot of wiggle room. I wouldn't try to defend the actual numbers. But I stand by the structure of the calculation. I'm not claiming the multiplier is precisely 36, but it is certainly more than 10, and probably rarely as high as 100.

This leads to two questions. I'm excluding self-employed programmers and contractors. If you disagree that's fine but please include your rationale. It might be that the self-employed or contract programmers are where you find the top-10 earners, but please provide a explanation/story/rationale along with any anecdotes.

Here are some other areas in which talent/ability affects pay.

  • Financial traders (commodities, stock, derivatives, etc.)
  • designers (fashion, interior decorators, architects, etc.)
  • professionals (doctor, lawyer, accountant, etc.)
  • sales

Questions:

  1. Why aren't the top 1% of programmers paid like A-list movie stars?

  2. What would the industry be like if we did pay the "Smart and gets things done" programmers 6, 8, or 10 times what an intern makes?

[Footnote: I posted this question after submitting it to the Stackoverflow podcast. It was included in episode 77 and I've written more about it as a Codewright's Tale post 'Of Rockstars and Bricklayers']

Epilogue:

It's probably unfair to exclude contractors and the self-employed. One aspect of the highest earners in other fields is that they are free-agents. The competition for their skills is what drives up their earning power. This means they can not be interchangeable or otherwise treated as a plug-and-play resource. I liked the example in one answer of a major league baseball team trying to field two first-basemen.

Also, something that Joel mentioned in the Stackoverflow podcast (#77). There are natural dynamics to shrink any extreme performance/pay ranges between the highs and lows. One is the peer pressure of organizations to pay within a given range, another is the likelyhood that the high performer will realize their undercompensation and seek greener pastures.

Again from Paul Graham's essay on wealth, (see note #2) It comes down to measurement and leverage. Excerpt:

Companies are not set up to reward people who want to do this. You can't go to your boss and say, I'd like to start working ten times as hard, so will you please pay me ten times as much? For one thing, the official fiction is that you are already working as hard as you can. But a more serious problem is that the company has no way of measuring the value of your work.

As an aside, it might it might help explain why companies are so willing to pay outside consultants exorbitant rates. Working as a contractor is evidence, not quite proof, that they produce more than an employee; by being more talented, more driven, etc.

It might be time to start moving some of this material into an answer. Paul's essay really crystallized the issues for me.

+9  A: 

To have a superstar phenomenon, you must have two conditions:

  • Everybody must want the very, very best person, much more than the next person down.
  • The very best person must be able to easily distribute his work to a huge audience.

Movie stars like Johnny Depp fit into both categories. You might argue that programmers can fit into the first category but I'd argue there are more exceptional programmers than top-of-the-line actors. And, at your regular company, programmers don't fit into the 2nd category. Their work influences at most everybody in the company.

Claudiu
The question is not whether there should be superstar salaries in programming, but why the range isn't larger. If the average guy is worth $80,000 a year, why isn't somebody five times better paid $400,000 a year? That isn't a superstar salary.
David Thornley
+35  A: 

It's fairly well recognized that some programmers are up to 10 times more productive than others.

Citations, please.

First of all, we can't measure productivity well enough to know what the average is or if it's a 2X, 3X, or 10X gap between the best and the average.

Second of all, that statement is often repeated, usually with the thought that "I'm one of the outliers and the rest of you are average", but rarely is it accompanied by evidence.

Third, the people who are really making out, like Page and Brin, start companies. They aren't heads down coders.

Fourth, programming salaries are subject to the rules of the marketplace just like everything else. If salaries are lower than you think they should be, perhaps it's because of market forces (e.g., easily available developers in India, Singapore, Russia, etc.) that are bringing the average down.

This answer might get me a down vote or two (or twenty) but take an economics course and figure it out. Maybe you aren't making A-list money because you believe too much of what you read on the Internet and don't take enough interest in skills other than coding.

UPDATE:

Sorry, I'm standing by my statement.

Steve McConnell's most compelling story - 80 Boeing developers replaced by one person - is accompanied by an "I'm not sure that it's true" disclaimer.

All the academic, controlled experiment studies that are cited still use lines of code or other obviously flawed measures for productivity.

Anything cited early than 1995 should be thrown out. I would weight a study that doesn't even use a modern language, tools, or techniques a lot less.

They also ignore one crucial fact: Programming in the large is a team sport, not an individual one. Tell one of your teammates that you make 10X the money they do and see how eager they are to cooperate next time you need their help.

Honestly, the economics answer is the only thing that's correct. The market decides. I don't know why sports and movie stars make so much money compared to bricklayers or ballet dancers. But they do. Supply and demand may not always conform to our sense of justice, but that's what is driving it.

duffymo
Steve McConnell's blog is called 10X Software Development. In his book, /Code Complete/, he references research that found that the most productive programmers were 10 times as productive as the least productive programmers.
Scottie T
@duffymo - I've added links and citations.
Kelly French
First, read some of the literature on the subject. Second, I'm not saying I should be making ten times what the next guy is, but somebody should be making a whole lot more than average. Third, a star actor or baseball player can make big money without also running a business, which is an entirely different skill set. Fourth, the question is not about the average salary but the range of salaries. For the final paragraph, what skills should a successful musician concentrate on? Music or business?
David Thornley
Different fields have different hiring practices. You can't be an actor or ballplayer without an entire team to support you. You can be a solo programmer.
kdgregory
@duffymo - you're sounding like Joe with this answer ... I came here to escape that :-)
kdgregory
Sorry, "citations" can leave a bad taste in somebody's mouth. Doesn't mean Joe isn't a smart guy.
duffymo
@David, I have read literature on the subject, but I can't claim to know all of it. Second, who's this "somebody"? Third, big money from running a business in this field is a fact. If you don't like it, learn to dunk like LeBron. For that last paragraph - both. It's true for every field. Know your craft, know your business.
duffymo
@Scottie, tell me which page McConnell refers to 10X and I'll get my copy of his book out to check it.
duffymo
Even if I could prove to your satisfaction that the 10x number is correct, we still have another problem. Companies are terrible at evaluating talent unless there is a well-defined metric, usually monetary. Movie stars can show they draw in an audience, financial traders can show their profit history, etc.
Kelly French
+1 I agree with you. People who blindly repeat the "10x better" mantra are probably not one of those because it shows that they are not thinking critically.
Ed Swangren
@Kelly - exactly. Why are you so confident that you can tell that 10X number with such certainty, but companies can't? If you could express that metric, and identify the individuals who met it, you'd be making a lot more than the developers you placed. Don't you see how false your argument is now? Money IS a great metric. Why doesn't it work out for developers who invoice directly for their services, like movie and trading stars? Because it's hard to measure, and it's often a team sport.
duffymo
Saying "market forces" is pretty much not answering, because there are so many things that can affect the market which is really what you are looking for in an answer. For example, many people think that salaries are determined by the market, but if you look at someone like a doctor, the government enforces medical licences, thereby controlling labor supply, therefore letting doctors make more. The government determines indirectly how much a doctor makes ( and in other more direct ways too). Markets aren't as pure as economists would like. So the question is WHY is the market the way it is?
FranticPedantic
Funny, I still don't see an answer from you. If you think you can do better at answering your question, please put it out there for all to see. Nobody claimed that markets were pure, but I think they are the best we have. As for why the market for programmers is the way it is, I'd maintain that we can't measure productivity well. Everyone who poses this question implies that they are in the right tail, but I'd say that it's not true. If it is, by all means quit your corporate job and start a company that proves it.
duffymo
kdgregory/duffy: Haha, joe, that brings back memories. I wonder if he's made the trip over here. Personally I'd love to see uj :)
Noon Silk
Not me. She can stay over on the Java Forum. I was wondering if I knew that "silky" nic... 8)
duffymo
@duffymo - does the Epilogue address what you've brought up?
Kelly French
@Kelly - What epilogue?
duffymo
@duffymo, throwing out studies prior to 1995 misses the point. We aren't trying to measure absolute improvement - obviously new hardware and tools will accomplish that. We are trying to show the range of performance amount different developers _using the same tools_, hence it doesn't matter what the tools are as long as the people being studied are using the same ones. This makes such studies applicable regardless of their time period.
Kelly French
I'll respectfully disagree. I don't think they apply, for the same reason that using mortgage data from the 50s and 60s didn't extrapolate well during the subprime mortgage debaucle. The behaviors reflected by the data are fundamentally different.
duffymo
http://forums.construx.com/blogs/stevemcc/archive/2008/03/27/productivity-variations-among-software-developers-and-teams-the-origin-of-quot-10x-quot.aspx
Arnis L.
"There is also lots of anecdotal support for the large variation between programmers" - only anecdotal support, really. A 1968 study appears to be the only basis for this. It's all subjective. There could be truth to it, but whether there is or not the fact doesn't appear to be easily measured or reflected in commonly used pay scales.
duffymo
@duffymo, I'd like to summarize your position - please correct me if I get it wrong. In the late 60's a study showed a large range of productivity among programmers with the equivalent experience and training while using the same tools - hardware, languages, etc. If we did the same study today but using modern hardware/languages/etc. you *don't* think there would be a large range in the productivity of programmers, i.e. that some would be many times more productive than programmers with the same experience and training while using the same modern tools.
Kelly French
This line: "There is also lots of anecdotal support for the large variation between programmers", likely to show informal support for the same conclusion as the formal studies, appears **after** the following paragraph of Steve's blog: "In years since the original study, the general finding that "There are order-of-magnitude differences among programmers" has been confirmed by many other studies of professional programmers (Curtis 1981, Mills 1983, DeMarco and Lister 1985, Curtis et al. 1986, Card 1987, Boehm and Papaccio 1988, Valett and McGarry 1989, Boehm et al 2000)."
Kelly French
Kelly, nobody needs to read anything other than what I wrote to understand my position. If we assume a normal distribution of ability in any undertaking, we'll find outliers at plus and minus three standard deviations of the norm, so I get that there's a difference between the best and the worst. No proof needed. I'm saying that neither you nor anyone else knows how to measure productivity appropriately. Neither does anybody in any of the studies you cite. We don't live in Lake Woebegon, where all the programmers are above average. Besides, it's moot. The market doesn't know, either.
duffymo
Measurement of programmer productivity is hard, if not impossible; on that much we agree.
Kelly French
Wow, you're having a hard time letting this go.
duffymo
+5  A: 

By excluding self-employed and contractors, what percentage is of all programmers are you excluding? In a sense, I get the feeling like if we didn't count any North American football players in the NFL, CFL or college level, how good are the top players left? By making that pair of exclusions I'm taking out a good chunk of the top players.

  1. How do you know that the top programmers at companies like Microsoft and Google aren't making rather large sums of cash? I'm not dodging the question as much as just asking how well can the answer be known as most companies guard salary information as tightly as intellectual property, IME. Consultants can sometimes make a lot of money but I'm not sure their salary is part of public record. There is also a point where I think more money isn't what people seek in their profession as things like time off and other benefits are more important than making more money.

  2. I wonder if places like Thoughtworks may be an example of where some people are paid the big bucks if their skill set merits such a level of compensation. Don't forget that there is also the question of what there is in compensation beyond a straight salary, like stock options, vacation pay, and bonuses for example. Jean-Paul Boodhoo would strike me as an example of someone that could get an amazing amount of work done in an hour compared to most other developers, based on the few talks where I've seen him in action.

JB King
@JB King, great points. I edited the question to clarify (and dilute) the exclusion.
Kelly French
I think that in the US, self employment and contracting have very little to do with talent but rather with age and family status. If you live in the US, have a family, and your spouse does not have group health care coverage or if your are the primary breadwinner, you don't have a practical option (if you are averse to risks) to go solo. This was less of a problem in my home country, where the state covers health care and things like that.
Uri
In Canada it is quite similar to the US, IMO. There are extended Health Care plans for things like prescription drugs, dental treatments and vision coverage that some prefer to be employees while others enjoy getting paid a little more as a contractor.
JB King
+25  A: 

1) Why aren't the top 1% of programmers paid like A-list movie stars?

At the risk of sounding snarky, I suspect programmers are not paid like this, because they are simply not like A-list movie stars, for the most part.

Most programmers (or, if you will, software engineers... there's a subtle difference) sit well behind the scenes, staring off into space, thinking carefully about the problem they want to solve, and then writing code to solve the problem. The average Joe-Schmoe will never see this person, and this person probably won't draw a tremendous amount of attention to himself (or herself). By way of demonstration, consider a lead developer for any version of Microsoft Office, and tell me if you could even think of a name, let alone visualize a face, without having to perform a Google search.

People like Linus Torvalds or Bjarne Stroustrup are notable exceptions.

A-list movie stars, by contrast, have a kind of built-in publicity by the nature of their work. Everyone sees these people, and when a movie hits it big, tons of people get to see the figure of that person doing what that person does best. When you watch Joe and the Volcano, you see Tom Hanks, and associate his acting (good or bad) with that character.

2) What would the industry be like if we did pay the "Smart and gets things done" programmers 6, 8, or 10 times what an intern makes?

Either software would be so outrageously expensive that nobody could afford to purchase it (and, thus, the whole industry would implode on itself), or interns would find themselves paid so poorly they would learn their craft quite slowly, or never pursue it, for having to supplement their income in some other fashion.

I don't think the market could bear it.

On the other hand, I tend to think a lot of companies hire more developers than they need to accomplish their goals, so it's hard to say; maybe one could afford to hire really good programmers at the rate you suggest if one hired fewer programmers overall.

fleeb
"People like Linus Torvalds or Bjarne Stroustrup are notable exceptions."and neither are really famous only for being programmers per se -- Torvalds is a project leader and organizer, and Stroustrup is a language designer.
Max Strini
"or interns would find themselves paid so poorly they would learn their craft quite slowly" .. ah ah ah! [The surprising truth about what motivates us](http://www.youtube.com/watch?v=u6XAPnuFjJc)
bobobobo
+4  A: 

I am not sure that compensating by productivity is so practical. For instance, I would rather see a developer who (if the timeline allows) may take longer but write something reusable with little technical debt that can be used and changed in the future. If we got measured by how fast we get the next short-term task done, when would we refactor? Why would we test? Tying compensation to short-term goals is how the economy got to this point. It would reverse positive trends in software development like testing by developers, since they can get more stuff and make bugs "a QA problem".

Now I would certainly love to be getting paid a lot more (especially considering education and such) rather than slightly above market.

However, I have come to accept the fact that unless you get to the upper echelons, developers who actually write code and have most of their experience in standard technologies rather than some unique, obscure, or extinct one, are simply a market commodity. There are too many of us, and the techniques for measuring our quality or contribution or talent are simply not there. At best, we could have come from a "top company" or a "top school". There could be companies like Fog Creek who actively hunt for superstars. But for the vast majority of companies, we are a commodity.

Companies are businesses, businesses are run by execs who control compensations, and execs only know how to poach and pay a lot to other execs, not technical people. That's because the people who can best evaluate technical talent are the technical people, which are merely means to an end for most of the execs. That's because most execs are one golf outing away from outsourcing our jobs and hiring some fancy consultant with "experience to manage an offshore team".

Anybody who is in this profession for the money in the US is in trouble. Anybody who expects to be reliably compensated for his talent in this profession is also probably in trouble. We could have used our talents to go to Law, Business, or Medical school; I believe many of us could have made it in. I'd like to think that most of us made the choice to not do so.

Uri
This profession actually pays very well, compared to many others.
Kaleb Brasee
My wife is in the humanities... Unfortunately I know...
Uri
The real money for geeks is in the financial sector...or at least it was prior to two years ago.
Robert Harvey
+14  A: 

There's fundamentally three reasons.

First, programmers aren't going to make superstar salaries, because you can bunch them up. You can substitute a couple of 7s for one 10. On the other hand, you can't play two decent players at first base in baseball, rather than one excellent player, and you can't put two good actors into one role instead of one great actor.

Second, corporate salary structures tend to be flatter inside categories than productivity would suggest. Therefore, there will be a lot of resistance to paying one person ten times as much as another for the same job, even if perfectly justified on the basis of productivity.

Third, it's very hard to measure productivity. The tests I've read about are basically about completing set tasks within certain periods of time, and one mark of a good developer is selecting the individual tasks better. Measuring productivity in the office setting is very difficult or impossible to do halfway accurately, and paying widely different salaries on an inaccurate measurement is going to have its own set of problems.

These last two mean that the only way an exceptionally productive developer is going to earn what he or she is worth is to be involved in the business, either starting a company or at least being in profit sharing. That requires doing different things and having different skills. Bill Gates is undoubtedly a quite talented programmer, but what got him his billions was his ability to run a business from nothing to something the size of Microsoft, which is a very rare ability.

David Thornley
Actually - You can't really bunch them up.
Arnis L.
@Arnis L: Actually, you usually can. Adding programmers to a project when needed will speed it up. It isn't a linear speedup; Brooks suggested that three programmers can do twice the work of one, and I haven't seen anything contradicting this. There are roles where this doesn't work well (most very successful computer languages are the product of one or two people with a lot of help), but these exceptions aren't often enough to make a significant difference.
David Thornley
+8  A: 

Because prices are set by supply and demand

Compensation is just the price for labor.

Prices are set by supply and demand.

Companies who want someone good need only raise what they are willing to pay until they can attract the necessary number of high-power developers. The amount is only partly correlated to productivity, as that does affect the demand side of the equation. If a good developer got tens times as much work done then a company could conceivably find motivation to pay ten times as much, but there is no point as long as paying a lesser amount will attract the right candidate.

The situation is complicated by incomplete information. Interviews are terrible ways to select programmers and not everyone has figured that out. With incomplete information the company does not know how much to pay.

It's easy to understand if restated to something less personal. Suppose computer B is ten times faster than A. Does that mean B should cost ten times as much. No. Sometimes it's very expensive to live on the fringe, and it costs more than 10 times as much. But suppose competitors can duplicate the 10x performance increase at only twice the price of A. This will obviously limit the price of B on the supply side.

Now imagine that it isn't clear, at least at first, which computer is even the faster one. This will also tend to even-out the pricing variation.

DigitalRoss
+39  A: 

Okay, this isn't going to be popular. Umm. Anyway...

You're using the wrong metric. Productivity or its lack has nothing to do with pay.

How much you are paid is proportional to how much money you can prove you make the company.

This is why sales people are paid more: it's easy to prove that some sales is greater than no sales.

This is why movie stars make more: a movie with a name can be proven to make more than a movie with a nobody.

How many programmers can prove to management, using the only language business knows (money), that they have increased income 10X over their least skilled compatriot?

Underflow
This is the flat-out correct answer IMHO. Not everybody is making Excel, SAP or the Quake engine, if you are the most brilliant curling player that ever lived you will make way less money than any top 1000 tennis player. Many programmers have made superstar money, when the product they made generated superstar revenue. (Carmack springs to mind).
Console
A: 

No matter how good you are, it's very hard to go into a company and demand a salary that's more than any of their directors get.

A-list movie stars get agents to negotiate rate for them and ensure that the terms are entirely business-to-business. As soon as you walk into the door as a potential employee you lose that.

I don't know about the US, but in the UK I suspect the top paid 1% of programmers still get paid well over $120k. They do so by either starting companies and selling to the public (think Google) and by contracting/freelancing.

If you're after figures, about 10% of salaried programmers earn more than $120k and more than 75% of contractors earn more than $120k. Courtesy of ITJobsWatch.co.uk

Alun Harford
+2  A: 

Here's just a couple of ideas supporting the question:

  1. Is the programming situation any different than any other engineering field? Technical fields in general (for example, research Ph.d in organic chemistry)? Employment in general?

  2. There are a lot of references to the "market". My understanding is that market models fail when the consumers cannot differentiate quality in the offered goods. So, does the issue reduce to the difficulty in measuring quality, is the measurement just a major factor or minor factor, or is measurement unimportant? (i.e., "even if you could measure...make no difference...")

  3. An echo of SWEBOK... What are the factors involved in measuring a programmer's value, and what proportion does productivity play? e.g., Y is very (20x) productive, but has x complaints of sexual harassment; insulted customer's wife, resulting in loss of contract; hygiene issues negatively affect productivity of coworkers; ad nauseam.

  4. Assume that the employer views the engineering staff cost as it would any other commodity. (I think) it follows that the company will attempt to contain staff costs as it would any other costs. I guess cost management is a complicated field, and I don't know much about it, but if we budget $50K for an addition to the programming staff, the recruiters will look for the best we can get for no more than 50K, and if given a choice between a 37K and 49K who look the same, will pick the 37K every time. Again the measurement issue. If the 49K would be 10x as productive as the 37K, but the 37K works out OK, was the 37K the wrong choice? (Hint: these is no line item for retained staff productivity as an asset)

cvsdave
I think you may be onto something with the cost basis idea. Costs get minimized. An A-list actor isn't a cost if the perception is that the actor will increase revenue. The question becomes, are you working for a cost-centric company, or a revenue-centric one. At least in terms of what the programmers contribute. Fog Creek is a good example of a revenue-centric one.
Kelly French
+2  A: 

See my answer about developer salaries to rise or fall; the key is the market for lemons.

Software Engineering ( requirement is more than programming... for reasons that should be obvious as the argument progresses)

In a LEMON market, you don't know when you hire how good they are. They normally stay 2 years. They many not even know themselves how good they are; the Dunning–Kruger effect and second order ignorance will play merry hell here.

You will only know how bad or good the work was in about 3-4 years, because that's how long a project of a decent size runs for. So you MIGHT find out long after they leave. If you were capable of telling the difference after the fact.

The Lemon market ( originally used cars) is about asymmetric information. The car seller is presumed to have a pretty good idea what a dud the car is, the buyer has no idea. So you have to assume it is a lemon. This pushes really good sellers out of the market; they have to find some other way of shifting their valuable product. The problem in software is that maybe nobody involved knows that the work was bad or good.

How will we know this "above average developer"?

We may not find out if they are spending 80% of their time doing maintenance (like me!) If you have to fix bad code all day, it may be very difficult to shine -- the 10x programmers dropped to only 2.5x when locked down about development choices.

Your employer will try to pay you enough that you show up to work, but not so much that you retire at 40. If you belong to a profession with regulation like electricians, plumbers, doctors etc you can ensure that the pool of prospective competitors is smaller; all demanding higher pay. And the customer will just have to pay it. Professional Engineers (PE) who can sign off on work, and have professional liability insurance around Australia get paid maybe 0-$5k more than non-PE's. Mostly 0 more; so it's not worth it even for mechanical engineers. Being in a regulated profession where all people have to deal You->Customers pays more than You->Business because the pool of customers is so much bigger; and less organized.

If businesses started having to pay big $$$ for software, then they sponsor political parties to open up "work visas" so that they can get cheaper labor from somewhere else, importantly labor that can't vote. They don't do that to lawyers, the lawyers are part of the "big end of town" already. Most 2nd and 1st world countries have work visas to keep programming salaries low. So now you have to compete with someone who wants enough money to eat and share a room. (It you're the person eating and sharing the room, brothers & sisters, I sympathize.)

And finally, to make a film takes 2-3 years. Then everyone sees the result. Rock stars publicly sell music. Programmers work at a desk somewhere. Maybe nothing ever comes of what you do. Even if you do insanely great work, is it a complete product that makes hundreds of millions of dollars profits? You'd get a big paycheck if you had an agent. Or are you one of fifty people doing insanely great work? You'll get free pizza and a pat on the back.

Lets face it, often software is not that profitable, especially once you add enough management to disperse blame. The credit will go to the a member of the executive caste if it was.

Tim Williscroft
A: 

In the vast majority of companies I've worked for, management is unaware that such as a thing as a "good" or "bad" developer even exists. They all just sit in their box and sprinkle their fairy dust, and out comes code.

Rock star?? Treated like a rock star by the BUSINESS?? in my experience, devs are treated exactly like the officers treat the Irish in that Titanic movie. They sit down in the boilers with their strange little customs and do whatever they do, and if everything goes pear shaped the powers that be shut the doors and let them drown first.

SteveCav