Fog Creek Software
Discussion Board




Hiring superstars?

I was reading Joel's "The Guerrilla Guide to Interviewing
". In it he wrote, "at Fog Creek Software we only hire the superstars." That stared me thinking: apart from hiring superstars, can a small company (is FogCreek a small company?) "breed" superstars?

Modern management theories always stress the importance in providing paths for staff to advance/expand their skill sets so they'll stay in the company longer. Does this apply to small companies and, especially, the software industry, where the turnover rate is high?

Lawrence Mak
Thursday, October 24, 2002

In my experience, even a small company must out-perform its rivals.

The following can give you an important competitive advantage:

*  Retaining your knowledgable staff

*  Using your staff to do 'anything' (which as a side-effect will advance/expand their skill sets)

Christopher Wells
Thursday, October 24, 2002

This depends on what is meant by the term "superstars," I think.

There are differences between someone who's amazingly productive and someone who's an amazing employee.  Productivity is part of it, but a person's personality has a huge impact on how well they work in an organization.  You can "breed" existing employees to be better developers, marketers, executives, etc., but I think that Joel's hiring policy is based on hiring people who have superstar personalities.  And that's something that can't be bred from within.

(Note that vastly different personalities can all be superstars in their own ways.)

Brent P. Newhall
Thursday, October 24, 2002

Something else to consider....

Superstars are great, but only if they can work well with other developers. I don't care if someone is the best developer in the world, if they are a primma-donna then I have absolutely no use for them.

In most cases, developing software requires a team. Some developers are better than others, but all it takes is one arrogant, condescending SOB who wants special treatment to spoil the morale of an entire group. The primma-donna may be more productive, but if he destroys the productivity of the other developers, then he isn't such a bargain after all.

Mark Hoffman
Thursday, October 24, 2002

Has anybodody here actually had a prima-donna developer reveal his true colors at an interview

Daniel Shchyokin
Thursday, October 24, 2002

"Has anybodody here actually had a prima-donna developer reveal his true colors at an interview"

More times than I can count.

Harry Call
Thursday, October 24, 2002

How did you know?

Joel Spolsky
Thursday, October 24, 2002

  I've seen a lot of average programmers who have huge attitudes, and you definatly don't want that on your team. But I've also seen incredible developers who are very arrogant and not afraid to say they are the best thing since sliced bread. 
  Sure,  if you were in sales or accounting, one person's attitude could have a negative impact on the team as a whole, but software development is one industry where a single person can be 200% more productive than anyone else.
    I've seen a single programmer out perform entire team of developers.  My last boss was paid about 4x as much as anyone else, and he did about 6x the work.  If management had the choice of letting the department go and him staying vs.  letting him go, they'd keep him in a heartbeat. 
Thats one "prima donna" i'd want working for me.

Vincent Marquez
Thursday, October 24, 2002

Before this debate goes any further, we would need to define what we mean by superstar and, especially, "prima-donna."

The most common meaning of prima-donna in discussions like this is: (n) a talented programmer who kept suggesting better ways of doing things, which revealed that the managers were mediocre; someone who refused to accept crap and was committed enough to challenge strict hierarchies.

Just Do It
Thursday, October 24, 2002

If I pick up even a whiff of a condescending attitude in an interview: No Hire.

Brian
Thursday, October 24, 2002

Works to a point.  If you've got someone who has 15 years experience writing kernal code and you have them dropping controls on a WebForm, is this okay?  Maybe.  Some projects have so much financial benefit that the costs are proportionally irrelevant.  This is not true most of the time.

IMO, "superstars" allow additional design complexity without increasing the chance of a project getting screwed up.  However, it needs to be decided if the complexity has saleable benefits to the customer.  Most projects should be boring if architected correctly.

It's sad to say, but the current state of affairs is that if you have a 3-tier project with a loosely defined requirements spec and hire 10 "average" developers, and 3 "average" managers, it will probably get screwed up badly.  Throw one good systems person (that can also communicate best practices to the team) in there and your odds go up considerably.  Throw in a tiny bit of technical savvy from management and they go up some more.  Throw in outside, high priced "middleware" consultants and your odds plummet.

My advice is to hire exclusively superstars.  Superstars at communication, teamwork and humility, not necessarily raw technical skill.  These people are not expensive.  No one says "I don't know .NET, but darn it, I'm such a nice guy that you should pay me $300K".  However, you do hear "I'm the greatest programmer on earth and know XML/.NET.  If you build me a throne and offer weekly virgin sacrifices, I might consider your $300K offer".  Give me a break.  Ideally, you get the humility and the one and zeros, but I wouldn't pay obscene sums for this combo unless it was my chief systems guy or someone extremely experienced in my particular problem domain.

Bill Carlson
Thursday, October 24, 2002

A really good read relating to this topic is Jack Welch's autobiography "Jack".

http://www.amazon.com/exec/obidos/tg/detail/-/0446528382/ref=br_b_ts_1/002-9184687-8300015

