Forgot your password?
typodupeerror
Programming

Ask Slashdot: Are 'Rock Star' Developers a Necessity? 356

Posted by Soulskill
from the smashes-keyboard-after-every-performance dept.
An anonymous reader writes "Do you think so called 'rock star' developers are necessary at every company? Personally, I don't think so, and I equate it to not needing a college degree to work at Walmart. If you give every problem a complexity value from 1 to 10, and your problems never get higher than a 6 or 7, do you need people capable of solving the 10s? I work for a large software company and I'd rate myself a 7. There are more technically proficient developers, but I don't have an ego about my work, I work well with coworkers and customers, and I bring people up around me. Most 'rock stars' I've seen have been difficult to work with. Most of them are no longer with the company because they were terminated or quit for more money. Is this usually the case? Is it worth the trouble? (Note to any managers reading this: if you have a rockstar who is a pleasant person, pay them well; they are very rare.)"
This discussion has been archived. No new comments can be posted.

Ask Slashdot: Are 'Rock Star' Developers a Necessity?

Comments Filter:
  • Translation: (Score:3, Insightful)

    by Anonymous Coward on Wednesday September 11, 2013 @03:58PM (#44823359)
    My coding is mediocre at best, and I know it. I still want to feel useful. Please say something nice to me. Please make me feel better.
  • Relative (Score:5, Insightful)

    by CrzyP (830102) on Wednesday September 11, 2013 @03:59PM (#44823369)
    The term "rockstar" is subjective and only douchebags use it. You could be considered a rockstar because you say you are bringing those around you "up" and are probably doing that by learning and training others about what you learn. You may not know how to develop something in a way when you start but you can learn and apply it when you do. I f-ing hate terminology like that.
  • by seebs (15766) on Wednesday September 11, 2013 @04:02PM (#44823427) Homepage

    You're conflating two unrelated things: Competence and attitude. You might find The No Asshole Rule an interesting source. People who can't cooperate with other people are not a necessity, no matter how amazing they are.

    But... When all you have is a hammer, everything looks like a nail. The thing that makes exceptional developers exceptional isn't their very specialized ability to solve weird problems no one really needs to solve. It's their ability to spot an opportunity to replace a hard problem with an easy one, or to massively improve performance by solving a slightly harder problem. And that really is that useful, even if you don't directly see the benefits. You can do nearly everythign with plodding, methodical, mediocre work. Doesn't mean you won't be happier with the results if you have someone better available.

  • by Endophage (1685212) on Wednesday September 11, 2013 @04:08PM (#44823487) Homepage

    I'm a tech lead at a startup and have worked at mid-size companies (I've avoided large corporations). Even if your problems are difficulty 10, you don't need a "rockstar" to solve them. My experience with typical rockstar developers has been similar to yours, they work poorly with others, communicate poorly, and often write inscrutable code. I firmly believe that nobody is invaluable. No company can afford to have a person that were they hit by a bus, or just left, the company would fail.

    There are plenty of developers out there that wouldn't be considered "rockstars" in the stereotypical sense but when given a problem, I know they will produce good, well thought out, performant code within a short period of time. During development they will seek out criticism from their peers (and they see the rest of the team as their peers) and the final solution will be respected and understood by the team. I think of these people as seasoned engineers, not rockstars and certainly not developers. Engineers break down problems and build a solution before they ever write a line of code. I also believe you can become a seasoned engineer rapidly, possibly even straight out of college. It's about perspective, not necessarily experience.

    One of the most important things in an engineering group, in my opinion, is the ability to walk into a room, argue out a solution, possibly admit you're wrong and somebody else's solution is better, but know when to fight your corner, then leave the room as friends and colleagues, ready to build the solution together. The ego rockstars carry makes that scenario impossible.

  • Yes (Score:5, Insightful)

    by msobkow (48369) on Wednesday September 11, 2013 @04:09PM (#44823509) Homepage Journal

    The "rock start" developers are absolutely necessary, because in a *real* project they contribute the majority of the *tough* code for a system -- the code that is "greek" to the rest of the team, but which works.

    I don't consider myself a "rock star"; rather I am dedicated and stubborn and hammer away at tough problems until I find a solution. But sometimes I fail to find a solution, especially with complex prioritization and queueing algorithms that have just too many special cases (one recent project in particular comes to mind.)

    But I have great respect for the "rock stars", and I think it's worthwhile to deal with their idiosyncracies. But I'm good enough at my job that I can *talk* to them, and I'm egotistical enough to get in full-bore arguments with them and *demand* their respect in return.

    Team efforts have never been for the faint of heart, chip-on-the-shoulder personalities. Your ego will be bruised and crushed if your teammates are worth working with, because *good* people have opinions, and will often disagree with you. Be prepared to defend your own opinions with vigour, and stop crying that people aren't being "nice" to you. The road to success in this industry is littered with the bodies of "nice" people.

    Kaplah!

  • Define "Rockstar" (Score:4, Insightful)

    by EMG at MU (1194965) on Wednesday September 11, 2013 @04:12PM (#44823547)
    In my experiences as a C++ developer our challenges are mainly architectural. None of us are C++ wizards, we all have many C++/STL books on our desks and are frequently scouring forums when we don't know something. C++ knowledge or the lack of it has never been a problem. Chances are that one of us knows how to do that whacky thing you want to do but can't remember how to do it. If we don't know, its really not that hard to experiment a little and figure it out. Worst case were posing on stack exchange or some other forum.

    Knowing how to develop a piece of software with an OO architecture in C++ is the skill that we find to be more important and harder to find in new devs. We have a few open recs right now and although we get many guys with years of C and C++ experience, few if any know anything about OO. Out of the current employees, less than half are 'good' at OO design.

    I have worked with guys who can crank out thousands of lines of real time, embedded code for industrial applications. Globals everywhere, no understanding of encapsulation or data hiding, nothing even resembling an interface. That sucked.

    Give me a good designer over a "rockstar" programmer any day.
  • Define "Rock Star" (Score:5, Insightful)

    by Anonymous Coward on Wednesday September 11, 2013 @04:13PM (#44823571)

    You need to define your question better.

    If you mean "A coder who is very good at solving problems," then yes. Every project develops problems that brute force and more manpower can't accelerate. Someone who can break the logjams is useful everywhere.

    If you mean "someone who is super-smart but also an ass," then no. I'd rather have a solid team beat on a problem for a week then allow a morale-killing ass to poison the environment.

  • Re:Relative (Score:5, Insightful)

    by ZahrGnosis (66741) on Wednesday September 11, 2013 @04:20PM (#44823653) Homepage

    Agree with parent (CrzyP)...

    Specifically, though, if they are "difficult to work with", then they probably aren't the best programmers. In that case, "Rock Star" may actually be a good term... people that are extremely talented at doing something, but do so by their own rules, frequently high, often attention grabbing and lacking focus or team spirit. (Not that there aren't great real rock stars, but you get my point). Okay, maybe that's an exaggeration, but still...

    What you do need are top tier developers, forget what you call them. You can get to the top tier by having raw talent, or by being well disciplined. Working well with others is a boon; building code that is reusable, well factored, documentable and maintainable. If you have five team members each with five different strengths but no one-developer-to-rule-them-all, you can still build a fantastic team and great software. You need programmers who can mentor so that the rest of the team can improve. Toss the people that don't work well on a team, and while you're at it toss the managers that prefer hard-to-work-with people, or that can't manage teams of normal people. This is particularly important if your software is going to grow... individual "rock stars" don't scale.

  • by a2wflc (705508) on Wednesday September 11, 2013 @04:24PM (#44823695)

    Many development project don't need a 'rock star'. They can be done with "typical" architectures, existing frameworks, and just need "assembly-line-type" workers for all of the steps. I'd even say "most" projects are like this and any project can survive without a rock star.

    There are also different types of 'rock stars' and they can help on even the most basic project. In general, the 'rock star' can do any/all of these things, but what do they do on a day to day basis varies based on their individual "specialty"

    * some can architect the "difficulty 10" projects so it can be implemented in assembly-line fashion by "typical" developers

    * some can implement the "difficulty 10" projects that wasn't architected well (when a team of N "normal" developers would end up with a late and buggy implementation)

    * some can debug like nothing most people have ever seen (they don't usually create difficult-to-find bugs but are a huge asset to the team when the bugs come up which can happen on even the most trivial project)

    * some just implement so well (speed of development + lack of bugs) that they literally will be cheaper than a team of N people (so, to the manager they aren't necessary but would be preferred)

    * some can mentor, and find other people's strengths, and reorganize efforts on the fly. they can help everyone else be more productive, and can adapt the process/team as requirements change and can be critical to delivering on time and above requirements especially when things go wrong.

    * some can help where ever needed (front-end, db, back-end, sysadmin, security, build, etc) and can step in without losing a beat when another member of the team is out (sick, vacation, left for another job).

    * some can find bugs in 3rd party libraries or system components (without the source code). find workarounds and/or patch those libraries to continue development quickly while sending the bug fix and appropriate level of explanation to the library developer to get a permanent fix. If you've ever been on a "difficulty 5" project which found a show-stopper bug in a critical 3rd party library during QA, you'll really appreciate this skill. I have seen one case on a "trivial" project where this skill was necessary and a few other cases where it really helped.

    I've worked with a very small number of "rock stars" over 30 years. They all had multiple of the above skills. I've worked with 3x as many people who were considered "rock stars" (by themselves and sometimes others) but weren't. In almost all cases, the "fake rock stars" slowed the project down more than they helped and the team would have been better off with one less member.

  • by hedwards (940851) on Wednesday September 11, 2013 @04:24PM (#44823699)

    I dunno, I think the guys in the band without a rockstar make a lot less money.

  • by Jeremiah Cornelius (137) on Wednesday September 11, 2013 @04:25PM (#44823711) Homepage Journal

    No definition provided.

    The concept of "ROCK STAR DEVELOPER" is a fiction invented by professional recruitment outsources. All developers are "Side Men" - even if some are in the "Musical Director" category.

  • Re:Translation: (Score:1, Insightful)

    by Anonymous Coward on Wednesday September 11, 2013 @04:49PM (#44824013)

    This is a classic big fish in a small pond scenario. Rockstars only hang out in small-ish shop or in small niche groups because they can make themselves look smart.

    I've had the fortune to lunch with over a dozen Nobel Laureates in both physical sciences and medicine. These are the incredibly bright people who have no need to impress anyone; they are "made". Their characters vary from humble to brash to crass -- but by and large that's who they are and it's not ego driven. Rockstar developers have the need to prove themselves -- that drives the ego. Rockstar is an apt term -- they are flashy and generally there is *some* talent there, but very few rockstar developers go after the really hard problems. The best of the best developers are interested in solving hard problems; working on a hard problem is standing at the edge of a tall cliff -- it tends to wash ego and bravado away. The great ones have such capacity that they have no fear of teaching mere mortals because the mortals will never catch up. By way of analogy to lead guitar: there are guys who can play blazing fast arpeggios up and down a guitar neck, but those guys are not even in the same league as the ones who do harmonically interesting things. The former are "rockstars" , the latter are working on hard problems.

    So to wrap back around to OP: if you are in a shop solving moderate problems then a rockstar is the best you are going to get; you have to decide whether to put up with the ego or muddle along with moderate talent. Shops working on hard problems don't have time to waste on rockstar egos.

    Parent: you go to a McDonald's for lunch; the person at the cash register is working as hard as they can and just barely keeping up; this person is maximally employed and contributing as much to the economy as they can. You need to find a gig which better matches your capacity-- the problem is that with your arrogance nobody working on hard problems will put up with you.

  • by Anonymous Coward on Wednesday September 11, 2013 @05:04PM (#44824197)

    Rock stars are the opposite of what you describe them. Rock stars demand people to write good code, they demand good programming style, they demand documentation. Other programmers are pissed at them because they don't want to do these tasks. That's where the conflict starts.

  • by Penguinisto (415985) on Wednesday September 11, 2013 @05:38PM (#44824567) Journal

    I can vouch for this as well (the existence, not the dog+badge thingy)... there is good to be had in having one guy who can zero in on a hairy problem and start working towards a solution even before the meeting is over... these are the guys you want your DevOps (glorified sysadmin who can talk to folks and write code) to have a good relationship with.

    The arrogance varies - personally, I've found it to be rare. Most top-quality devs I've spoken with are quite personable, and aren't really half the prig they appear to be at first. It just takes getting to know the personality a little and working with it.

  • two issues (Score:4, Insightful)

    by Tom (822) on Wednesday September 11, 2013 @05:51PM (#44824683) Homepage Journal

    Do you think so called 'rock star' developers are necessary at every company? [...]
    If you give every problem a complexity value from 1 to 10, and your problems never get higher than a 6 or 7, do you need people capable of solving the 10s?

    Those are two entirely different problems you mix there. No surprise you are confused.

    "rock star" is mostly an attitude, not a skill level. Some of the very best are not famous, and many of the famous aren't all that good. That is true in all areas, not just music or coding.

    So on that question: A "rock star" developer is necessary if and only if he adds value for the company. If you are selling your technology, say you are id software and your main business is selling your game engine to other developers, then a rock star can help you a lot to sell more licenses. Otherwise, no you probably don't need him.

    But on the other question: Absolutely yes. Unless your company is tiny, you really, really want at least one brilliant guy on the team. You think in a simple, linear way. The real world rarely works like that. You may be perfectly able to solve that standard problem, but your 10 coder may be able to solve it faster, better, or in a more generic way that can be applied to other problems. Or he may be the one to ask the right questions to make everyone understand that you've been solving the wrong problem all along. If nothing else, he provides a benchmark and an aspiration for everyone else.

    If you've never worked with a real pro before, you should. The difference between someone competent and someone brilliant is staggering, and it goes way beyond the difficulty levels of problems he can solve.

  • by mjwx (966435) on Wednesday September 11, 2013 @08:06PM (#44825513)
    No, "rock star" developers are a recruitment term. Developers (or any professional) who can sell themselves on their own merits doesn't need a term like "rock star" to describe themselves, their work speaks for itself.

    The arrogance varies

    Yes, for self described "rock stars" the arrogance varies from "extreme" to "weapons grade".

    glorified sysadmin

    Dev's who are personable and competent would never look down on another persons position, are not only capable of working in teams but will help to train the younger or less skilled developers. Above all of this they are capable of delegating tasks to both junior and senior developers and documenting the process so that in the unfortunate scenario they fall under a bus, another developer could take over.

    To rely on a single developer (or any IT professional) to fix everything is incredibly stupid but whats even worse is big noting this person because when they get offered even more money (or just get bored) you'll be the one up shit creek without a paddle. Reward competence but dont pander to egos. A good professional realises that they're part of a team, even if they are the only Dev/Sysadmin/DBA/ETC... there are still others in the business you work with, who depend on what you do and you also depend on what they do.

  • by ranton (36917) on Wednesday September 11, 2013 @09:38PM (#44826127)

    No, "rock star" developers are a recruitment term. Developers (or any professional) who can sell themselves on their own merits doesn't need a term like "rock star" to describe themselves, their work speaks for itself.

    The term "Rock Star Developer" can have meaning even if almost no one that meets the criteria would ever refer to themselves as one. Based on the praise I get from my coworkers and clients, I feel that I am very good at what I do, but I would never refer to myself as a "rock star developer". The very idea of saying that to someone makes me want to beat myself up.

    But I still agree with Proudrooster and Penguinisto when they say rock star developers do exist and they are very valuable. They are not invaluable (and the very use of that term makes this Ask Slashdot question ridiculous) but they are often worth a dozen average developers if the project is large and complex enough to take advantage of their abilities. I would rather work on a team with one rock star developer and a couple interns than a dozen average developers who I can't trust (which is the vast majority of coworkers I have had in my career).

  • by narcc (412956) on Thursday September 12, 2013 @01:37AM (#44827273) Journal

    I was as well. I really don't like the guy I was in my late teens and early 20's.

    Arrogance seems to stem from unrealized ignorance. At least that's how it was in my case. Being a big fish in a small pond certainly didn't help. Having everyone around you tell you how great you are doesn't exactly encourage you to grow personally or professionally.

Get hold of portable property. -- Charles Dickens, "Great Expectations"

Working...