Carmack was also given lots of power and free reign, another
aspect of being a 10x+ that is key. If something needed to
change to make them more productive, he was the architect and
was allowed to make it happen. That access is harder to obtain
on established teams
Yes. This is so key. This is why I (and many others) bristle at the "10x" stuff. It's so context-dependent.
Put John Carmack to work on a legacy maintenance program at some bank where he's not allowed to make any real decisions that affect the workflow or overall codebase, and that guy's no longer a 10x programmer. He's not even going to be a 1x programmer until he learns all of the archaic domain knowledge relevant to his new, miserable job.
Lots of people are stuck in situations like this: 10x (or 1000x) talent stuck in situations where they're performing at 1x or worse.
Likewise, lots of people with 1x talent are perceived as operating at 10x levels relative to their peers in the organization because they've got favorable circumstances: they're allowed to work on greenfield projects while others are stuck doing maintenance, they're allowed to choose tools and stacks that suit their own preferences and skillsets, etc. Or they're the ones that wrote the initial code and are the only ones who really understand it.
I've been in both those situations, and others.
At various points in my career I've operated at 1/10x, 1x, and 10x relative to my peers.
It sure wasn't my work ethic or talent that changed.
Now, some may say that part of being a "10x" developer is striving to put yourself in situations where you can actually be a 10x developer. Well, if folks want to define it that way, then sure. But that sort of presupposes some kind of ideal free market in which people are free to change jobs as often as they like until they have found their own personal little 10x niche. Certainly we all should strive to do that, and many of us do, but there are significant barriers to doing that.
Put John Carmack to work on a legacy maintenance program at some bank where he's not allowed to make any real decisions that affect the workflow or overall codebase, and that guy's no longer a 10x programmer. He's not even going to be a 1x programmer until he learns all of the archaic domain knowledge relevant to his new, miserable job.
Lots of people are stuck in situations like this: 10x (or 1000x) talent stuck in situations where they're performing at 1x or worse.
Likewise, lots of people with 1x talent are perceived as operating at 10x levels relative to their peers in the organization because they've got favorable circumstances: they're allowed to work on greenfield projects while others are stuck doing maintenance, they're allowed to choose tools and stacks that suit their own preferences and skillsets, etc. Or they're the ones that wrote the initial code and are the only ones who really understand it.
I've been in both those situations, and others.
At various points in my career I've operated at 1/10x, 1x, and 10x relative to my peers.
It sure wasn't my work ethic or talent that changed.
Now, some may say that part of being a "10x" developer is striving to put yourself in situations where you can actually be a 10x developer. Well, if folks want to define it that way, then sure. But that sort of presupposes some kind of ideal free market in which people are free to change jobs as often as they like until they have found their own personal little 10x niche. Certainly we all should strive to do that, and many of us do, but there are significant barriers to doing that.