He discusses several topics but through most of the book he explains his management philosophies at GE, including his views on hiring and keeping the best people.  A couple quotes from The People Factory chapter:

"We build great people, who then build great products and services."

"Treat people with dignity and give them a voice. That's a message that translates around the globe."  -- Okay, this one might be considered a little ironic coming from a guy who got the nickname Neutron Jack for his ruthless job cutting.

So yes, I think striving to hire the best people possible then treating them well translates to all types of companies.

Brian
Thursday, October 24, 2002

Personally, I never understood the fascination with demanding virgin sacrifices...
- there's all that kicking and screaming, and the ***mess*** it all makes!
we finally had to put a stop to it--the cleaning contractor at the office complained too much.
- most office buildings just don't have any good altar stones anymore,
- tech team fighting over who gets to do the sacrifice,
- getting too hard to find virgins now a days...and you wanted them ***weekly*** ?! No way!

<grin>

anonQAguy
Thursday, October 24, 2002

What's a prima-donna?  They're people who think they're the greatest thing sinced packaged catsup, and make a point of telling you so every five or ten minutes.  Some prima-donnas are super-stars in real life, but most are exceptional only in their ability to delude themselves.  (To me, one of the most persistent myths in the industry is that superstars are by their nature jerks.)

Do you hire a prima-donna who's also a genuine superstar?  I think you do in two circumstances only: if you have a situation in which you can completely isolate this person from everyone else, or if you really don't care whether your employees--and you--take a hike.

Back when I was a hiring manager, I made a point of asking candidates to walk me through a project they'd completed.  If you ask enough specific questions about how the candidate solved problems and completed tasks involving others, you can get a pretty good idea of their prima-donna index. 

I remember one candidate who clearly saw his current co-workers as a small band of geniuses (his friends, natch) surrounded by a sea of jerks.  There were no competent-but-unspectacular workers in this guy's world.  He was technically very good, but we didn't make him an offer.

Hardware Guy
Thursday, October 24, 2002

What I've always found is that when managers start condemning their staff - especially using terms like prima-donna - it points to a manager who is intolerant, has poor people management skills and has an inflated view of his or her own capabilties.

I'm speaking as a big manager here.

If a manager tells me he's got problems because there's a prima-donna in his or her team, I know I'm talking to the prima-donna.

Just Do It
Thursday, October 24, 2002

May I add a hairdresser's comments.  From the number 1 hair cutter in my big city.  He said, "I hire folks for personality, I can train them to cut hair."  I don't think you can train many folks to be great programmers, but the good personality doesn't hurt.

tk
Thursday, October 24, 2002

Managers seem to value loyalty and "team-playing" over raw brainpower. This is a big mistake in software development as raw brainpower makes so much difference.

