I wrote up my 2 cents on this. Love to hear back from ya’ll.
They can SEE the code that makes up The Matrix if you will and they can
alter it. They can thread together hundreds of disparate facts, ideas,
code lines into one place in their head at one time and make a
connection that 100 other devs looking at it would never make.
The 5-6 standout programmers I’ve worked with in 20+ years seem to have much more working memory than I do, so I agree this is a good description. I don’t think Graham is talking about as rare a beast as you though, so perhaps that is where some of your disagreement lies. A team needs at least one person who can figure out any problem, but this person just needs to be sharp enough for the product/environment, not one of the best in the world.
It may have been the luck of the draw, but most of the standout programmers I knew also had a bad case of “I’m so smart and valuable to the company I can be a jerk and get away with it.” I’m not sure I would want a team made up of such folks. I’m not sure such folks could work together as a team.
Heck, can you name even one top level full time coder at Facebook, Apple, Google? Nope.
I agree remote work is a great solution.
I’ve always felt the 10x programmer was a myth designed to keep the programmer world homogeneous. Ie, expand the old boy network.
Who decides who a 10x time programmer is? Usually the person making the claim that some programmers are 10x better includes himself as a part of this elite club, with the power to add new members. If you only you buy his product/join his VC funded company!
The logic sounds a lot like the one bankers make: We are so special, we deserve all this money!
In many cases, the so called 10x programmers are reading word by word from the same book the bankers are. And don’t forget how the rest of the world sees bankers.
It’s easy for people within a profession, with a narrow focus, to lose sight of the big picture. Like @ian says, programming is more than just banging out code, especially if you are a bootstrapper. And yet VC companies keep banging out this myth. All you need to do is hire a 10x programmer, and you’re made for life!
While I accept some programmers are better than others, every programmer in the world (and I do mean everyone) thinks that they are the 10x programmer, and they then feel sorry for the other losers not a member of the club.
The cynical part of me wonders if this isn’t a ploy to get more idiot, sorry, inexperienced young programmers to work soul crushing hours so some VC can make a profit from 1% of his investments.
But hey, maybe I’m just too cynical
It doesn’t matter if they exist (probably do?), I wouldn’t waste time attempting to look for one for my startup or business.
Unless you’re 37Signals you won’t really have access to that level of talent, so someone who is good rather than OMG AMAZING will work.
A long long time ago, in a job far, far away, I worked in the same company as Andrew Tridgell:
His PhD thesis was rsync but as a distraction, he reverse engineered Microsoft’s file server protocol, and created Samba, for fun.
People like that are - without a doubt in my mind - able to do stuff that the rest of us would just get stuck on.
But in any event, no government is ever going to be able to discern which programmers are better than others and how much, so the debate is really about immigration. I wrote this after reading PG’s essay:
“We Try Harder.” - Avis
There are definitely 10x programmers, but you need to remember a few things
a) The ‘average’ programmer is actually not very good. The certainly don’t start bootstrap companies that may require them to program at night. They rarely if ever go to user groups or meetups, they use .NET 2.0 and aren’t fussed to upgrade and working at big insurance co banging our CRUD and reports is fine. Being 3x the average is not that hard if you are enthusiastic.
Something that’s not mentioned directly is that the fact that you have a 10x programmer doesn’t mean that having more of them is going to be particularly beneficial. Can you imagine an NBA team with 5 Michael Jordan’s? Sounds great in theory but how many rebounds is he going to get against bigger guys? Can he post up against someone who’s 7’2" and beat them? He isn’t going to make every shot. He’s not going to get every rebound. Superstars need to be supported.
Likewise in a development team, you need people with different specialties. It’s great to have that one guy who can think really far outside the box but that doesn’t mean if you have 5 of them, they’re going to work well together. Teamwork counts for a lot.
What about 5 Michael Jordan, but not in the same domain? Programmers aren’t always the same creature
I think there’s an enormous opportunity for “efficiency” in being very smart about the real requirements.
I.e., you think you need X but in reality Almost-X is good enough.
A crucial skill for all engineers is figuring out the easiest,cheapest solution. OVER engineering is EASY.
This is 10x harder than I thought it would be. Is this really the way we need to solve this problem?
We were working on our interactive speech therapy website ( http://MoreSpeech.com )and we needed to display the keyboard on the ipad. Turns out that’s really really hard to do. You have to have a textbox. And the user has to click in it. We wanted to have a keyboard come up on the lesson where the user types the word for a picture they see.
The programmer went to a lot of work to make the keyboard appear. I (and probaby he) didn’t realize it would take hours.
Then I realized: if we just put an icon of a keyboard (or keys) IN the textbox with a mouse pointer and perhaps even “Click here for onscreen keyboard” (only on a touchscreen, or at least only on the ipad) we could do it in 30 minutes.
Our programmer wasn’t dumb. But he got locked into a goal and should perhaps have stepped back when it got really hard (before going down a Rabbit Hole) and said “hmmmm… do we REALLY need to do it this way”.
I’m an ex accountant (average) and ex 6-8x productivity programmer. I’ve also worked with lots of programmers and tutored several (1-3 mos per person). And as someone pointed out, I was an arrogant fuck to work with - when it came to productive programming.
Then I got a stress-related illness. I had a constant head-ache and blurry brain, so I worked 2-3h per day to produce what an average person produced and rested the rest of the day. Until I fed up, recovered and started bootstrapping. It took me a long time to recover, and I didn’t get back to 8x - I’m maybe 2-3x now. And of course my 1x is the average from people I’ve worked with - it’s probably different company by company.
The Neo’s which have been mentioned, with 10x everything - they are extremely rare and your startup doesn’t want them (unless they are the founders and thus interested in the business). The startups and regular businesses usually want the +4x productivity guys when they speak about 10x programmers.
Because let’s face it, regular business programming is not very challenging or thrilling. Your supertalent Neo would get bored - so he’d use 1-2h per day on the startup and rest for his own ‘change the world’ project.
I’ve also worked with super talented and technically brilliant programmers who had less than average productivity. They would either not use reusable components where it was possible, or they’d want to make the code ‘perfect’ which slowed them down. Sometimes there were also guys who wanted to express themselves with the code and ended up with solutions which were unmaintainable.
And as @Clay_Nichols mentioned, these guys may pick a technically hard and time-consuming solution over a fast and simple one.
So being 10x more productive programmer is not about technical excellence, it’s about getting things done - pushing solid, working, maintainable code out. And it’s not enough to just see the ‘matrix’ of the code - you’ll have to see the ‘matrix’ of the business as well.
In a perfect team, you’d have one 10x productivity guy, one 10x talent guy, one 10x creativity guy, one guy to keep the productivity guy from killing the talent guy and 3 average programmers to finish up what the creativity guy started.
The original “some programmers are 10x more productive than others” claim was, IIRC, was from Fred Brooks 40 years ago. He clearly described (again IIRC) that as being partly a result of having the right tools and organisational support, as well as raw talent.
If you have worked in programming for a old, large bank, and then worked for a small developer-oriented company, you’ve probably personally experienced the 10x productivity improvement in your own work.
In regards to this I would heartily recommend “The Mythical Man Month” by Fred Brooks.
My sister works for one of these big banks that went belly up (in the IT department, before you throw stones at me).
When I listen to her, about the amount of BS and hassle they have to go through, I start feeling 10x productive without even writing any code
I could bore you for hours with stories about the productivity-killers doing dev in a corporate bank.
My favourite could be the time a project manager forgot to order computers for a few external contractors, including me. For three weeks, we had to turn up every day, we got full pay, but we couldn’t actually do anything other than read the half-written spec over and over again. The bank was required to purchase the computers through their own spun-off hardware/software supplier, and they had a minimum delivery time of three weeks. Then when the computers arrived, we discovered that they had no software installed, other than the base OS. Same story, same supplier, full pay, required presence, no chance to work, waiting another week for Office and a few others tools to be installed.
I guess I worked there for six months and achieved what could be a week’s work in a productivity-focused team.
That bank was old, a household name in Germany, and the bank was wiped out by the sub-prime mortgage financial fiasco. I wasn’t surprised.
Your response is so perfect.
I’m not sure why people think the 10x thing would be a myth. In any profession with a sufficient amount of leverage, you’re going to have huge discrepancies in output.
Look at salespeople. The 10x sales guy isn’t even that good. It’s the 100x or perhaps 1000x.
Developers probably have much more leverage than sales people. Sales people ultimately have to talk to individuals one at a time.