show-me-the-money

Why developers don’t make millions of dollars

Let’s start with a riddle: what does a developer do to unwind at the end of a frustrating day at the office ?
Answer: he goes home and takes some time to write more code.

So, does this mean all developers are workaholics ? Highly questionable: why would there be more workaholics in development than in other professions? So…do they do it because they are socially awkward and have nothing fun to do ? Hmmm, I know the stereotype, but most developers I know have families, friends, love sports, parties, music and beer like any other human being out there. So that can’t be it.
So why do they do it ? A cynical answer might be: working on side projects improves your resume. While it’s definitely true that doing extra stuff can improve your resume, this line of reasoning is confusing cause and effect: employers didn’t somehow invent working on side projects is a bonus. Instead, it’s an intrinsic drive many great developers have, and as a result employers decided to include checking for side projects in their hiring practices.

So in fact the simple truth is…**drumroll**…great developers love what they do.

However, in the typical day job there is always external pressure saying you can only spend this many hours on it, or go in some direction that is politically correct but aesthetically or technically wrong. While some developers learn to appreciate this game of thrones forces playing a role and migrate to management positions, this is still a distraction from the thing they REALLY love: simply playing with new technologies and writing awesome code.

“Hey, I came here to read about earning millions of dollars, what’s the deal?” Patience my young padawan, the side project was important, because it sets the stage for an essential first conclusion, which is: Developers are artists (craftsman if you like). Why do I say this ? Because developers share this single very important trait with ‘real’ artists: in their off-time, they still do the same thing without direct benefits to their day job, but this time in complete freedom. Developers are not unique in this regard, other professionals sharing this characteristic include scientists and professional athletes.

So why is it that we don’t share that other very important trait: getting paid millions of $ ? Is it because we are not making things for the masses like rock stars and football heroes ? On the contrary: the very core of our everyday society is made by developers. From the apps on your smartphone, the electronics in your car, the systems wiring your paycheck every month, to the internet itself, all made by developers. These days software is as fundamental as power and food. Of course in order to run software needs a hardware infrastructure: the chips in the smartphones and servers, and on a larger scale the buildings they sit in and batteries powering them. These are however like the stadiums and roads you need for sports. The actual athlete creating the content are the artists: developers and designers.

So again, why aren’t these guys paid big wads of cash ? Some say it’s because professional athletes, musicians and movie stars only have a limited number of years to earn enough until they retire. While that line of thought is very social, it’s equally false. The markets don’t care for those guys any more than they care for any other human being, and club owners and record labels would very much like to pay them less.

No, the real answer starts with lack of visibility. Even with my untrained eye I can see one striker is making a more beautiful goal than the next, or a goalie gets an impossible save. To a lesser degree, I can differentiate great art from kitsch. It is however impossible to identify great scientists without being one yourself, and the same is true for developers. This can lead to only one outcome: most companies, because they can’t/won’t differentiate skill and dedication and see developers as production workers instead of creative professionals, will let new hires compete on price instead of quality. So they hire the script kiddies, googlecoders, and ‘fake it till you make it’ programmers. Some time after, because the ‘production workers’ aren’t delivering, they hire an extra management layer – most likely an ‘Agile guru’ with zero technical training – to put them to work.

And here we have the real problem: even if a great developer manages to pass this indiscriminate hiring wall, and turns out to be a real asset, between him and the CEO there are 9001 layers of management, each of which has to earn more than the last, irrespective of their actual contribution to the company. In this sense the position of developers is much like the one of coffee bean farmers, in that a very small percentage of the money reaches the ones creating the actual product. This still wouldn’t be a problem if development was a more visible art, like sports or music. Developers would be recognized as the creative force and the discrepancy would be impossible to sell to a larger audience.

So how can we fix it ? I’m not sure. Teaching everyone to code is a good initiative for a number of reasons, but it’s highly unlikely this will ever solve the ‘untrained eye’ problem at the levels we are talking about. It also will take ages before the effects will be seen. A more short term solution would be to put some developers on a pedestal: not just before other developers but for a large audience. Any rockstar coders out there willing to take the spotlights ? :)

10 Comments

  1. “they still do the same thing without direct benefits to their day job…” – Quite often something done outside of work, can in fact benefit work because we find a better way of solving a problem that we’ve come across before and have the time to figure out properly!

  2. In my opinion (as a developer) *great* developers, like *great* athletes/artists do indeed make a lot of money, because whatever makes them great, also makes them unique, which in turn makes them expensive.
    Average american football player or average actor’s salary is really not that high, its the celebrities – ie outliers – in those areas you’re comparing us with.
    And of course you can be an outlier developer – not to start flamewars/catch flack, but Zuckerberg was one of those “great” developers – he built something so popular, it made him very rich.
    The other problem is market saturation i think.
    Most developer jobs can be done by any “average” developer (im a web developer, i would know :) ), and since they are “average” there are a lot of them, so they are replaceable and not very “unique”.
    So, if you want to make millions of dollars as a developer, you have to be really really special. And i dont mean have much higher IQ or know 20 more languages than everyone else – mostly, you just need some business sense, some “luck” and ultimately more diverse skill set than just crafting software.
    Either way, personally i do it because i really wouldnt want to do anything else for a living since i like it, but money is always on the mind – its pretty awesome to save up/have enough to not have any full time job for 6 months and just work *only* on what you want…
    IMHO….

  3. Perhaps the solution would be for all the (good) developers, to resign from salaried positions, and deign to work for customers only as free lance consultants or starting up their own software development companies.

    Good surgeons are not salaried (in general). They are independent doctors, or have their own hospital or clinic.

  4. Encouraging everybody to learn to program is like teaching music or sport in school. Everybody gets to do a bit, but it doesn’t mean that they’ll be good enough to do it at a professional level. Few will become top billed rock stars or pro athletes.

  5. I guess it isn’t a coincidence that companies such as Apple and Adobe, who made a conscious decision to stop allowing individual contributors to put their names in the “About…” screens, got caught illegally suppressing developer wages through no poaching agreements around the same time. When anyone who uses your software can easily find out that you made it, you become worth a lot more than if you’re just another person with Apple or Adobe on their resume.

  6. The second reason is that in sport there aren’t that many of “the best”. By definition there’s only one team or individual who comes out at the top of a particular competition or a particular sports season. And there are a few who come out near the top.

    On the other hand, there’s a huge number of developers. You can’t have a million rock stars, since every person can treat a limited range of people as famous. It’s possible for the top sports teams to consume the “fame enabling capacity” of large masses of people, since they are so few. Not so for developers.

  7. Not all developers are the same – I keep my coding work very strictly time-boxed, and definitely don’t do it recreationally.

    I do have side projects, but they always have a monetization goal – just because I’ve never found it hard to pick projects I both enjoy *and* can monetize – so why not win-win?

Comments are closed.