In “The Microsoft Way” (http://www.amazon.com/exec/obidos/ASIN/020132797X/prestigetraining) Stross attributes a great deal of Microsoft’s success to purely hiring on brainpower alone.

Matthew Lock
Thursday, October 24, 2002

I agree with tk and Matthew Lock - to a point.  I don't have hard numbers to back this up, but I'd expect that most man hours of development are spent on very mundane projects; low throughput data backed web sites, intranets, integration and reporting of legacy data, data scrubbing, etc.  Yes, if you're not bright, you'll screw these up royally.  I'm sure we've all seen VBScript source where the author didn't understand functions or even indenting.  These people are usually a net liability, even if they work cheap.

Microsoft works mainly on "hard" projects.  If you think about it, MS has $300B in market cap riding on .NET, which is only as good as the garbage collector.  Is it worth skimping on the GC architect?  Probably not.  Can you put a mediocre programmer on the Word team?  Not really, with all the shared data structures and file format details.  Microsoft's ratio of revenue to development costs is high, so they can afford to "do it right".

Brain power is good, but only if it comes with the ability to do "cost/benefit analysis".  Just this week, I was having a conversation with a coworker who was having major threading issues with his code.  He was very proud of the complex system of message handling and async callbacks that he had come up with.  What was puzzling to me was that the code he was threading took 100ms to execute.  His threading was for naught as the user would never notice the time lapse.  He ended up solving his problem; but did he even need to go there?

You do need at least one systems person with brains.  In my (limited) experience, a real danger is your lower end engineer picking up a magazine and thinking that every "tips and tricks" article applies to his application.  A systems person's job is to know enough to talk the app developer out of it or at least throw enough technical jargon at management that they will put pressure on the app person to keep it simple.

Bottom line:  (1 technical genius  +  >= 1 problem domain specialists  +  >= 0 average developers  +  >= 1 competant managers) = Successful team.

Bill Carlson
Friday, October 25, 2002

Lawrence Mak,

Why are you asking this question?  Are you going to be involved in the interview process for your company?

Whenever you read one of Joel Spolsky's articles you should always ask yourself if his opinion applies to your situation.  I don't have Joel's resume in front of me, but I believe his work experience is in the commercial software arena only (Microsoft, Juno, Fogcreek).  It seems obvious to me that Joel will always try to hire a programmer who has exceptional technical knowledge and coding skills.

Your company may not need or want to hire this type of superstar.  It has been my observation that many companies that are not in the business of developing commercial software generally won't hire a lot of technical superstars.  Sometimes a company will hire someone who is capable of doing analysis and requirements gathering but couldn't code their way out of paper bag, sometimes they will hire a pure techie, and sometimes they try to hire a person who is capable of doing it all  (this doesn't mean they will find such a person).

Charles Kiley
Friday, October 25, 2002

I'm not so much interested in applying what Joel suggested, but the thinking behind such concepts.

Joel's suggestions don't just apply to the software industry; in fact they are applicable to most professions. But my point is : where do these so called "superstars" come from? No one's born a superstar; personalities and will of self-actualization are certainly important, but it also takes years of hard work just to become proficient in terms of profession and communication, left alone a superstar. So, what types of companies can nurture such talents?

And why do these superstars eventually leave their former employers and come work for you? If I were in Joel's shoes, aparting from deciding "we only hire superstars," shouldn't I also consider, "why and what makes a superstar wants to work at Fogcreek?"

Lawrence Mak
Friday, October 25, 2002

What do you do when you can't afford Michael Jordan, and/or the Dream Team?

When you're a startup whose whole value relies in its founders' superstar abilities.

Do you let the company be sustained by them and wait until you can afford MJ, or do you get MJ right away promising all kinds of benefits? In the later case, how do you convince him?

And where are these strange beings most likely found?

Napoleon Hill :)
Friday, October 25, 2002

I suspect what Joel means by "superstar" includes the following:

(1) Someone who is super-smart;
(2) Someone whose intelligence is reflected in good education -- i.e., Ivy League, or Ivy-quality, education;
(3) Someone whose contributions will be more than run-of-the-mill, but instead is capable of work that will make coworkers go "wow, that's incredible" -- the quality of their work justifies a high salary;
(4) Someone who is passionate about what they do -- they don't just regard their job as a source of a paycheck;
(5) Someone who is personable and fun, someone exciting to be around and interesting to talk to, with a good variety of interests that makes them more than just a "geek" -- but an active and passionate person.

programmer
Friday, October 25, 2002

Regarding the question, where do these so called "superstars" come from?

There's a good book about this by Dale Dauten, called "The Gifted Boss" (ISBN 0688168779).  It addresses the question, "What makes a truly exceptional boss?"

One of his points is that the exceptional boss finds ways to attract the best, brightest people possible (in terms of personality and skills), then finds ways to ensure they don't leave (stable benefits, cool perks, minimum distractions, etc.).

Unfortunately, most companies don't do either of these things, so exceptional employees will leave those places and hunt around.  And one of them may very well apply at your company.

As to how exceptional people are created, I think it's mostly a matter of their own personality, but that the company's environment can influence their personality to encourage or discourage certain behaviors.  For example, changing the HR procedures every week will encourage complaints and stress.

Brent P. Newhall
Friday, October 25, 2002

I don't think that a "pleasant to work with" personality is what you necessarily want in software.  Maybe if they're client-facing, but otherwise honesty is more important than smiling a lot and going along with everyone.  Let the smiles come from the pleasure of working intelligently.

I'd want a person who was unwilling to work on a ship of fools.  Who wants to work there?  My current company hired this way, and they basically got a bunch of nice programmers who didn't like hard change.

So if you want to breed superstars, make sure you identify resourceful people.  There are many more untrained ones than trained.  It's hard to do this in a small company because you're usually fighting for survival, but in a large company it can be common.  Maybe there can be some useful mentoring with interns in small companies.

Tj
Friday, October 25, 2002

To paraphrase Neutron himself:

'A players hire A players.  B players hire C players.'

If you want to 'breed' (I find that use of that term exceptionally funny),  super-stars, you had better be one yourself.

beach bum
Friday, October 25, 2002

I have been looking to get hold of an article called "Why I Never Hire Brilliant Men" from American magazine in 1924.

It's frequently cited in IT management books as the example of why managers don't like to hire superstars.

I can't seem to get hold of a copy of it on google. Just wondering if anyones knows a place on the web that may have it?

Matthew Lock
Sunday, October 27, 2002

>> I have been looking to get hold of an
>> article called "Why I Never Hire Brilliant
>> Men" from American magazine in 1924.

>> I can't seem to get hold of a copy of it on google. Just


Perhaps whoever said it had their business crater so badly that not a trace remains?

(It might have been a good idea to have a bit of brilliance around)

Anonymous
Saturday, November 02, 2002

excellent discussion!

i was just talking to our prima-donna. im an unlucky employee :( save me!

kerb
Wednesday, November 13, 2002

*  Recent Topics

*  Fog Creek Home