I disagree strongly. I created a software company, I have an amazing team, I know a little about this.
Rockstars programmers exist and they do because they can do machines do work for them, instead of having five people do the work the can do the code 5x to 100x or 1000x faster.
They could automate almost everything, even coding(creating new languages when needed specially for the task) and debugging itself, creating testing code, making failures very hard to happen.
A normal programmer will create new problems, not solve it. She will put mechanisms in place in order for the company to depend on her. She could not be faster but she could certainly make the others to slow down to her level. Beware is she gets to manage Rockstars, she will do everything to put others down, pointing fingers. They are experts excuse makers.
If you look at all big software accomplishments you will discover a very small team of incredible rockstar developers.
What this man is saying is that you need a team, no divas. But who says that Rockstars can't create teams?
One thing you can't do of course is putting Rockstars at the orders of some mediocre person or even argue when you don't know what you are talking about(you need to do your homework first). It is not comfortable.
What this person is saying is that he fears managing a team of people smarter than him, so he just prefers having people that are "normal".
If you think you're hiring abnormal developers, you either have a very distorted view of your candidate pool, or your hiring process borks somewhere in the middle.
There is at least one faulty assumption in your post; I don't think it disqualifies it, of course, but I believe it makes it hard to generalize your conclusion:
> they do because they can do machines do work for them, instead of having five people do the work the can do the code 5x to 100x or 1000x faster. They could automate almost everything, even coding(creating new languages when needed specially for the task) and debugging itself, creating testing code, making failures very hard to happen.
First off, the "they make machines do work for them" is a cliche. Please, don't use this to advertise your team. Unless it's a bunch of freshmen doing 100% quality original web design on freelancer.com.
Second, if most of your development process can be automatized, why exactly do you need a team of developers? Original work tends to require thinking and crafting. If you're cranking out Joomla websites and a hundred customized CRMs a month, sure, that works, but most of these mythical rockstar creatures would probably not touch one of those things.
What about processes that naturally don't lend themselves to being automatized, particularly like the DSLs you mention? Yes, you can automate some of the process (e.g. you can use flexx and yacc to generate some of the parsing logic) if the language is too complex to reliably code the respective parts by hand, but you're still a long way to go from there.
> A normal programmer will create new problems, not solve it. She will put mechanisms in place in order for the company to depend on her. She could not be faster but she could certainly make the others to slow down to her level.
This is not what a normal programmer does. If the programmers you normally hire are like this, your company has a serious problem.
Of course they do. The laws of probability ensure that. People and their traits usually follow a normal ("bell curve") distribution. Some individuals are at +2.5 standard deviations, and some even at +3.0 but they are rare.
A +2.5 developer is better than 99.38% of the entire population. (1 in 160)
A +3.0 developer is better than 99.87% of the population. (1 in 770)
That kind of talent can not be easy to find, let alone attract. So relying on getting such stars is gambling against some pretty bad odds. Some companies no doubt have found that they can improve the odds of attracting those off-the-charts developers, but for the rest of us mortals...
You're mistaken about the laws of probability. The normal distribution arises from sums of the same distribution. This is most frequently found in sample averages, which is . More accurately, sample averages follow a student T distribution, which converges to a normal distribution as sample size increases to infinity.
In general, humans do not follow a bell curve for complex traits. For instance, it's common to see bimodal/multimodal distributions when there are major demographic differences in the population such as gender, race, economic class, etc. Standardized tests have bell-curves because they are "normed." Experimental questions are thrown out if they are not correlated very well with the result.
Also based on the Chebyshev's inequality,
+2 std dev has a minimum percentile of 75%.
+2.5 has a minimum percentile of 84%.
+3 has a minimum percentile of 89%.
+k has a minimum percentile of 1-(1/k^2)
Not only that, he seems to be conflating standard deviations with productivity multipliers (I'm not exactly sure how to translate his +2 to productivity, I could be misinterpreting), which is definitely wrong.
Heavens, no. That wasn't the idea, and certainly not my intention. It was merely a numerical standard deviance value, nothing more.
Granted, the people at the high end of the scale are probably more productive when facing more difficult problems but that's all. "How much more" is then an altogether different question. I'm not sure if one could even put a figure on it.
Rockstars programmers exist and they do because they can do machines do work for them, instead of having five people do the work the can do the code 5x to 100x or 1000x faster.
They could automate almost everything, even coding(creating new languages when needed specially for the task) and debugging itself, creating testing code, making failures very hard to happen.
A normal programmer will create new problems, not solve it. She will put mechanisms in place in order for the company to depend on her. She could not be faster but she could certainly make the others to slow down to her level. Beware is she gets to manage Rockstars, she will do everything to put others down, pointing fingers. They are experts excuse makers.
If you look at all big software accomplishments you will discover a very small team of incredible rockstar developers.
What this man is saying is that you need a team, no divas. But who says that Rockstars can't create teams?
One thing you can't do of course is putting Rockstars at the orders of some mediocre person or even argue when you don't know what you are talking about(you need to do your homework first). It is not comfortable.
What this person is saying is that he fears managing a team of people smarter than him, so he just prefers having people that are "normal".