So I think this myth is propagated by those who aren't 10x engineers and just want to give up before getting there.
So I think this myth is propagated by those who aren't 10x engineers and just want to give up before getting there.
How can you compare two engineers? Do you compare a junior against a senior? If you do compare two seniors, how do you make sure they are "comparable"? Perhaps they have different backgrounds (e.g., mathematician vs computer scientist) and one of them is so good at topic A, while the other is a genius at topic B.
I am a 10x engineer if you compare me with my junior colleagues. I have no idea how I do compare with my senior colleagues because they are good at things I'm not and the other way around: that's what makes a good team actually.
> So I think this myth is propagated by those who aren't 10x engineers and just want to give up before getting there.
Who wants to be a 10x engineer?
In my area of responsibility and expertise I (as anyone else) can do stuff 10x times better and faster. I know patterns and a set of solutions that help me to do that.
But outside of that area I can be that <1x guy. Probably not 0.1x though, because of knowledge of meta-patterns common to wide spectrum of system designs, but still far from ideal ...
TL;DR: Козьма Прутков: (ru) Каждый человек необходимо приносит пользу, будучи употреблен на своем месте. Kozma Prutkoff: Each person necessarily benefits by being used in his place.
Can you do it 10x better/faster than other people who are also experts in that area? If not then you aren't 10x.
A reasonable bar for 10x is that you should be much more effective than your peers in any codebase, even codebases they have spent years in. If that doesn't apply to you then you are just an average expert.
Edit: The best programmers takes the bus factor from 0 to 1, that makes them invaluable to many businesses. A programmer who can only do well using his own code, or who writes code that others can't work with, isn't very good at all.
Different people - different areas.
Like in Sciter[1] I've implemented HTML, CSS and script engines from ground up and by myself. If a task requires deep knowledge of browser internals from all sides then I think I can be of that 10x. Even among browser developers that do HTML/DOM or CSS or script engines.
It is not a secret that indie developers are in times more productive than teams that design analogous products. For many reasons.
So comparing how effective you are when you work on your own projects to how effective others are when they work on a large team effort isn't a meaningful comparison. The most valuable programs are all huge collaborative efforts, so even if you as an individual produce less things you typically add more value by working on a big project, while most of the effort people put into their personal project never goes anywhere so ultimately provided 0 value, that is why we put up with teamwork.
But there are many cases where a team of collaborators just never gets anything done. I'm not sure how that happens, but in those cases any decent developer who has practiced some solo projects will easily do it in a fraction of the time. Maybe some developers just never builds their solo development skills and just practice the more lucrative team development skills? But you can't do without those solo dev skills, they are necessary to get out of those deadlocks where a bunch of team players all are waiting for someone else to fix a problem.