I've seen programmers that were dead weight, moved to a different team and begin to flourish. I've seen programmers that on paper were the least valuable part of the team, do all the small things so well they were actually invaluable. I've been the developer that was considered a 10x dev but due to life stuff getting in the way I was probably a negative.
So sure, there are developers who are better than others, maybe even in non-linear ways, but so what? I think we can put lots of 1x developers into situations were they get 40% productivity improvements and that will go a lot further than chasing the long tails of 1000x devs.
The fastest way to kill high levels of productivity is to not value high levels of productivity.
Edit: And I believe there is a strong correlation between people who value high levels of productivity and people who can build highly productive work environments.
I have not found that to be true. In my experience the fastest way to kill productivity is to measure it incorrectly & incentivize bad behavior chasing the wrong thing.
Everyone values productivity but virtually no one has a good way to measure it, at least not in software.
You can't value high productivity if you don't recognize it when you see it, so any workplace that satisfies your first criterion will also satisfy sheepmullet's.
I once worked at a place that used spreadsheet workbooks to track developer activity down to the second and used SLoC as a management metric. It was the least productive workplace I have ever seen. Paid for by ~= $7M per year of the US federal budget, and returning a CRUD app that was probably still outperformed by folders in a file cabinet. A year of work by 12 "developers" might replace one paper form.
High productivity was interpreted as a threat to the gravy train. In retrospect, I should not have suggested that everyone on the team read _Code Complete_, because it just painted a target on my back.
In my experience this is almost always a management driven attempt to turn 1x engineers into 1.2x engineers.
Can you provide some examples where this is the norm in a company culture which focuses on building and enabling high performers?
Maybe we should discuss the role of the managers in getting everyone closer to their 10x potential instead of talking about this mythical always-10x creature?
Just think about your own carrier and people who helped you in the very beginning. Without them, would be the 10x guy you are today? What if your mentor was instead a -10x idiot?
I don't think we're saying anything exclusive. From what I've seen, pretending the gap doesn't exist (for whatever reason), is a sure way to make sure things don't improve.
I've watched Notch program, and while he knows of lots of game related algos that I don't, he's not a magical snowflake and it'd take me no time at all to find those algos and implement them. There are huge swathes of the code he writes that I'd be comfortable writing at about the same speed.
From experience solving other complex problems in unrelated domains, it might take me 2 or 3 hours of googling, once, for particular problems. The worst ones a day or two. After I've done it once, it's not hard to either remember or find that code and remind myself.
It certainly wouldn't take me 1000s of hours as you seem to think it would.
I don't believe in 10x programmers. I don't agree with many things stated in this article.
What I believe is that most programmers have a complexity ceiling, where if the code goes past a certain level of complexity they are practically useless on that code base. Often they can just deal with bits of it, but try getting them to do a large scale change and they simply can't. They can't reason coherently about their changes. I think both natural talent and experience raises that ceiling, as does time spent on a particular code base (just for that code base).
And that's where I think the 10x myth comes from.
EDIT: I've even seen projects where the original authors couldn't make much more progress with an operational product, I call it 'coding themself into a corner'. They took the project past the point of the complexity that they could personally handle.
Antirez's points about design are very relevant. Hiring a 10x CTO is probably very possible. But a 10x CTO can easily cost you 10x in salary, so again no disconnect.
I think "10x dev" usually means 10x average - with the assumption that the average (or median?) is still fairly productive. Also, what metrics have you to conclude this? Do you actually measure your own productivity, or is this a subjective judgement?
When discussing this, I think it's important to be aware of the strong psychological bias that skews our perception of how we have improved ourselves over time. I expect you are a better programmer but people tend to significantly overestimate the extent of improvement.
If I work at it, sure, in X years, maybe I can be in the same ballpark as him. But today, if you wanted a game prototype or full game built, Notch would be worth more than 10x me. Just think of the experience he's collected.
If we're talking in the abstract, sure, maybe he isn't 1000x the programmer I am. I'm not really sure there's a huge value in looking at it that way though.
But that's the point. Kids aren't going out of their way to buy complex technical achievements. They want a fun game. They don't care if it's 30 mil lines of beautiful C or 200k lines of ugly Java.
> I do not think Notch have more programming experience than thousands of other programmers in the industry.
Where and how you use that experience matters. Notch regularly enters game jams where he makes and completes a game in 24-72 hours. How many people here could do that? How many "average" programmers could do that? Maybe I could knock out a simple web service with a REST API quicker than Notch, but if your goal is "I need a simple game prototype by the end of the weekend", Notch is definitely the 10x option.
Sources: 1. you can watch him code on youtube, just search for "notch coding" 2. 0 research papers/new technologies 3. Minecraft is an average game from programmer's POV
I am not saying that he's so bad I would not hire him, I'm just saying that making Minecraft does not make him 10x programmer.
I am today, a 10x better programmer than I was where I started. In terms of quality, complexity, efficiency, readability, maintainability, everything. I was paid too much when I started and/or not enough now!
Notch and Carmack are 1000x better game programmers than I am. Linus is a 1000x better file system and operating system programmer than me. Monty is a 1000x better database programmer than I am. DHH can build a website at least 10x faster than me and do it in a way that would contribute 100x more to the community than I could.
If you discard people with decades of experience. If you discard people who have specialized. If you discard the many geniuses in our field. And then if you start to make excuses at the other end, and if you narrow it to a specific set of tasks, with a specific set of complexity, then maybe there isn't a huge gap. But even then, I feel that if you apply yourself to that task for a decade or two, you'll find that you're a 10x better programmer than you used to be.