And lets not talk about the 0.1x developers who are probably also a thing. If you get enough of those together, team productivity completely collapses. I've seen that happen.
1x is normal. Some people are less, some people are more. Normal is good and predictable. There's nothing wrong with normal. Normal people that put in a decent effort will produce results. That's a good thing. For a lot of long lived software, normal is what you want. You can't reasonably ask normal people to be more than normal. That would be abnormal. Putting in 120% of your best is not a thing. It doesn't work that way. You are doing pretty OK if you are getting 70-80% of your theoretical best. That's what normal is.
There are of course people who are a bit more capable than their average peers. This is often confused with working long hours. The ability to work longer is mostly something young, relatively healthy people are good at. But there's a difference between working longer and working smarter. You can't work 10x more than a normal person. There's only 24 hours in a day. The only logical way to get 10x more done is to work smarter. There is no other way. And some people really just are that good that they get more work done in the same amount of time. Part of that is experience, brains, and just being really efficient with their time.
An exhausted 10x developer is not a 10x developer. Because they'll be perpetually too tired to work smart. So they might be producing a lot of code but it will be the type of code that will need a lot of maintenance. A true 10x developer consistently writes less code with high impact without wearing themselves out too much. Doing that requires skill and experience. The best code is code you don't have to write. Use the right libraries, avoid reinventing wheels, make your code testable (so you don't get bogged down debugging it), don't repeat yourself, etc. If you find yourself doing the same thing over and over again, automate it. That's your job. Don't keep on doing the same thing. That would be stupid and somebody else will do something smarter eventually.
> And lets not talk about the 0.1x developers who are probably also a thing. If you get enough of those together, team productivity completely collapses. I've seen that happen.
> 1x is normal.
IIRC the post that came up with the 10x and 1x terminology used 1x as the worst performer. Normal/average was somewhere in between 10x and 1x.
The change to 1x being average in the common understanding seems to have happened because even the people criticizing it have an intuitive understanding that it's correct, they just want the boundaries somewhere else.
1x is normal. Some people are less, some people are more. Normal is good and predictable. There's nothing wrong with normal. Normal people that put in a decent effort will produce results. That's a good thing. For a lot of long lived software, normal is what you want. You can't reasonably ask normal people to be more than normal. That would be abnormal. Putting in 120% of your best is not a thing. It doesn't work that way. You are doing pretty OK if you are getting 70-80% of your theoretical best. That's what normal is.
There are of course people who are a bit more capable than their average peers. This is often confused with working long hours. The ability to work longer is mostly something young, relatively healthy people are good at. But there's a difference between working longer and working smarter. You can't work 10x more than a normal person. There's only 24 hours in a day. The only logical way to get 10x more done is to work smarter. There is no other way. And some people really just are that good that they get more work done in the same amount of time. Part of that is experience, brains, and just being really efficient with their time.
An exhausted 10x developer is not a 10x developer. Because they'll be perpetually too tired to work smart. So they might be producing a lot of code but it will be the type of code that will need a lot of maintenance. A true 10x developer consistently writes less code with high impact without wearing themselves out too much. Doing that requires skill and experience. The best code is code you don't have to write. Use the right libraries, avoid reinventing wheels, make your code testable (so you don't get bogged down debugging it), don't repeat yourself, etc. If you find yourself doing the same thing over and over again, automate it. That's your job. Don't keep on doing the same thing. That would be stupid and somebody else will do something smarter eventually.