IMHO an alpha engineer should do one of two things:
1) Architect the application and divide the detail programming in enough well-defined subtasks that lesser gods can start working on these subtasks while the alpha starts engineering further. Well-defined subtasks need relatively little communication, and economies of scale are used.
2) Add the brilliance to an existing framework built by beta engineers (Like Rembrandt painting the lace on the painting of an apprentice).
It basically depends on where a product is in the life cycle which of the two strategies is most effective.
I'm not quite sure what is the point of this post. Being smart = good. Thanks for the heads up? And I'm sure that building aha.io is extremely intellectually demanding (judging by description on the splash page).
Also isn't this just that one thing that Steve Jobs used to say but in a blog post form?
Yeah that or maybe before writing another post like this, you might want to stop and thing whether you are really in a position to be pontificating about anything.
I don't know that it is always the case that putting a productive developer in charge of a team is the best approach either. Just because someone can code doesn't mean that they can lead - and anyway, by putting them in charge you just added another distraction to the day anyway.
I think you are misinterpreting the point and blog post. I am not arguing that a lead engineer should be in charge of every team or even the broader engineering team. The point is that great engineers are different and can have an exponential impact on a product and company.
Nice essay, but backed by these horrible examples:
* a group of mediocre architects could have built a better dome in Florence than Brunelleschi
* a group of mediocre stock pickers could have outperformed Buffett
* a group of mediocre designers could have built a better computer than Jobs
* a group of mediocre basketball players could have beat Jordan in the NBA finals
* a group of mediocre humanitarians could have had a bigger impact than Schindler
when the truth is:
* Brunelleschi did not lay the 4 million bricks of the dome, a large team did that
* Buffet outperforms the average stock picker by about 13% to 20%, it so happens that in the financial business 13% to 20% is a big deal, while 13% to 20% better is not disruptice startup-level improvements
* Jobs never built a computer, he needed to lord power over a large team to do that
* I believe that a team of 5 mediocre players could easily beat a team of 1 Jordan
* 1 Schindler saved 1200, while 2 million mediocre Nazis killed about 9 billion who they felt where ethnically inferior. In this case, I think the mediocre Nazis had a bigger impact.
So while my heart tells me to believe in the point you're trying to make, that one alpha engineer is worth a ton of mediocres, the examples do not support that point.
Thanks for the comments. So you do agree that Brunelleschi lead with his brilliant design and Buffett does dramatically outperform his peers. Jordan never lost a championship and would handily beat 5 mediocre basketball players from the general population -- remember that every player who makes the NBA is an alpha. I edited out the final bullet as it unnecessarily complicates the post.
yes with Brunelleschi's lead (but he still needs a big team), but since Buffet only outperforms by about 15% I wouldn't call that "dramatic" in the context of your post. As for Jordan, I suspect five of me could beat one Michael Jordon, and I suck at basketball.
Maybe you could better make your point by avoiding analogies and staying within our hackery field for alpha examples. For example, a single Linus Torvalds in a weekend could put together git, which could then keep thousands of mediocre programmers confused for years :-)
Five of you would not beat Michael Jordan, even now that he's 50. You're underestimating how much better the best people are than the average. You're really underestimating how much better they are than people who suck.
That alpha engineer is only going to make a successful system if they know how to work with others and produce maintainable code. For every one of the types of alpha engineers this article deifies there is at least one other alpha engineer that is difficult to work work, doesn't document their code and has a NIH attitude that refuses to incorporate the work of others even when suitable for the task at hand.
These guys are usually known as the BBM and are can appear to be awesome but by the time you realize their shortcomings ultimately make them impotent and their work irrelevant, it's too late.
I don't care how brilliant you are. If you don't produce maintainable code with well thought interfaces, your brilliant code is going to rot by itself after you are gone. Brilliant and productive programmers also exhibit empathy for other developers who will maintain and extend the code or build other systems to interface with the code written by the alpha coder.
You are missing the point a bit - I don't think the OP is saying that a bad engineer ("difficult to work with", "don't produce maintainable code", etc) suddenly becomes better when they work by themselves. The point is that one person working alone can sometimes be significantly more productive than if threw more people at the project.
The natural engineering management answer to so many problems is "I need more headcount" - but often that can be the opposite of what the problem needs.
Agreed. I considered referencing The Mythical Man-Month: Essays on Software Engineering by Fred Brooks. The central theme is that "adding manpower to a late software project makes it later". I think that this theory can be applied to both new and late projects. More people does not typically increase productivity.
Yes, I think you have touched on an important point. I did not try to equate the Alpha Engineer with bad behavior. Great leaders set clear vision, lead by example, and bring the team along with them.
These guys are usually known as the BBM and are can[sic] appear to be awesome
BBM, aside from the somewhat dated reference Blackberry Messenger, can be a reference to African-Americans, which many (including myself) find offensive.
I have led product in a number of software companies -- some with an Alpha Engineer and some without. The companies with a dominate engineer have outperformed the others when the lead engineer could relate to the other teams and customers. This is a fine reminder, but you should note that no matter how great the star is, he is still part of a team.
And the other 10% are told by psychologist that they have a Self-esteem problem.
Society as a whole is to blame for the 90% believing they are part of the 10% best. If society had its way it would be a 100% of people believing they are part of the 10%.
And the spark that created this was created by psychologist. Which are also responsible for the high percentage of narcissist (compared to previous generations) that our society have.
Before: you had to actually do something to prove you are an alpha.
Now: people believe by default that they are alphas while the rest are betas.
This is terrible, because those who would could actually become alphas would not do it, because they believe they are already alphas, so they do not work as hard.
Because of this society as a whole is getting worse, not better.
"There is also less fear of upsetting the original creator [...]" <-- this part sounds childish on the side of the "alpha engineer".
Also, part of the team building process is done as a contingency plan on the part of the company. If "the plan" is in the head of just one person, then the rest of the company becomes that person's bitch and when that one leaves...
29 comments
[ 2.7 ms ] story [ 84.8 ms ] thread1) Architect the application and divide the detail programming in enough well-defined subtasks that lesser gods can start working on these subtasks while the alpha starts engineering further. Well-defined subtasks need relatively little communication, and economies of scale are used. 2) Add the brilliance to an existing framework built by beta engineers (Like Rembrandt painting the lace on the painting of an apprentice).
It basically depends on where a product is in the life cycle which of the two strategies is most effective.
Also isn't this just that one thing that Steve Jobs used to say but in a blog post form?
* a group of mediocre architects could have built a better dome in Florence than Brunelleschi
* a group of mediocre stock pickers could have outperformed Buffett
* a group of mediocre designers could have built a better computer than Jobs
* a group of mediocre basketball players could have beat Jordan in the NBA finals
* a group of mediocre humanitarians could have had a bigger impact than Schindler
when the truth is:
* Brunelleschi did not lay the 4 million bricks of the dome, a large team did that
* Buffet outperforms the average stock picker by about 13% to 20%, it so happens that in the financial business 13% to 20% is a big deal, while 13% to 20% better is not disruptice startup-level improvements
* Jobs never built a computer, he needed to lord power over a large team to do that
* I believe that a team of 5 mediocre players could easily beat a team of 1 Jordan
* 1 Schindler saved 1200, while 2 million mediocre Nazis killed about 9 billion who they felt where ethnically inferior. In this case, I think the mediocre Nazis had a bigger impact.
So while my heart tells me to believe in the point you're trying to make, that one alpha engineer is worth a ton of mediocres, the examples do not support that point.
Maybe you could better make your point by avoiding analogies and staying within our hackery field for alpha examples. For example, a single Linus Torvalds in a weekend could put together git, which could then keep thousands of mediocre programmers confused for years :-)
These guys are usually known as the BBM and are can appear to be awesome but by the time you realize their shortcomings ultimately make them impotent and their work irrelevant, it's too late.
I don't care how brilliant you are. If you don't produce maintainable code with well thought interfaces, your brilliant code is going to rot by itself after you are gone. Brilliant and productive programmers also exhibit empathy for other developers who will maintain and extend the code or build other systems to interface with the code written by the alpha coder.
The natural engineering management answer to so many problems is "I need more headcount" - but often that can be the opposite of what the problem needs.
Society as a whole is to blame for the 90% believing they are part of the 10% best. If society had its way it would be a 100% of people believing they are part of the 10%.
And the spark that created this was created by psychologist. Which are also responsible for the high percentage of narcissist (compared to previous generations) that our society have.
Before: you had to actually do something to prove you are an alpha.
Now: people believe by default that they are alphas while the rest are betas.
This is terrible, because those who would could actually become alphas would not do it, because they believe they are already alphas, so they do not work as hard.
Because of this society as a whole is getting worse, not better.
...providing that genius is a Leader and not a Cowboy.
Also, part of the team building process is done as a contingency plan on the part of the company. If "the plan" is in the head of just one person, then the rest of the company becomes that person's bitch and when that one leaves...