Likewise, there probably isn't such a thing as a 10X developer, but I totally believe 10X managers exist (they provide cover, they have empathy, they are able to lead people who otherwise aren't very manageable). I've only met very few of them in my career, most managers are 1X or even negative.
I really don't like the concept of a 10X developer - it implies linear scaling.
If you keep writing very similar implementations of very similar things (without actively damaging the code-base) you may very well be an O(n) developer. You keep working at the same pace regardless.
If you are a developer of some calibar, the work that you've already done will feed back into the work that you're doing - making you an O(log(n)) developer, until the work levels out and you slip back toward o(n).
Then there's the other end of the stick, the idiot who has no business writing code, but who management keeps around because he's cheap in the short term.
Everything he touches turn to shit, each change corrupts the code base just a little more, and each change to the corrupted code takes an amount of time proportional to the level of corruption.
This is the O(k^n) developer, and he needs to be stopped.
How do I know if I am an O(k^n) developer? My first "software engineer" job I did absolutely nothing but write update scripts, incredibly minute fixes to 10k+ line stored procedures and then helped watch deployments. I left that one for a new one, and I feel very slow compared to my coworker and I know that most of the time my designs for new features are extremely lacking. Should I leave my position since I fear I am impacting his ability to have high quality code?
In my experience the worst developers never ask if if they are doing things wrong and what that might be.
Look at the chages you're making to the code - are they of a quality comparable to what was already there, do they integrate cleanly, are you coding with a style that fits in with the surrounding code?
If not, what could you be doing better and why aren't you already doing it?
It may take longer in the short term, but give consideration to your development practices. Eventually you'll find yourself more quickly writing a higher quality of code that's more maintainable with fewer defects.
I agree with you that 10X managers exist, but it's utter nonsense to claim that 10X developers don't exist. I've met people who are possibly at the 100X level; it's worth remembering that some tasks cannot be done by an average developer with any amount of time.
I imagine that there are probably tasks that don't allow the 10X or 100X to show through; anything basic and repetitive enough (or so heavily specified that the developer's job is essentially "typing").
100X developers can straightforwardly - sometimes - find solutions to problems that are simple, elegant and fast. This often means that the things that they do are not only cleaner than the solutions produced by weak(er) engineers, but also require less complexity to implement them whether at the organizational level (e.g. because the task is being done by 1 person in 2 hours, rather than 4 people in 200+ person hours, there isn't any time spent on meetings) or at the technical level (e.g. because the task now runs better on a single computer, rather than a cluster or threaded machine, it no longer requires parallelization and a distributed system).
Sometimes this also comes about by a deep knowledge of available algorithms and systems, so while a naive programmer might start flailing around like a dog with their head stuck in a bucket, an experienced person might recognize the problem as an Integer Linear Programming case, etc.
There are plenty of cases where no-one is 100x, of course.
What traits did you find in them. How do those traits convert with experience. Say, for example what would, according to you, make a 3-5 year experienced web developer 10x?
It's not magic; it's vast amounts of experience; writing more code than, and twisting brains in ways that, normal people can't even imagine; and sticking with it for decades. I have no idea if I'm 5x or 10x or whatever, what I do know is that it's extremely rare to come across people who are more dedicated to the craft and/or have invested more in their skills.
Agreed completely. I've had a manager who was able to really leverage persons to create whole new verticals (that were actually profitable), but they hinged on single person's continued interest and commitment. He was borderline psychopathic (in the sense of being extremely manipulative on a personal level), though, and while the work I've done has been the most interesting in my career, the atmosphere was emotionally draining on a very personal level for most of us who worked for him.
However, I'm not sure that there exist 10x managers that are not manipulators / psychological exploiters.
That's because management is one of those fields that most people think they're qualified for. If you got arms, legs and are literate, many think they're cut out for it.
Same goes for teaching or education in general. So many wannabe educators writing or producing programming lessons that clearly have never studied education theory. A notorious one or two out there as well. Art or professional grade creative endeavors are probably the same way for the vast majority.
Unless you're some sort of savant, no one gets away with shortcutting the learning involved with anything. It's just kind of blissful ignorance.
You don't know what you don't know and it becomes a strength since most are too unmotivated to ever do things the right way, in a well-informed, disciplined manner regardless. To those who are in those fields though, it's painfully obvious.
On the contrary: One of the long-standing problems in engineering, technology, and indeed many other businesses (from nursing to Nickelodeon) has been what to do, when the traditional career progression was seen to be "next, you are promoted into management", with the large number of people who did not want to go into management.
Lots of people have been considering themselves unsuitable for management for decades. This is a problem that people were talking about in the "systems" world back in the 1970s and 1980s, and that is neither the only area that it was a problem in nor the earliest time that it was mentioned. Have a snippet from the Journal of Systems Management from 1980:
> The systems professional who wants to remain within his job, i.e., does not care if he is promoted, is one who sees his main purpose as contributing to the profession. But many professionals and many organizations feel that one must get promoted to a management position, for if one does not want to be a manager he is not ambitious. This reflects itself in many organizations when the annual review time rolls round, or when one wants to change jobs.
If your company today has an organization structure where entering management is not the only promotion path, decades of mulling and lots of people not seeing themselves as management is the cause.
It seems obvious that coding and managing are different jobs, and being good at one is not associated with being good at the other.
Good software team management is a superset of coding skill. Not only does the manager need to have reasonable - not necessarily outstanding - developer skills, but also needs to have good people skills, good political skills, a feel for context and strategy, and an ability to improvise creative solutions across all these domains.
The idea that someone who is good at coding should be promoted to management automatically seems bizarre. It's like expecting someone who is good at mountain biking to be good at driving a tank.
So is the idea that management can be measured with "objective" metrics, such as locs, time on/off, bugs killed, and so on.
In fact it's horrifically difficult to quantify the business ROI of software teams or of individual developers. ROI often depends on decisions made higher up the food chain, and it's even harder to get upper management to take responsibility for the consequences of bad decisions and bad attitudes.