The Christmas classic ‘Rudolph, the Red-Nosed Reindeer’ is basically one big bundle of awesomeness, but this is a personal favorite:
Hermey: Hey, what do you say we both be independent together, huh?
Rudolph: You wouldn’t mind my – red nose?
Hermey: Not if you don’t mind me being a dentist.
Rudolph: It’s a deal.
There are people who see the world as a zero-sum game.
That would mean that in order for you to be successful, I would have to fail. And then in order for you to be more successful, I would need to fail more.
It’s the reason why everyone scrambles when a pinata is broken because there’s a finite amount of candy on the ground and in order for you to get some, the other guy needs to get less.
One thing that contributes to that mentality is that programmers are not paid in proportion to their productivity, or their skill level. At best, they are paid based on their ability to negotiate. At worst, they are paid based on how old they are.
If programmers were paid based on their skill level or productivity, or something that even remotely resembles value to the company – what would be different?
If programmers were hired based on what they could do and not what they said, how could everything not be better?
- You could spend less time on value-less things that you hate to do, like resumes and more time on honing your craft
- Companies could spend less money on recruiting and hiring techniques that are notoriously horrible at predicting success and get back to building software
Obviously, this is a step up for the currently under-valued great developer who toils away thanklessly, buried in a team of non-starters. Even if this were a slight step-down for a more junior developer, at least there would be a clear path ahead where competency and achievement would be rewarded instead of having to play the corporate games and politics.
The only person this would not help is the person who is not productive nor skilled and has no desire to become so. To them I will say: your life is about to get a whole lot harder.
Things are in full swing at the Code Anthem HQ and the excitement is building. Code Anthem is going to change the way developers are hired, for the better. Get ready.

I got goosebumps at the end of that …
You guys are awesome, and I enjoy reading your blog entries very much, and look forward to seeing what your up to behind the curtain!
-TD
This posts discusses the free software and developer expectations, Obviously, the world is not a zero sum game.
http://zerolinesofcode.wordpress.com/2010/04/23/oracle-starts-to-monetize-free-software-is-it-wrong/
I asked the question about great programmers being paid more than average programmers that John mentions in the linked post. The question asked on the Stackoverflow podcast was turned into a Stackoverflow question. That question also inspired a blog post of mine to go into more detail on the subject. Thanks for bringing the subject up again.
When I started, I was already highly paid. I did engineering, but at the time it was COBOL and we had a years in caste system starting with programmer, then programmer-analyst, then system analyst, then database analyst. I was in the top tier. At the time the contract company I worked for noted that the COBOL programmers were mostly the same so fit well, but engineers were all different. Some like me did microprocessors, others did CAD or UNIX, others did things for those newfangled PCs. That was in the early ’80s.
The first thing I learned is how to learn. That is ask relevant questions, find the information, organize it, then use it. Read, understand, analyze, solve. That was in gradeschool. That hasn’t changed.
A year ago I didn’t know Atmel. I knew a lot of other micros, linux (I’ve code in the kernel), hardware, but not that. My current job needed it and I discovered the Arduino. I now have a data logging system using multiple micros and sensors on my Harley.
But India is cheaper. Chinese PhDs too. Get a few people here and a hoard there and you have software at a discount!.
The industry as such is likely to fail because they don’t understand creative quality. It isn’t from interchangable ISO-9000 programming personnel units.
500 art students will never equal one Michaelangelo, 500 marching band members one Mozart.
But one caution. What can they “do”? Answer Jeopardy games like “what is the singleton pattern?”. Know precedence of three languages the top of their head? Or actually write something utterly new? Take something which is slow or bulky and make it sleek? (I recently did a QR encoder in C that fits in a microcontroller and doesn’t use a single divide – you might not care but divides use 100x the power because of the number of gates than an add/subtract).
Too often what is tested is the ability to take tests.
Or (warning: war story) the company gets a programmer and then places them in a box where no one has decided what they want, but the schedule says the requirements are done and it is time to work on the design. How?
And what about critical programming? Things like medical devices, airplanes and railroads? Or security. Especially security since snake oil looks like its working until you notice you are hacked. (I have stories…)