The existence of rockstars provides fodder for individualist ideologies. Many people are more collectivist, so therefore feel the need to dispute the existence of rockstars. This is a little bit evident here - you need a rockstar team, with diversity. It's far more evident in the last post on this same topic.
(Not quite a dupe, but it might as well be. https://medium.com/about-work/6aedba30ecfe )
Amusingly, it's also a very corporate philosophy. "No programmer is worth more than any other, therefore to advance you must enter management." Tends to be self selecting in such corporations, since everyone who isn't mediocre leaves.
I don't think that's what's being said. IMHO the message is:
- No programmer is worth 10x the average. (though some might be worth 1/10 * the average).
- A high-functioning team is more important than a high-functioning individual, and these two are sometimes at odds if you give free rein to the "individualist ideologies".
Both are debatable and IMHO are often true, but "No programmer is worth more than any other", i.e. "all programmers have exactly the same worth" is not Hanselman's point. It is an corporate anti-pattern.
"each person has different strengths and weaknesses and is growing at their own rate" is recognised implicitly in a healthy working environment. Whether management gets it or not.
It's an exaggeration (I probably should have been more clear), not a straw man. Obviously big corporations have different levels of engineers, but many of them claim engineers top out at a certain point. Your claim that "no programmer is worth 10x the average" does imply this. If programmers max out at being only 3x better than average (or whatever the multiplier is), to get beyond that level one needs to be a manager.
Interestingly, tech companies, trading desks, and other places where technology really matters frequently don't view things this way.
Those claims are debatable and often true, not always true. As opposed to straw men which aren't even debatable.
I've seen less actual 10* engineers and more high-functioning individualistic coders who maintain whole systems on their own, and at some point leave the company (most people change jobs at some point, but in their case it was accompanied by "nobody understands what I do" noises) whereupon it's unmaintainable (in one case, running on their dev machine against explicit instruction with no source or login details).
Your company may hit the jackpot and hire a budding Linus Torvalds or John Carmack, but the odds are bad and the guy who thinks he's a rockstar is more likely to be a good coder, but an egotistical person. Lots of actual musician rockstars are assholes too.
A well-functioning team is a much better bet. Lottery tickets are a poor investment.
I know that trading desks may disagree, but IMHO that's a defect of the stock-market gambling culture that they come from (where someone's guaranteed to beat the market this year. Find them and call them a genius!). I've worked in various tech companies, and that mindset is not universal there. It's not even welcome to me.
First, not all software engineers actually do commercially work on commercial software -- as a quick example, Con Kolivas, who is an anaesthesiologist by day and kernel hacker in spare time. Others may work on commerical software by themselves, without any external team or management involved; think Colin Percival. I would even wager a guess that some of the best software was created in a non-commercial way, say, Linux kernel -- at least the early versions of it.
Second, the impact any software engineer has on company bottom line is much affected by other aspects of a company. In a symbolic notation, you could say:
BOTTOMLINE_IMPACT := RISK_MANAGEMENT(SALES(TEAM_MANAGEMENT(THE_SOFTWARE_DEVELOPER(EXISTING_CODEBASE)))).
Invoking the Amdahl's law -- even if you had a 10x SOFTWARE_DEVELOPER, performance of the whole system will be limited by the other factors. In my limited experience, the RISK_MANAGEMENT (of software development and use) part is the least understood one those days.Absolutely.
While everything you say is true, building the right thing is as important as building the thing right. If you are working for a company, and what you do doesn't benefit that company, you might as well go home.
I'm getting the impression that you believe 10x coders exist but merely dislike them.
> If one can, that's your 10x coder right there
It can happen, it's just not likely enough to stake your business on. What I dislike is the cult of rockstar programmers. If there are 100 job ads for rockstars, are there really 500 actual rockstars showing up for those interviews? No. All this cult is doing is encouraging harmful egoism.
It's all in the first few lines of the article:
> Myth of the Rockstar Programmer: Calling out rockstars demotivates the team. Telling someone they are a rockstar may cause them to actually believe it
So many enterprise IT shops are effectively bankrupt due to technical debt and the only thing propping them up is the cash influx of the enterprise that owns them. This affects J2EE shops just as much as .NET ones.
And the multicore future, end of Moore's law, has effectively made all of their software, both built software and purchased software, obsolete. It is not a pretty picture, but we will see this all play out over the next few years. That is far more important than chasing after the fantasy of the 10x white knight who will save you.
I am allowed to be opinionated, I have seen both forms in well paid consultant jobs.
You can see similar distributions with scientists or other professionals.
The discussion about what a 10x developer means is really interesting: specialization and long time commitment to specific fields pays a very important part. I don't think you can be a 10X developer in an unrelated specialty. We can compare this with experiments about chess masters playing a new game with modified rules, they are not masters anymore.
- `I have worked with / seen code of such ones' (often examples follow)
- `there were no such ones on any team I ever managed', with OP falling into this category.
Which is to say, the existence (or absence) of 10x software engineers appears to be party recognition problem -- managers do not want to believe one `rockstar' is responsible for most of team's output.
The other part, is the sampling bias: managers don't get to work with the Torvalds, Bellards, etc. Such software engineers often don't need to be, or aren't managed while producing their most important code. Neither they do respond to ``we are hiring rockstars'' types of job ads...