Microsoft from 1992 onwards? I guess we did; 20x increase in adjusted share price; in OSes alone, the release of Windows 3.1 (IMO the breakthrough move to GUI on PC, away from DOS), NT 3.1 (the original seed that grew to NT 3.51, NT 4, Win2K and all current kernels), breakthrough success of Windows 95. Looks like it worked pretty well, and made a lot of people very wealthy.
The same could be said of [Insert great company here]. The same could also be said of many criminal enterprises and a variety of industries that were abusive before regulation and reform. Conclusion: The ability to say this is of no particular worth in determining if an enterprise is or isn't evil.
EDIT: Downvoters: see grey-area's granchild comment. I find it incredible to be downvoted for observing that a statement is essentially neutral.
All of the great companies I have worked for (Apollo and Sun in various incarnations) or heard about (DEC, PARC, Bell Labs and the like) started around a core of incredible people. These were people who are or were legends in the field.
Since the article talks of success and greatness in moral or intellectual terms, the conversation should not just be a simplistic comparison of money earned... that's not a measure of greatness.
That's an excellent paraphrase of my evidently controversial comment. (And it's arguably better because it avoids use of the emotionally loaded word "evil.")
Odds are wherever you are has a greater chance of being the right place.
Much of life is livelihood, so I don't think morality can be or should be precluded from such discussions.
That said, they do seem to keep refining things and that's a path to great products. But, innovation is more than just doing a mash-up that meets everyone's expectations without any 'wow' factor.
And Apple bought FingerWorks, which means there was no real innovation from Apple in iPhone multitouch technology, same with Siri. Or does it?
There is a lot to getting research technology into a usable, affordable and marketable form than just buying it and copy pasting the code.
Many rants posted to HN could simply be entered as text on HN but end up being blog posts one someone's blog. Lots of creative ideas turn into blog post rants that point to code on github with no history, no evidence of the messy process of creation, only the illusion that the author typed it all as if by divine inspiration.
I wish more of the elites among us would let us see their ugly commit history, their discarded design ideas, their untested, uncommented code.
In some circles, this is called keeping it real. Open source should not require such artifice if we have a meritocracy.
On the other hand, maybe all great luminaries started out as aggressive self-promoters (picture accomplished performers busking on the street in their younger days).
It's going to happen to everyone, so I just figure, why not turn it around and use it as a learning experience (for me) and then a teaching opportunity for others?
Case in point: I did something really stupid with MySQL's client library without realizing it when I designed my own interface to it, and it bit me hard enough to bring down a bunch of database-backed stuff on my systems. In fixing it, I discovered both a thing to make sure I never do again in my own code, and also uncovered a possible way to launch a denial-of-service attack on a MySQL daemon
Then I turned it into a post. So I screwed up. It happens. What I found out as a result more than makes up for it.
In this case, <specific people> are the ones in HR who somehow think that skipping over someone like me is warranted because I'm honest about mistakes I've made in the past. Just what kind of company would that be, anyway? What would my coworkers be like in that environment?
If you accept that everyone makes mistakes, would you rather work with the ones who discover them and deal with them ably, or the ones who conceal them and/or don't learn from them?
That said, I do see what you are getting at. If you haven't gotten to a point where you can say "to hell with this corporate misery" and live with the consequences, maybe you don't want to rock the boat. It might impact your ability to get into yet another miserable place.
However, first you have to attract the attention of a nice open-minded company of the kind you describe. Of which there are not really so many. Getting that attention requires being much in demand. So I don't know that it is much of an exaggeration to call this an unattainable luxury for most of humanity.
You personally have enough visible merit and momentum that you can admit to screwups and not suffer much in your reputation. (Like how peacocks can have huge unwieldy tails and still get away from predators - the idiocy of the tail advertises fitness by self-handicapping)
The extent to which people need to self-promote to establish themselves is an indicator of whether or not such circles are subject to Reputation Bubbles.
I don't think tendency toward self-promotion really correlates with technical chops in one direction or the other.
The problem I have with these sorts of social structures is that it assumes that one person out of a hundred is some how "gifted." After reading Coders at Work and listening to interviews with "gifted" artists I think most of these people do not in fact consider themselves such. AFAIK they just worked really hard and the right people at the right time took notice. I assume this is why I often hear these "gifted," people say they feel really lucky to be in the position they're in -- luck did have a small role in it and that seems to be where the "gifted," term comes from. The important part is the hard work these people put into improving themselves, their skills, and the state of the art.
However these DE titles can have a negative passive-impact on hiring practices. In order to avoid, "bozos," organizations will try to, "only hire the best." However the "best," is a highly subjective threshold that is constantly in flux. What is state of the art today will be laughably archaic in 5 - 10 years (especially so for technology companies). The harmful effect is that every company will adopt this policy in order to compete and hope that the other companies will adopt the "bozos." What then will happen to the average programmer who is learning the ropes and doing their best to become a DE some day? Should they get filtered out?
There are some things about the event horizon that make sense ("one of us is not as stupid as all of us"). However one must be careful when distinguishing their fellows. While it may encourage the best of the best to join together it can also breed an elitist attitude that is counter-productive to innovation.
Interesting article and a good read! It's something that I toy with in my mind now and again. Personally I think DE's should form their own groups outside of the organizations they work at. Let people lead by reputation rather than hierarchy.
"People who've done great things tend to seem as if they were a race apart. And most biographies only exaggerate this illusion, partly due to the worshipful attitude biographers inevitably sink into, and partly because, knowing how the story ends, they can't help streamlining the plot till it seems like the subject's life was a matter of destiny, the mere unfolding of some innate genius. In fact I suspect if you had the sixteen year old Shakespeare or Einstein in school with you, they'd seem impressive, but not totally unlike your other friends.
Which is an uncomfortable thought. If they were just like us, then they had to work very hard to do what they did. And that's one reason we like to believe in genius. It gives us an excuse for being lazy. If these guys were able to do what they did only because of some magic Shakespeareness or Einsteinness, then it's not our fault if we can't do something as good."
It took sweat, and there's an entire category of people who believe in inherent genius versus really effing hard work. That category of people will never put in the work necessary for others to inappropriately categorize them as inherent genius. I hate this problem and don't know how to convince people when they've fallen into that trap :-\
That depends on what you mean by "state of the art".
If you mean the cutting edge of computer science research, then it might not even appear in the mainstream in the next 20 years. For example, type inference was invented in 1982, and 25 years later a very limited version of it entered the mainstream in C# 3.0. Heck, some people even consider lambdas innovative, even though they were invented before computers.
If you mean the most widely used parts of computer science research, like algorithms and big-O notation, then it seems pretty clear that those won't become archaic any time soon.
If you mean the syntax and libraries of today's popular programming language, then well, duh. You shouldn't be asking about this stuff at interviews in the first place. Your own argument perfectly explains why.
The point of DE-style positions is to get demonstrated great engineers out of the org chart, to free them from bureaucratic overhead. The key is, again, is that these engineers demonstrated their technical value. It has, in ideal form, nothing to do with anything other than a big pile of really excellent work. The idea that some people are better than others despite such a stack of excellent work is antithetical to the DE position and precisely the sort of mechanism by which bozos infiltrate those positions.
Might it be the case that a technology company itself has a limited lifetime? Or more accurately a limited 'innovation potential' after which it becomes a service organisation?
Not everything works like this. It takes decades for some ideas to filter out to the mainstream.
This goes along with the well known effect of over-confidence from lack-of-knowledge when making judgements, or the way newcomers to a community are often overly-vocal in their judgements. I think it takes some sobering first-hand lessons to be able to see the difference between A-work and B-work.
It wasn't until I tried to code that old Windows star-spreading screen-saver in high school that I got even an inkling of how difficult it was to make all of Windows work, and it wasn't until I actually had to write something as a composition of partial recursive functions that I even began to appreciate the A++ work it took to conceive computing machines at all. Even now, I wouldn't consider myself capable of really distinguishing between A and B work except in a few very select fields.
> The other is their hiring process (full disclosure; I’ve looked at Google a couple of times and it never worked) which has gotten pretty process-bound and odd. The last time I went through it, the site manager admitted that I was plenty smart, but they didn’t know what they would do with me. Given what they were obviously looking for, I wasn’t sure what I would do with them, either. But the whole process seems to indicate that they are looking for people to fit a pre-defined mold, which the top performers generally don’t do all that well.
My observation would be that the primary goal of Google's hiring process is that there is a very strong bias towards _not_ hiring any bozos --- even if that means that not hiring someone who might be a top performer. It's better than you miss out on a top performer than it is to hire someone into a senior position who turns out to be a bozo. That may be the cause of the OP's perceived "oddness".
The fact that Google's promotion system is done exclusively by peers (i.e., the people who decide whether someone at level N should progress to level N+1 are composed of engineers at levels N+1 and N+2; the manager can give input to the promotion committee, but it's not the manager's call) is a good way to hopefully prevent bozos from getting promoted from within.
Is it perfect? No human-created system is. But I think it's pretty good....
It's better than you miss out on a top performer than it
is to hire someone into a senior position who turns out
to be a bozo.
I guess google knows better than I about their hiring practices but it seems like they have probably taken more risks in these later years than they did when they had only 1000 employees.
And thats how great startups hire a bozo exec team. And we all know where that leads.
>...the whole process seems to indicate that they are looking for people to fit a pre-defined mold, which the top performers generally don’t do all that well. In fact, the Google process reminded me of the time, more than 20 years ago, when I interviewed at Microsoft. And we saw how well that worked…
Hiring processes can become infected from the top-down, however, as high-level employees exert influence over the process to fit their own comfort levels.
I also suspect that there's a point at which hiring like-minded people loses whatever benefit that accrues from increased group cohesion in a company, or that there's a point where such benefits start to get swamped by the effects of groupthink.
Motivation is what drives people even dummies to excel. And that's sometimes a coin flip. You will see stars perform poorly because they don't enjoy the environment or the specific task they are given.
When there's no motivation even a "star" will just procrastinate and be unhappy until he either quits or conform. When conformed unmotivated people outnumber the motivated ones that's when you are doomed.
Perhaps Facebook is going to hit a motivation black hole, as stock options will no longer matter and so employees won't care about what's good for the company. Instead, they will care about bonuses and resume-padding.
Google has had poor motivation for years (employees who don't really care about the success of the company), I think, but they have enough good products that it doesn't really matter.
Its possible for someone who was once quite good to become more of a bozo, sometimes its an ill advised step outside their comfort zone, sometimes they get pushed there by well meaning management. Like many things, and perhaps related to the nostalgia effect, it is 'obvious' in hindsight when the bozos came, but often times their initial arrival is silent and unheralded.
I saw some of that going on at Google just before I left, I mentioned it to Eric (who had seen it at Sun when we were there and was well familiar with the effect). It isn't at all clear to me that its something you can stop.
One of the amazing things of being at a successful company is that each passing quarter increasing revenue brings a bigger pool to spend on doing things, and there are so many things you want to do. But you can't do everything yourself, and growing means hiring, and hiring means getting larger.
Perhaps if you chose to fork the company at that point, I always wondered what would have happened at Google if they chose to 'slice off' the part that built platforms into its own universe. There are fairly natural dicing and slicing points.
But at Sun there was a huge chasm between the 'systems' folks (aka the SunOS creators) and the 'windows' folks (aka the SunTools guys and gals) and the 'language' folks and of course Sun Labs. Competition between how many DE's came from Systems (old boys club) vs other groups, and such like. I do know that one of the contributors was that Sun had a financial year that went July 1st to June 30th. Budget meetings happened in February for the upcoming fiscal year. Inevitably people would panic in April or May that Sun wasn't going to 'make the year' (meet expectations of Management or the street) and there would be wide adjustments (like hiring freezes). What we noticed was that everytime managers would panic and hire anyone they had interviewed if they could 'fog a mirror' just before the freeze because they knew if they didn't they wouldn't be able to hire for another 4 - 6 months. There were some quality issues with those hires.
Why should the only kind of growth people recognize in companies be the kind that terminates in ossified monoliths? Isn't this a failure of imagination on our part? Life doesn't usually offer only one way to grow. I'm excited by the idea of a small organization whose revenue grows much faster than it does. Seems to me that this hasn't typically been thought of as the goal. What might happen if it were?
Its an engineering crutch, like people walking around in a building cannot cause it to fall down, but if everyone jumped at the exact same cadence they could. Any thing is possible, sometimes the requirements to get there are so difficult the solution becomes effectively impossible.
If you consider Google as an example, the roughly 1,500 people who are in the search and ads teams make all the money for the company. Everyone else is, rounded to the nearest billion dollars, a non-contributor. But rather than accumlate cash faster than the Federal Reserve can inject it into economy, they spend it on projects which might get them into other markets. Or sometimes create entirely new markets. But that gives them size. And at both Sun and Google its pretty clear that the Bozo Event horizon hits somewhere between 10K and 15K non-sales employees. I don't know why that is, just that it has hit there two times. If Jim's reading he can pitch in DEC's number.
I agree with you're assessment that there are always other growth strategies, and I can identify things that contribute to the incursion of bozos, but that is a long way from the experiment that can show a bozo free stable organization with growing revenue.
Agreed, but let's look at it from the other side. Suppose one such experiment did succeed. How significant would that be? (I say very. Because it would change people's thinking about what's possible.)
Also worth pointing out: such an organization wouldn't need to stop growing, just hire at a slower than traditional rate. Seems to me you could grow for a long time before hitting "between 10K and 15K non-sales employees".
I'm afraid everybody says this about whatever is new. Nowadays people would say this about Guido, Matz, etc.
Then I started reading a lot of C++. And I mean no disrespect to the many brilliant people who use and enjoy C++, but it wasn't until then that I really got why Java exists.
Josh Bloch called it a "blue collar" language: a language for building things, not for looking smart.
As such, I'd actually criticize Java for not being simple enough. It's well and good to be staid, but excessive bureaucracy is problematic. Arrays are thoroughly un-idiomatic in Java. Exceptions play hell with attempts at control-flow analysis. Lack of type inference increases repetition. The language is embarrassingly devoid of literals. Pick your poison, really.
And people should feel free to disagree, but I don't think such as type inference, literals, or multiple return values are anything particularly flashy. If anything, they tend to make code simpler and/or cleaner.
Also, let me stipulate that Java really does make me sad. It's just that in the realm of sad-making, I discovered new depths.
Also, if you think that JVMs and JIT'ing compilers are cool, take a look at Michael Franz's PhD thesis at ETHZ: "Code-Generation On-the-Fly
A technique for representing programs abstractly and independently of the eventual target architecture is presented that yields a file representation twice as compact as machine code for a CISC processor. It forms the basis of an implementation, in which the process of code generation is deferred until the time of loading. At that point, native code is created on-the-fly by a code-generating loader. The process of loading with dynamic code-generation is so fast that it requires little more time than the input of equivalent native code from a disk storage medium."
Talk about "roads not taken". :(
I say it's up my alley because lately I've been paying particular attention to folks like Rob Pike and Rich Hickey. (I'm sure there are more.) I am not sure they'd agree with this characterization, but they're both part of a movement to simplify programming, especially by cutting out excess and complexity.
Go is an example of a more straightforward, modern C, complete with strong concurrency primitives, first class functions, duck-typed interfaces, abundant literals, etc. I'm still learning about Clojure but I started looking at it after watching Simple Made Easy and The Value of Values, both of which espouse a somewhat different form of simplicity. Still, I think it's animated by a similar line of thinking, that we as a profession are hurting ourselves unduly by building so many systems we struggle to understand and/or maintain, and one way in which we do it is through both the technology we use and the way in which we use it.
The JVM/JIT bit might go over my head, but I'll be sure to check that out, as well.
I developed against NeWS (mostly using HyperNeWS) for a research project in the early 90s - was a huge amount of fun.
"Others, like James Gosling, quietly change the world by building something (the core Java language and libraries) that make so much sense and are so elegant that you just smile when you use them."
I would never, ever describe James Gosling as a bozo, but he doesn't make my top 50 list of language designers and researchers. Java started with a laudable goal to improve upon C, but they didn't take enough risks at the start.
Sorry guys, I'm trying my best! :-(
If you use those 26 years wisely, you'll learn a lot of different things - and more importantly, you can draw on 26 years of mistakes that you now know to avoid.
I'm not saying he's not also a talented programmer - but all "superstars" I know are as good as they are because they have worked hard for a long time, and they keep working hard.
(She says while posting on HN... I probably should head back over to my code ;)
I don't know who the so called average engineer is, but I would imagine with enough experience and drive he / she could outperform his / her previous self by a significant factor (10x perhaps?).
I assume the same rule applies to the crazy talented freaks (only with a big head start), but I can't be certain.
The subjectivity of this is the core of the problem. One man's Zen Master is another man's Bozo. Often, they look indistinguishable to the uninitiated.
> Others, like James Gosling, quietly change the world by building something (the core Java language and libraries) that make so much sense and are so elegant that you just smile when you use them.
Another example of how one man's X is another man's Y. (EDIT: In putting it this way, I mean to respect both directions of opinion.)
> The indicator is when process and fairness becomes more important than judgement, and when it isn’t ok to say that some people have reached their limit.
Process and fairness are often used as proxies for meaningful relationships and understanding among coworkers. Often they are used as a means of avoiding taking such responsibility.
Steve Jobs always said that part of his job was to keep the bozos out and this article explains exactly why.
Every single company I have worked at has been on or past the Bozo Threshold... The author notes that this phenomenon may be limited to technical companies, but I would like to argue that it is not limited to technical companies and may not even be limited to companies at all! This same sort of stupidity can be seen any organization that is around long enough.
A great product is not built by comittee, because committees care too much about FAIRNESS!
1. You work for a tech company which produces a tech product (e.g., Google, Microsoft)
2. You work as a tech person in a business company (e.g., bank, insurance)
This article fully applies to #1 where the core competency is technology. For #2, there's debate.
There are few things more destructive to a team than smart people who've completely checked out.
where is that old superbowl commercial of herding cats.
B people are more interested in protecting what they have, and to keep what you have, you may be able to out perform a C player, this the interst in hiring C players.
honestly, I think everyone is self conscious, or a little afraid from time to time, and that is OK, you just need to be able to get past it, have a little Faith in your abilities, work hard and don't expect raises, praise or titles (which ever your favorite flavor of sucess us) until you work hard and accomplish something.
To me all this article displayed is the clear distinction between the technical and the business side (that which employs the technical).
Degrading "B class" people as "Bozos" is quite frankly disgusting. You can have all the brightest minds in the world that create the next progression of technology, but without the "bozos", they will be stuck in a room congratulating themselves into perpetuity...
Note that the author implicitly defines "bozo" as anyone who's not a world-class programmer or researcher (or possibly, any such person that rises above a certain level in the hierarchy). So, 99.9% of programmers, including even some programmer-entrepreneurs who have built valuable companies without being world-class technically.
Moreover, the techno-guild at Exxon is going to have a different mandate than Cisco's or Disney's.
Managing growth, competition and markets is the job of management (CEO) and understanding the role that technology plays in their business, and then ensuring that foresight is available (CTO) to them to act on, is what they get paid for.
A Bozo at Amazon might be a god at Delta Airlines.
So in any given case there is a good possibility that the "bozo detector" goes off mostly on people who don't like you, or whose lunches smell bad, or even people who might be competition, or people who are doing better than you are.
The whole Jobs A thing is just pure BS ego speaking.
What to look at? What question ask? About process? structure?