Forgot your password?
typodupeerror
Businesses Programming

The Truth About Hiring "Rock Star" Developers 487

Posted by samzenpus
from the bang-for-your-buck dept.
snydeq writes "You want the best and the brightest money can buy. Or do you? Andrew Oliver offers six hard truths about 'rock-star' developers, arguing in favor of mixed skill levels with a focus on getting the job done: 'A big, important project has launched — and abruptly crashed to the ground. The horrible spaghetti code is beyond debugging. There are no unit tests, and every change requires a meeting with, like, 40 people. Oh, if only we'd had a team of 10 "rock star" developers working on this project instead! It would have been done in half the time with twice the features and five-nines availability. On the other hand, maybe not. A team of senior developers will often produce a complex design and no code, thanks to the reasons listed below.'"
This discussion has been archived. No new comments can be posted.

The Truth About Hiring "Rock Star" Developers

Comments Filter:
  • Summarized (Score:4, Insightful)

    by war4peace (1628283) on Friday August 31, 2012 @05:38AM (#41187733)

    The whole article could be summarized like this: "We have no fucking clue how to manage rockstar developers".
    If management or MBAs don't click with devs, the project is ripe for crashing.

  • Troll Article? (Score:4, Insightful)

    by Narcocide (102829) on Friday August 31, 2012 @05:41AM (#41187749) Homepage

    Article is weak on expertise.

    1) No, you don't need 10, idiot, you just need ONE, and about a dozen or so relatively obedeient and competent non-novice developers.

    2) Those weren't senior developers.

  • Unmanageable (Score:5, Insightful)

    by Rosco P. Coltrane (209368) on Friday August 31, 2012 @05:48AM (#41187785)

    "Rock stars" - we called them divas in my company - are notoriously unmanageable: many of them are temperamental, don't work well with others, tend to do what they "know" is right instead of doing what they're told, and have an overinflated sense of ego. It's a high price to pay to exploit their expertise.

    At any rate, one diva per project, provided a good supervisor is found to manage them and the project is in early development, is okay and probably does bring added value. A team of them however is sure to bring chaos, as individual personalities will inevitably clash. And forget about getting these guys to work on products that are in the middle of their product lives.

  • by Hazel Bergeron (2015538) on Friday August 31, 2012 @05:49AM (#41187787) Journal

    No-one who identifies himself as a rockstar developer is a rockstar developer, and no good developer would call himself a rockstar. The only thing certain is that in any article about "rockstar developers", a few dozen people will wander in and complain that the only reason the world isn't perfect is because rockstars like them just aren't looked after well enough.

    So, for all of you thinking about making this claim: if you're so fucking great, go out and start your own business and rewrite every single software product in your own image. Be the rockstar you think you are, identify everyone's desires, and out-compete every other firm on the planet. Internet capitalism is more meritocratic than most forms of capitalism - if you write a killer operating system or office suite or CRM system or time&billing app or whatever, people will take notice. So team up with as many people as your ego will allow (you're a rockstar so you already have considerable savings) and go get 'em, tiger!

  • by jcr (53032) <.jcr. .at. .mac.com.> on Friday August 31, 2012 @06:01AM (#41187831) Journal

    No-one who identifies himself as a rockstar developer is a rockstar developer, and no good developer would call himself a rockstar.

    I agree 100%. I've had the good fortune to work with some extremely talented developers in my career, and the best of them tend to be very humble about their skills (mostly because they tend to seek out the company of other engineers who are as good as they are.) "Rockstar" is a bullshit term used by dotcom promoters and headhunters.

    -jcr

  • Re:Unmanageable (Score:4, Insightful)

    by epyT-R (613989) on Friday August 31, 2012 @06:03AM (#41187845)

    "Rock stars" - we called them divas in my company - are notoriously unmanageable: many of them are temperamental, don't work well with others, tend to do what they "know" is right instead of doing what they're told, and have an overinflated sense of ego. It's a high price to pay to exploit their expertise.

    except of course when they do when they're told, and shit hits the fan because they were correct to begin with, and then they're blamed for the failure and canned. Who's the diva then? Your phrase 'doesn't work well with others' tells me all I need to know about the culture where you work. Process and consensus matter more than facts and the truth of a matter. This is a very poor environment for logical thinking of any kind, nevermind computer programming.

  • by HizookRobotics (1722346) on Friday August 31, 2012 @06:16AM (#41187907) Homepage
    Description starts by talking about rockstar developers, then makes assertions about senior developers. These two groups are not even close to equivalent. Seniority (generally) implies experience -- not "rockstar" status.
  • Re:Troll Article? (Score:5, Insightful)

    by donscarletti (569232) on Friday August 31, 2012 @06:17AM (#41187911)
    Best to have a couple of elite guys to motivate each other, a bit of camaraderie and some healthy competition. A single fulcrum may get stressed, lonely or complacent. I like having someone that I must work hard to prove I am better than.
  • Re:Troll Article? (Score:5, Insightful)

    by Xest (935314) on Friday August 31, 2012 @06:27AM (#41187951)

    Exactly.

    If your "rock star" developers are over-engineering the problem, writing bad code or whatever, then they weren't "rock star" developers, but a bunch of ill experienced or underqualified amateurs that's kind of the fucking point.

    The article will be better labelled as "If your rock star developers aren't, then they'll produce just as shit a product as developers who don't even pretend to be capable of doing the given task".

  • Re:Unmanageable (Score:5, Insightful)

    by Xest (935314) on Friday August 31, 2012 @06:39AM (#41187997)

    I think you've probably just been fleeced.

    ""Rock stars" - we called them divas in my company - are notoriously unmanageable: many of them are temperamental, don't work well with others"

    To me this means they weren't rock star developers. Being a great developers means being excellent not just at writing fancy algorithms, but being able to architect great code, being able to communicate with the project stakeholders to find out what they really want, being able to organise and train other coders to improve their level of competence. If your "rock star" developers were problematic, then I'd argue what you actually had were a bunch of people who managed to sell themselves as being more competent than they were - they told you they were "rock star" developers and you believed them, but in reality they weren't.

    "tend to do what they "know" is right instead of doing what they're told"

    I take issue with this. Surely the whole point in hiring the best of the best is that they know from experience what the fuck they are doing. If you don't listen to them then you are hence the problem, why hire them if you're just not going to listen to them and do things your way anyway? If you know better then you don't need them in the first place. If you do need them, then fucking listen to them.

    Really, it's not difficult. The ones who really do deserve the "rock star" developer title are the ones whom you'd never have any of the problems you listed with (bar the one in the last paragraph which I believe is a flaw with your management rather than them). If you're having those problems then you've hired a salesman. A salesman who is a pro at selling himself at an overinflated price, but not really the person you were actually looking for.

    Having an ego runs completely counter to being a great developer or engineer, because if you have an ego you're not capable of introspection, you're not capable of noticing your flaws, your weak areas, and improving them. If your devs have an ego then they're never going to be as good as the ones who quietly and happily just self improve. Take John Romero and John Carmack, one of these has a massive fucking ego, an ego so big it can fill a football stadium, the other has a long history of writing pretty impressive cutting edge code without ever displaying an ounce of ego. The latter has had an impressive career developing cutting edge tech, the former, when he went it alone became probably the biggest flop in the industry and his studio was only saved by a bunch of other previously nameless devs who worked on a separate project away from him.

    Egos are a trait of wannabes, real superstars just get the fuck on and do what they do.

  • Re:Troll Indeed (Score:4, Insightful)

    by pairo (519657) <gcbirzan.gmail@com> on Friday August 31, 2012 @06:45AM (#41188037) Homepage
    Sounds like your employer/colleagues were pieces of shit. Doesn't necessarily mean that's the norm, or that you can't find better. But, keep on fighting the good fight, sir!
  • by blahplusplus (757119) on Friday August 31, 2012 @06:53AM (#41188081)

    "Your arguments would probably be more listened to if you didn't use Marxist terminology"

    It's not "marxist terminology" capitalism is enforced and came into being by men with guns, only in america would someone say something so ignorant of history. More proof america is under the spell of mass political propaganda.

  • by Anonymous Coward on Friday August 31, 2012 @06:58AM (#41188103)

    Well, in America "unions" mean very powerful quasai-political entities like SEIU or UAW which basically make american labor unprofitable (see the insane costs of auto-workers). These "unions" extort huge fees from their often-unwilling constituents and in turn donate large sums to our Democratic/socialist party.

    Source: my uncle worked in Detroit from high school-> retirement. He loves American cars but told me it's one of the most corrupt systems out there.

  • by Mr0bvious (968303) on Friday August 31, 2012 @07:10AM (#41188147)

    Surely the recent past has shown you what 'ratings' are worth.... These are the same people who stamped all those dubious mortgage backed securities as AAA, remember how that turned out..

    These ratings are simply an opinion that is correct until it isn't - it's worth bat shit.

  • by Coisiche (2000870) on Friday August 31, 2012 @07:15AM (#41188167)

    Actually, thanks to workfare [boycottworkfare.org] it seems that people do end up doing work for less than minimum wage. There is an, admittedly anecdotal, story that a woman was dismissed from a paying job and then ended up at the same place doing the same job under workfare. Not exactly the definition of slave labour but makes a mockery of minimum wage laws.

  • Re:Unmanageable (Score:5, Insightful)

    by locofungus (179280) on Friday August 31, 2012 @07:29AM (#41188217)

    A diva, OTH, is always right, in his mind that is, he is abrasive and nearly impossible to manage effectively.

    While this is probably true for some people, especially above average people who have only worked at small companies where they are the best developer with no real competition I think there's a second problem that can make good people appear like that:

    Sometimes we are asked to do something that is impossible. Not hard, not boring, not beyond our capabilities, but impossible.

    Mediocre developers will go off to start things when they are asked. Months later they'll hit the corner cases that make the project impossible to do and then will be completely flummoxed at which point one of the top developers will be called in to try to rescue the project.

    Where the top developers can be particularly weak is in trying to explain why a project "just won't work." It's surprisingly difficult to do in any moderately complex system. Often any single example that won't work has a simple solution. It's only when you consider many of the difficult cases together that you understand that the solutions are mutually inconsistent.

    One of the key things of the top people isn't just that they're good but that they don't (often) start along roads that won't work. Get two or three of them together, give them time to thrash out ideas (and them leaving work early on Friday to go for a pint might actually save your company hundreds of thousands in developer time when they realize there's a problem ahead) and you really can see a ten fold performance improvement in productivity. Not because more code is written but less is written and then thrown away.

    Maybe we're saying the same thing. But I have seen few true divas while you imply they're common. Many able programmers are not perhaps as socially functional as managers might prefer but that is, unfortunately, going to be a consequence of hiring people who are doing a job that needs excessive amounts of pedantry to get right.

    Tim.

  • by pnot (96038) on Friday August 31, 2012 @08:00AM (#41188411)

    Code written during the normal working day, with constant interruptions, will never soar like that.

    About half an hour before reading your post, I suddenly realized that Monday is Labor Day. My first thought was "fuck yeah, no office-mate, no visitors, finally I'll get some real work done".

  • Re:Troll Article? (Score:5, Insightful)

    by YttriumOxide (837412) <yttriumox@gma i l .com> on Friday August 31, 2012 @08:07AM (#41188445) Homepage Journal

    Bullshit. The definition of a "Rock Star" developer is that they have a history of producing hits. It's not relative.

    I have a history of producing software that gets the job done; sells pretty well; people like using; is very stable without too many bugs; and so forth.

    I however would definitely NOT consider myself a "Rock Star" developer by any stretch of the imagination. I'm self taught and have glaring holes in my knowledge in quite a few areas. I often look at code from others and go "ah, that's a better way than I would've used" (and then try to use similar things in my own code in the future). For example, after a good 5 years of coding all day every day as my day job, I finally figured out the "right" time to use interfaces vs other methods. My code before that should've used interfaces worked (and worked well) but would be much more maintainable had I really known about their correct usage before. And vice-versa, I came across some REALLY old code of mine that uses interfaces when it makes absolutely no sense to do so (I assume it was when I first heard what about they are)

    What makes me not a CRAP developer is that I know I have these holes in my knowledge and am willing to learn from others. That hardly makes a rock-star though, regardless of how much good stuff I've produced to date.

  • by Anonymous Coward on Friday August 31, 2012 @08:36AM (#41188657)

    And you really think that anybody here in Germany gives a fu*k about what an american credit rating company says about this country? What kind of reputation do you think they have here? Germany has NEGATIVE interest rates on short-term bonds, and lower interest rates that anyone else (US included) on 10 year bonds.

    A low-level german factory worker with middle school education makes 50K a year, cannot be fired if not for just cause, can vote for 50% of the seats in the Council of Surveillance (what you call "board of directors" in america) so the company is substantially co-managed by workers themselves and shareholders have limited power compared to the US (yes, it's a semi-socialist system, and it works great!). And he/she gets complete and high quality healthcare coverage from the government, a generous pension benefit when he/she retires (67% of the last salary, and completely tax free), all paid for by a highly progressive tax system. Of course also education is free, college included.

    Instead, if you're american, you live in a country where the richest 10% of the population has 70% of the wealth, and the remaining 90% are beggars brainwashed by trashy hollywood movies since birth. That's the "american dream", right? Just keep it.

  • Re:Summarized (Score:5, Insightful)

    by jellomizer (103300) on Friday August 31, 2012 @08:39AM (#41188679)

    No it is more of a case that most companies don't need a team of rockstar developers.

    Because in truth you don't. For an average medium large project
    1 Rockstar Developer
    3 Mid Level Developers
    6 Jr. Developers

    The Rockstar works on the proof of concepts, and the base architectural design.
    Mid Level make the core building blocks
    Jr. Developers put all the pieces together.

  • by Anonymous Coward on Friday August 31, 2012 @08:40AM (#41188693)

    Sad to hear the same crap repeated over and over again - and posing as truth to boot.

  • by DuckDodgers (541817) <keeper_of_the_wo ... m minus caffeine> on Friday August 31, 2012 @08:48AM (#41188753)
    That's okay, the banking executives in the United States caused the biggest recession in 80 years without a single criminal prosecution or even getting fired. When the people on top of the economy get their house in order, I'll start listening to their advice for curbing the excess of the working class.
  • by BVis (267028) on Friday August 31, 2012 @09:40AM (#41189289)

    Get out of here with your 'logic' and 'sensible suggestions'! USA! USA! USA!

    Seriously, though, I totally agree. I agree that welfare should not be a handout with no strings, but at the same time the helping hand should be there to help them change their lives to the point where they no longer need government assistance. Sometimes there are mental health issues that need to be addressed, or untreated medical conditions that aren't being adequately covered by our Medicaid/Medicare programs. Sometimes there needs to be skills training to make them more employable. The private sector can help as well; instead of exploiting the fact that the job market sucks by hiring these people into no-benefit, minimum wage jobs that nobody would take under normal circumstances, they could hire people into positions that have potential for raises and promotion based on hard work. I guarantee you that 99% of the jobs listed at your local unemployment office are dead-end garbage that only reward hard work with more hard work, and pay so little that frequently a person would be better off without the job at all. (At least then they might be eligible for Medicaid and have SOME health coverage.)

    Your child care suggestion? You'd get laughed out of the room if you proposed that. The attitude is that they had the kids, it's their problem. They're literally being punished because they had children.

    And yes, there are some who game the system to collect benefits without putting in any sincere effort. It's human nature for some people to want something for nothing (hell, it's probably human nature for all of us) but the baby shouldn't be thrown out with the bathwater. The system isn't perfect, but it's a damn sight better than the alternative.

  • Re:Summarized (Score:5, Insightful)

    by darronb (217897) on Friday August 31, 2012 @10:18AM (#41189719)

    I strongly disagree in the concept that rockstars only design and don't code. Sure, lots of senior people I meet seem to think they've earned the right to just think all day on problems and let more junior people slog through actually coding anything. Many times you end up with (as Joel put it wonderfully) architecture astronauts that do much more harm than good. Many of the ones that avoid that particular trap just cost you a lot of money to work at a way lower productivity level than what they're capable of producing.

    Coders need to constantly code, or they start to drift off the reservation. They develop odd ideas of what software development should be (which can end up quite burdensome since they don't have to do a lot of it themselves), and chase down crazy edge cases as thought experiments.

    While the junior people need to learn somewhere, I'd much rather just work with just 'senior' level people personally. (That's generally a watered down ranking anyway, and certainly not rockstar level) Sorry, you guys deal with the rest. :) Any competent senior-ish level person can code faster than they can explain what to do to/clean up after junior developers. Even assuming a really well architected system broken up into easy blocks for the junior people to code (which doesn't happen in practice quite as often as/well as it should) just means that the easy blocks could be done in minutes by the more senior people.

    At the moment, at my largest client they've got one near-rockstar guy and myself. We get things done about 10 times faster than -competent- teams I've work with in the past. When the platform evolves to a point where it needs some refactoring, there's no whining and it gets done FAST. (it's R&D, the requirements change rapidly) It's awesome. I wish I could hire the guy.

    One of the weakest points of having more junior developers is handling signficant design shifts. On past teams we ended up avoiding or delaying making changes we needed to make because we were afraid of dealinng with the confusion from the juniors. The code ended up accumulating cruft to a much greater extent as a consequence.

  • Indeed, the article is not actually talking about "rock stars" but about poaching senior developers. It is also quite possibly the most perniciously agist thing I have ever read. "People do their best work when their head is barely above water," huh? How about the "truth" that the person who's "slogged through it 100 times before" also knows where the pitfalls are? The entire article reads like a bad stereotype of crotchety old developers too arrogant to follow directions.
  • by hackula (2596247) on Friday August 31, 2012 @11:01AM (#41190307)
    You are describing a cowboy coder, not a rock star. The two could not be further apart. Rock stars are the ones who, by definition, get shit done right. If they cannot write maintainable code, then they are not a rock star, plain and simple. Maintainability is almost always the number one most important quality of any project. Anybody can get v1 out quickly. A cowboy does it by cutting corners and rushing. A rock star does it fast and right, which is what makes them a rock star. If your good, solid, dependable devs can do that, you might have a couple rock stars without knowing it. Remember that skill and ego rarely match up. Joel Spolsky's definition of a rock star is still the best one IMHO: smart and gets things done.
  • Re:Summarized (Score:5, Insightful)

    by Anonymous Coward on Friday August 31, 2012 @11:02AM (#41190329)

    This "rockstar" term is so fucking stupid and abused. If you have millions of end-users who know your name and what you did, THEN you can call yourself a rockstar programmer. It's mostly a public image thing too, rather than quality or quantity of code. Programmed some lame server-side java app in half the time it takes most people? Not rockstar.

    The only rockstar programmers I can think of off the top of my head are John Carmack, Tim Sweeny, Brian Fargo, Warren Spector, Sid Meier, Peter Molyneux, John Romero (classic rock I suppose), and Cliff Bleszinski. All of these guys are games industry programmers that are high profile. When's the last time you saw publicity on generic corporate coder #81635?

  • The problem is that every cowboy coder insists that he is the rockstar, it's the others that are the cowboys.

    Mart

  • Re:Summarized (Score:4, Insightful)

    by tnk1 (899206) on Friday August 31, 2012 @11:13AM (#41190469)

    I agree that you will 9 times out of 10 get a veteran, as opposed to a performer, but rock stars are always going to be looking for new jobs, because that's how you actually get raises these days. Not to mention that staying in the same job will eventually bore them after a few years.

    The thing is, they will be snapped up quickly, and usually can find these new jobs via back channels. Don't expect to find these guys by looking for people to respond to your ad for jobs. People like that are headhunted and often move jobs when they feel like it. Unless your search starts headhunting people or unless you network sufficiently, you won't find them.

  • by Teckla (630646) on Friday August 31, 2012 @12:20PM (#41191345)

    You are describing a cowboy coder, not a rock star.

    The problem is that management equates "gets stuff done fast" with "rock star", regardless of the unmaintainable mess they may leave behind.

  • by war4peace (1628283) on Friday August 31, 2012 @12:37PM (#41191541)

    Sorry, but what you describe is exactly a cowboy coder. A genius (granted) who lacks a certain type of vision, and that is the understanding of the fact that the code he writes is NOT readable by anyone else, unless they make a huge effort that's going to cost them lots of time (and therefore money). Yeah, he saves time NOW, but loses maybe 3x more LATER. Well played! Not.

  • Re:Summarized (Score:4, Insightful)

    by quintus_horatius (1119995) on Friday August 31, 2012 @12:39PM (#41191561) Homepage
    After reading your post, I realized that slashdot needs a 'bitter' mod point.
  • by Matt.Battey (1741550) on Friday August 31, 2012 @02:42PM (#41193055)

    Couldn't agree with you more.

    Rock-star Engineers produce designs, implementations and tests that are easy to comprehend and extend. They don't produce Golden Code that will never be put in to use. Also they have a more than effective knowledge of the technology and the problem being solved. They are able to lead-by example, and true rock-stars are able to realize when they need to follow and/or team lead when they are are on a larger project.

(1) Never draw what you can copy. (2) Never copy what you can trace. (3) Never trace what you can cut out and paste down.

Working...