Or they come in only every other Monday and contribute as much as a median Dev working full time?
It just doesn’t seem reasonable at all, at least if we read it literally.
I have worked with and met great, outstanding, developers who are much better than me. Some of them famous. None of them are anything close to 10x as productive, and I’m not particularly great. They’re much smarter than me, for sure, but they’re not 10x as productive.
I think you have a false dichotomy here. Carmack isn't 10x better a C or assembly than me. But in his domain he's easily 10x smarter and more productive than me.
And on top of that, he has a quarter century more experience in graphics programming than me. That shit accumulates.
Yes, actually. In graphics programming, from 2D and software rendered, to OpenGL and VR, you could give him and me (and presumably you) any task achievable in a few human decades, and he'd do it more than 10x faster.
"Graphics programming" is not a small niche, and yes in that space he's a 10x programmer.
I think you're thinking of this the wrong way. I agree that for something as simple as "build some websites", yeah, 10x is going to be very hard. You're then just turning specs into code, pretty much.
10x programmers are those that don't waste 9 months. The hard part is knowing which 9 months out of 10, which 9 ideas and components out of 10, is waste.
For "build a web forum" or something, yeah there are no 10x programmers. Though there are many many 0.1x programmers still.
I'm not a games programmer. I doubt a median games programmer would take 10x the length of time that it would take any other games programmer. It just seems implausible, and I don't know why people want to defend it.
I think in any field where you have a deep domain with complex, difficult constraints, it is entirely possible to have programmers with 10x the effectiveness of the median simply because of their greater domain expertise. They know the unique algorithms, data structures, design patterns, hacks, tricks, hardware quirks, tools, debuggers, code smells, etc. All of that has a huge compounding factor when it comes to output.
Here's a story I like to tell:
I joined EA shortly after the PS2 came out and worked at the studio that made Madden. Madden was a launch title on the PS2 (meaning it shipped right as the PS2 hardware did) and that version essentially sealed Madden's success. It was hugely successful.
But making a launch title is really hard. You're developing softare for a hardware platform that is itself in flux. When EA first started working on Madden PS2, they didn't have any dev kits to work on. I don't know if dev kits even existed. They needed to write code that they couldn't compile and run. But if they didn't start immediately, they would never be able to get the game done in time for the launch.
They had a guy on the team with a reputation for being a wizard. He took the MIPS R5900 reference manual, and disappeared into an office with blacked out windows for some number of weeks. When he re-emerged, he had written a PS2 emulator despite never having access to an actual PS2. The rest of the team were able to compile and run the game on that emulator so that they could make progress until eventually real dev kits arrived. From what I heard, when the real hardware showed up, the game actually ran on it.
Now, some of this legend may have grown in the retelling (it was already legendary by the time it was told to me), but I worked with that engineer a few times and I can vouch for his incredible ability to get stuff done. I remember once when FIFA was having performance problems and couldn't get their framerate high enough to ship. He was called into to help and a few days later, got it up to a solid 30 FPS. This was even though the team's own engineers had been trying to make progress and he had never touched the code before.
I think people dislike the mythos of 10x engineers because it's interpreted as some sort of cognitive essentialism. But I think most of it is just really deep domain expertise. Instead of talking about "10x engineers", we should talk about 10x at what.
The amount of innovation, from applied BSP, Zbuffer tradeoffs, light maps with interpolation, interleaved FPU corrections for texture mapping, multiplayer protocols (qtest used TCP), brush-levels, etc...
Before ID software did these things, they weren't checkboxes for what to do. After, sure. But the hard part of programming is not typing.
The median programmer would not have been able to do it before it had been completely irrelevant. The median games programmer could do it in 2005. In 1993-1996? Not a chance.
The main competitor to Quake was Duke Nukem, which technologically was just "doom and a half". The enemies were sprites, ffs.
ID software was years ahead of every other games developer.
The reason other games licensed the Quake engine wasn't that it was cheaper than doing it yourself, it was that they couldn't do it.
Edit: granted, I have a low opinion of the median programmer. But sometimes in life you meet people who, with things you think you're actually pretty good at, just completely mop the floor with you without even trying (or showing off). It's humbling.
Then why did all those thousands of other game programmers fail at creating a decent 3d game, before Doom was released? It's not like Carmack was the only one trying.
Almost definitely not 10 years.
And if you had, it would have taken you more than 10 years to realize what the right thing is, and to solve all very complex problems that showed up on the way.
Quake doesn't even have any load times! Not even with the hardware available at the time.
The more software development work approaches touch-typing, the less difference between 1x and 10X — strict Jira tickets in, garbage out, maybe slightly faster. Spec-work, and most grunt-work, is undifferentiated and does not benefit from a 10X person. The more your work approaches poetry - such as exercising user empathy, improving the architecture, considering UX, respecting performance constraints, understanding user's jobs to be done, and improving your implementation around that - the more creative space there is for 10X to reveal itself.
Ironically enough your example is flawed: there are documented 10x touch-typists.
The realities of the court system place high demands on the typists; the minimum required typing speed is already quite high: trained court reporter or closed captioner must write speeds of approximately 180, 200, and 225 words per minute (wpm) at very high accuracy in the categories of literary, jury charge, and testimony, respectively[1] - and some exceed the minimum and go for 300 wpm. Even better, the official record for American English [is] 375 wpm [2].
Compare that to the average typing speeds around 30 - 40 wpm [3] Granted, the court reporters use specialized input devices (stenotypes) - but hey, the same can be said about highly productive programmers, who use specialized development environments - and sometimes also specialized input devices.
--
[1] https://en.wikipedia.org/wiki/Stenotype
[2] ibid.
But that's where all the value is! Step 1 of being an exceptional worker is not to do unexceptional work if you can at all avoid it.
> at least if we read it literally
This is where it does fall down. There isn't an X that you can reliably measure 10 of, it's all very subjective.