Ask Slashdot: Are 'Rock Star' Developers a Necessity? 356
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.)"
Translation: (Score:3, Insightful)
Re:the same in any job (Score:5, Insightful)
I dunno, I think the guys in the band without a rockstar make a lot less money.
Re: (Score:3)
Oh, you mean what some companies call Distinguished Fellows. Ya, keep them away from the code. The early founders of the company or code base often create a lot of crap, and they may think they still have the skills but the code has changed so much since they were there that they will break it when they try. Ie, the new employee says "why are our coding standings so wierd?" and you answer "The Stig's programming cousin wrote that, he's now in charge of special projects and has lunch of the CEO regularly,
ROCK STAR DEVELOPER NON-EXISTANT (Score:5, Insightful)
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:ROCK STAR DEVELOPER NON-EXISTANT (Score:5, Interesting)
From Urban Dictionary: Rock Star Programmer - A computer programmer with such strong skills and so much specific experience that they are the equivalent of a rock star in the domain of software. Many people play guitar pretty well, but only a few become rock stars. These programmers can develop more software than 5 - 10 newly hired regular programmers because they know what needs to be done and how to do it. They also might set the architecture of the product that dozens will build upon. Usually associated with dot com websites.
Usage: Jeff was the guy behind ebay.com He's a rockstar programmer.
Yes they exist, typically large IT organizations have a few of them just in case. Many are like the fictional TV personality, House. If you can tolerate them, they are nice to have around for large, unsolvable problems that need to be fixed now. Many can deduce, diagnose, analyze, and fix things before your standard programmers can even formulate the problem. I have witnessed this on several occasions. If time is money, they are great insurance but be prepared for arrogance. The one I formerly worked with brought his dog to work and forced a fortune 500 company to give the dog a swipe badge. It was pretty hilarious.
Re:ROCK STAR DEVELOPER NON-EXISTANT (Score:5, Insightful)
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.
Re:ROCK STAR DEVELOPER NON-EXISTANT (Score:5, Insightful)
Yes, for self described "rock stars" the arrogance varies from "extreme" to "weapons grade".
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.
Re:ROCK STAR DEVELOPER NON-EXISTANT (Score:4, Insightful)
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).
So I'm a rock star (Score:3)
I never really looked at myself in this way before, but if the definition of a rock star developer is someone who can do the work of several average joes, who is more trusted by colleagues than others and has the ability to visualize design instantly, then I guess I fit that description. I've never been paid the same as the many people I can (in theory) replace, but then again neither has anyone else whom I've met who fits the bill.
In my mind, being the "rock star" is about more than just a little skill. Ev
Re:ROCK STAR DEVELOPER NON-EXISTANT (Score:5, Insightful)
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.
Re:ROCK STAR DEVELOPER NON-EXISTANT (Score:5, Interesting)
Here's the bitch about that definition. Rockstars are not the best guitar players. They're the most famous ones, from successful bands. There used to be a commercial on TV for Taco Bell, I think, or maybe Doritos. It featured Brian Setzer, a rockstar, talking about/showing this dream where he was playing in a concert and suddenly a little old lady in a rocking chair appeared and made a derisive comment about his guitar playing, and then to demonstrate, she whipped out a guitar and let rip. That little old lady, it turns out, was played by a real life little old lady who was in Guitar Magazine's top 10 guitar players - above notables like Eric Clapton and such. But you'd never heard of her unless you were super serious about guitar playing or certain genre's of country music.
Rock Star =/= Great Musician
Re: (Score:3)
These programmers can develop more software than 5 - 10 newly hired regular programmers because they know what needs to be done and how to do it.
If a programmer who knows the system cannot do better than ten newly hired, s/he is an idiot.
Re:ROCK STAR DEVELOPER NON-EXISTANT (Score:4, Interesting)
At the risk of getting a lot of flames: I've been in this category a few times, but never consistently over many months or years.
I.e. getting a challenge at work: "Mobil Oil left the meeting when we said you guys could develop this (safety) system in 3 months, with just one month to the first deployable version. They had calculated that it would take at least a calender year independent of the number of developers!"
My coworker and I hid away in a meeting room for three days, at which point we had written the entire first version, including a separate machine with a full sw simulation of all the missing hw parts, with programmable (Monte Carlo) error rates for all components and tracking of any resulting errors in the user output.
If I could do this day in and day out I would deserve that "rock star" title, but I know very well that I cannot.
Most of the time I'm quite happy working out interesting algorithms, shooting the breeze over at comp.arch or just spending my time figuring out why a given application/system doesn't work (or perform too badly).
I'm actually getting paid for that last part, so that is good.
Besides, I also want time for my wife & kids, my hobbies (orienteering, xc skiing/snowboarding, windsurfing/kiting, rock climbing etc), so I limit my work hours to the regulation 40h/week.
OTOH I have known/met a few real "rock stars", John Carmack is way up on that list and so is Anders Heijlsberg (who I first met way back when here in Scandinavia when he was a young punk who had just sold Turbo Pascal to Borland). Mike Abrash isn't quite as bright as Carmack, but he is incredibly persistent as well as consistently good.
All three of these come across as really nice guys.
Terje
Yes, they're the equivalent of a senior partner .. (Score:3)
.. in a law firm
I have a friend who is a very junior lawyer at a local firm. The senior partner she reports to charges 8 times what my friend charges per hour. I asked her how they could justify this rate considering she was technically equally qualified, albeit way less experienced. She answered, because he can get eight times as much done in a hour as I can; he doesn't have to look stuff up.
Rock star programmers are the same. They are the guys who can just get to grips with the problem, and don't need to
Re:Translation: (Score:5, Funny)
Re: (Score:2)
... still think SVN is where it is at.
SVN is needlessly complicated. I favor the Source Control Shingle [thedailywtf.com].
Re: (Score:2)
git is not the end-all, be-all. Where you don't need massive distribution or you work with binary files (say, a CAD repository), git and mercurial just get in the way. They still doesn't have sparse/partial clones where you could just download selected subdirectories. That's the make-or-break feature of SVN in some of my projects. Our CAD repository is over a gigabyte. When I work on a project, I only need our parts library and the project folder. git and mercurial are great for software, but software is no
Re: (Score:3)
Git has scalability issues with very large repositories storing binary data. For example, I know someone who converted an SVN repo to Git with every picture he's taken plus modified versions after post processing work. (35GB of pictures)
It took him 10 minutes to commit anything due to Git not handling it.
Git is a great VCS for many use cases, but it actually does suck for binary file management under extreme conditions.
Re: (Score:2)
Re:Translation: (Score:5, Funny)
And it is a constant challenge to make sure I am not talking down to people, or seeming to snotty.
Try this method:
"If the next thing you might say is douchey, skip it and think of something else. Repeat as necessary."
As a programmer, you'll immediately think of improvements to this algorithm, but if you are a good programmer, you'll understand the pitfalls of premature optimization. Keep it simple.
Re: (Score:3)
I think you've created an endless loop there. You need an exit condition for the likely case that the rockstar is unable to think of something that isn't douchey.
Re: (Score:2)
Well for people who are good at what they do an know it, will tend to have a bit of an ego about it. As well as it comes easy to them, having people who struggle at the work gets frustrating.
I have been considered as one of those Rockstar developers. And it is a constant challenge to make sure I am not talking down to people, or seeming to snotty.
I know what you mean [despair.com]
Re: (Score:3)
That doesn't match my experience. The majority of people I've known that were brilliant in general or at their 'calling' were actually less likely to be arrogant or condescending, because they knew that there were plenty of things that they were average or even struggled at. That includes two unbelievably talented internationally famous surgeons (one was the father of fetal surgery, the other his older more-talented partner, who could improvise highly experimental unsuccessful surgery in an emergency and p
Relative (Score:5, Insightful)
Re:Relative (Score:5, Funny)
1 - 10? 6 or 7? I'm a Rockstar developer! I go to 11.
those numbers... (Score:3)
His 1-10 ranking of task difficulty & how he correlates it with task analysis is reductive and omits several behaviors in work that demonstrate competence.
Lets assume you *can* assign some sort of 1-10 number on the 'difficultly' of a task.
If it requires a 7 why have someone who can do more?
Intelligent people work smarter *and* harder. They find ways to automate time consuming tasks where lesser workers just put their head down and do it individually.
They find ways to overlap work.
They have better habit
Re: (Score:2)
Re:Relative (Score:5, Insightful)
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.
Re:Relative (Score:5, Interesting)
I've known a lot of top programmers, and consider myself among them. Personally, I like to hire rock-star coders right out of college, before they have a chance to develop all those bad anti-social habits. I love it when a team of awesome programmers all work together effortlessly.
Unfortunately, the typical experience for an awesome coder is to find that he's carrying the load by himself and getting help from coworkers that's slightly worse than no help at all. There's no mentor to show him how to work with his team, and he quickly becomes a lone wolf coder. Once a lone wolf coder develops his style of coding all by himself, it's pretty darned hard to ever get him integrated into an efficient team.
The "best" coder I ever met, and this by the way is the only person I have ever met I have to admit can code circles around me, is Ken McElvain, founder and genius coder behind Synplicity's rapid IPO. The guy has an amazing mind. He's not only a Mozart with code, he's brilliant in business, and if he has an ego at all, you'd never know it from talking to him. He is definitely a lone wolf coder. There was simply no other path for him.
Re: (Score:3)
That's sort of the problem
whether you're a 1 or a 10 level programmer, ego has nothing to do with that.
I knew people who wrote spaghetti code who had bad attitudes. I know people who were quiet and nice and wrote great code. There really is no correlation besides someone who wants to classify incorrectly.
The assumption is that all great programmers are a pain to deal with. That assumption is totally incorrect. Different people have different skills, personalities and abilities to work with others.
Re: (Score:2)
I just signed with a major label you insensitive clod!
Re: (Score:3, Interesting)
I've most commonly heard "rockstar developer" from HR people who want to flatter candidates. They then proceed to hand me a pile of shit resumes of engineers who can barely code fizzbuzz. But it's common knowledge that engineers can vary in productivity by more than 10x (IIRC, IBM studied this), so I think we all know what they're referring to, even if the term is obnoxious.
The thing about those engineers is that there's probably 2-3 times as many engineers who think they're in that category as there are en
Re:Relative (Score:5, Informative)
Heh, I spent a year cleaning up after the last "10x" developer. 10x the productivity, 10x the bugs.
Re:Relative (Score:5, Informative)
Re:Relative (Score:5, Interesting)
What I discovered is that there is a need for crappy throwaway code, far greater than I thought. Prototypes, proof of concept products, budget solutions, anything people want to play with until they are happy enough to turn it over to a professional developer team and say "build me this". I even build production code from time to time. My boss understands that if the code needs fixing or updating, he can hire someone like me to fix it on the cheap (fast and small teams equal €€€ saved). Doing the math, he finds that building solid, supportable code and getting it into support with he regular teams looks a lot more sustainable on paper, but in practice is less flexible and vastly more expensive.
Of course this doesn't apply to every situation. Luckily I have a clever boss who understands this and knows what kind of coder is called for. Good work if you can get it.
Re: (Score:3)
Sounds like a huge build-up of technical debt. One day you find an obscure but important bug, and some architectural issue blocks you from fixing it and suddenly you have to pay it all off with some massive re-engineering.
At lot of places the prototype code often becomes the production code. The moment the PHB sees something that works it's already being sold to customers. In fact I know of one place where someone did a sketch of what a product might look like, then six months later it was on sale. At that
shut up. (Score:2)
everyone knwo what they mean:
Guru,(80s)
Then prima donna,(early 90s)
Then [insert made up name] (97-2000)
now it's rockstar.
Next week it will be 'earwig' or some other nonsense.
Re:shut up. (Score:4, Funny)
everyone knwo what they mean:
Guru,(80s)
Then prima donna,(early 90s)
Then [insert made up name] (97-2000)
Then unemployed. (2001-2005)
now it's rockstar.
Next week it will be 'earwig' or some other nonsense.
Completed that for you.
Re:Relative (Score:5, Funny)
I got a recruiter email that said "We're looking for rock stars!" which was pretty much the dumbest thing I've ever seen in a recruiter email (and they're all dumb).
I was tempted to respond with "I'm a 75 year old Mick Jagger, I can only work 20 hours a week between naps and my speech is so slurry that it's best I don't interact with customers or investors."
Re:Relative (Score:5, Funny)
Alice Cooper is a rockstar, and his Python skills are legendary.
Not sure what his Perl's like though.
Re:Relative (Score:5, Funny)
I can't tell you much about Alice Cooper's Perl, but I do know that back in the day, Lionel Richie was amazing with Commodores.
Re: (Score:2)
Re: (Score:2)
My wife isn't impressed when I share my Python skills with others.
I'm sure your co-workers, Tom, Dick, n Harry, aren't impressed when you share it with them either. ;^)
Re: (Score:2)
If that's not it, then why are you a douche bag?
heh.
Rockstar developers? (Score:5, Funny)
Necessity, no, but... (Score:5, Insightful)
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.
Re: (Score:2, Interesting)
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.
+1. I've had the good fortune to work with some very good developers. My experience (or luck) was actually the opposite - they were quite nice to work with. Sure, they would get frustrated more often and more easily, would not tolerate inefficiency, and would get bored more easily, but never in obnoxious or unreasonable ways. You also automatically improve your own performance and make more of an effort to keep your foot on the pedal. That's some good stuff there!
But most of all, as OP said, the hardest thi
Help them realize they're the asshole, with a book (Score:5, Interesting)
I just read the book Multipliers [amazon.com]. It is targeted towards managers, but I think it is useful information for just about anyone. This dev (who has so far shown no interest in joining management) certainly took it to heart. The book compares "diminishers" and "multipliers".
Diminishers, like your company rockstar. They need to know everything and have the last word. They can appear to be a team player when they're really just using people around them to prop themselves up. They strike fear into people who challenge them. They make large decisions by themselves, or take input from a small inner circle of people. They are at their A game, but diminish other people's output and potential. When people work with diminishers, they feel like they're giving 50%. It is a net loss.
Multipliers create an environment where people can give input with confidence, make mistakes, and learn from them. This doesn't mean they are soft. In return for this they expect greatness and weed out those who can't give it or who can't work with the team. They identify genius (described in the book as an innate, exceptional ability which someone may not even realize they have) and try to flourish it. A multiplier can still be at their A game, but puts emphasis toward helping others grow. When people work with multipliers, they feel like they're giving 150%.
It sounds a lot like some management BS and I'm sure I'm not selling it well, but it really is a great read. It has a lot of studies within tech companies, so it was generally very relateable. It helped me identify areas of improvement in myself, not just in my attitude but also to find opportunities to help others grow where I otherwise may have just taken control and pushed someone out.
Re: (Score:2)
All other things being equal of course you'd take a more competent developer over a less competent one. But exceptionally good people don't come easy or cheap so the question was if they're worth it for everyone. I'd say no, for example in some business applications you're just constantly chasing that new input form or business rule or workflow or report the business side wants, there's no telling where they'll go next and there's really little room to make grand improvements unless you want to try to creat
Halo effect (Score:2)
Rockstars are never necessary (Score:5, Insightful)
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.
Re: (Score:3, Interesting)
The sticking point is usually when poor or mediocre developers are incapable of doing the same, then they blame the "rockstar".
Re:Rockstars are never necessary (Score:5, Interesting)
"My experience with typical rockstar developers has been similar to yours, they work poorly with others, communicate poorly, and often write inscrutable code"
Based on that, you're experience is with people who aren't rockstars, but claim they are.
I worked with a guy who shaved 3 months off a year long project. This guy could sit down and just code.
Good, clean code the he documented. I learned a shit load, and not just about the language, but all the ancillary bits as well. like comments , documenting, and how to get clarification from users and deal with stakeholders.
Programming is a lot more than just coding. the sooner more people realize that the sooner we can move forward with actual computer engineering.
Re:Assholes are like opinions (Score:5, Interesting)
Yep. I've worked with a few people I would consider "Rockstar" programmers in the "non-asshole" sense. They were fun to be around, considerate, polite, knew their shit inside and out, and tutored / mentored me and others to become more effective at the parts of the project we worked on.
These days, the first interview question I throw at new candidates is "Tell me a story about a time you had a technical difference of opinion with another person or group, and describe what you did to resolve your conflict and move forward". It's a behavioral interview tactic I picked up from a former big employer, and it tends to be fun to note how much they squirm while recounting past bad blood. Now, no one has really ever totally bombed this question, but making them talk through some of their uncomfortable scenarios provides some good insight into how much experience people have when they inevitably have to deal with conflict resolution... and the mere fact that we ask it kinda prompts them with the expectations we have of our employees for cooperating with others in our environment.
Re: (Score:2)
There's only one problem. You just described the exact opposite of a rock star developer.
Re: (Score:2)
often write inscrutable code
Which can lead you to acquire legendary status on Usenet if your name happens to be Mel and you use a MAXINT rollover and flag bit to address a jump instruction.
Reference (Score:2)
Yes (Score:5, Insightful)
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!
No, not always... (Score:2)
...but if you can get someone who's really good, and can also play nice with others, then I think it's well worth it. That's a pretty rare combo though.. Sometimes just because "others" sometimes won't play nice with people that are better than them because they're threatened..
If you ever have a problem of difficulty 8, and you've got a programmer of skill 7, don't even bother trying.. You're just gonna get a mess..
Define "Rockstar" (Score:4, Insightful)
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.
Re: (Score:2)
Just so you know, every company have worked with that goes on about OO and no one 'really does' OO were places where people bowed to Booch and didn't do any real thinking about their architecture.
I know OO, but I also no that with OO you can start to gather to much overhead; which can be important with certain kinds of work. Such as moving data byte by byte with a tiny footprint, where time is critical.
When I say time i'm talking milliseconds.
13 levels of indirection might be fine for a banking teller app,
Re: (Score:3)
> You have to really really fuck something up to have C++ OO code be too slow where you're talking "milliseconds".
The problem is OO tends to over-engineered solutions*. i.e. multiple levels of inheritance, deep and tightly coupled interfaces, virtual functions in the middle of the a performance critical loop, template bloat, etc. :-( The younger programmers haven't learnt the rule-of-thumb:
Just because you can, doesn't imply you should.
The great C++ programmers knows how to balance the simplicity
Betteridge's law of headlines (Score:2)
Define "Rock Star" (Score:5, Insightful)
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: (Score:2)
It means a developer who'll die of a smack overdose 3 days before the project deadline.
Not developer, but in general, I avoid rockstars (Score:3)
In short, even if they are brilliant, if they are an asshole (and many are) they will be miserable to work with, you will lose team members who will not put up with their shit, and in the end, your projects will not get completed. Oh, and they hate to document their code, because they don't think anybody else but themselves could maintain it, and they often whitewash error handling (their code is perfect and elegant afterall).
Re: (Score:2, Insightful)
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.
Depends (Score:2)
Start up willing to take the risk of 1 person building and controlling the code and possible the direction of the company? sure. I wouldn't but like I said weigh the risks.
A high paid specialist? absolutely.
A salary employee and an entrenched company to routing development ? absolutely not.
My rule is:
You can act like a prima donna, but you damn well better be a prima donna.
Not every situation is the same (Score:2)
Since different companies make different products, they need different skills at varying levels.
More importantly, a "rockstar developer", as commonly understood, has only a very limited skillset; boundless technical creativity.
Sure, they may be awesome at thinking up solutions, designing algorithms and turning it into code.
That does not mean they have the right character traits to create solid testcases, hunt for all the bugs, tie up all the loose ends, write documentation, understand end-user needs, etc. A
there are different types of dev and rock stars (Score:5, Insightful)
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.
Diva or not, you need two out of three things... (Score:2)
How do you know if you're problem's a 7? (Score:3)
If you don't have anyone who has handled a 10, how do you know you're really dealing with a 7?
I worked in consulting for a few years, and at some point i worked with a company where PMs felt they could do with only ever hiring college people and work on retaining them for 5-10 years+. So the majority of people in the department had never seen another company.
They ended up with fairly complex project, but had no clue they were complex.
A (much simpler but extreme example, this is a discussion forum, there were actual hard problems involved...) was when they had a database with products and prices, and to handle promotions, would add/substract the promotion from the ACTUAL PRICE. So if the base price changed between when a percentage promotion started and ended, the base price would be completely hosed.
Now that's a big "Well, DUH!" moment, but imagine the same situation with deep architectural problems.
They're worth it in a startup (or company start) (Score:3)
I am considered a pretty good developer (the word "rockstar" is stupid to me - maybe I am, maybe I'm not). I came in at a startup almost 2 years ago, and to this day I am still fixing problems that the original developers left.
If the code had been written correctly in the beginning, we would have saved millions in man-hour-dollars. Millions.
No, you don't need them all the time, but when you are building a foundation, you need it done right.
Re: (Score:2)
It's good to have a few rockstars (Score:2)
> 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 think "rockstar" is overused, but never mind.
It's important, I think, to have a few rockstars around if your environment is even moderately complex. It takes someone with serious skills, experience and insight to foresee what would otherwise have been "unforeseen consequences". Odd interactions with other apps, race conditions, initial condition
Andreessen says that Google needs rock stars (Score:2)
"Engineers are now starting to get paid for their true value, which arguably has not been case for a long time, but it is now, and Google is at heart of this. Google discovered an algorithm change can generate another $100 million in revenue. So now companies are more willing to have superstars, and there are engineers at Goggle making tens of millions of dollars."
http://www.eetimes.com/document.asp?doc_id=1319417 [eetimes.com]
You never know... (Score:2)
You never know you ever needed a Rock Star developer
until you find out what they can do for you.
Frequently it boils down to cost. They find a way to do
something with half the resources, or they find a way to double
your throughput with the same resources.
Either way, the bigger the company, the more it means.
they want people who can do the work of 3-5 people (Score:2)
they want people who can do the work of 3-5 people as in areas that may need 3-5 different people covering each area. They want 1 person to do that work OT with no added pay and be a super star in all areas.
college degree is useless for some IT jobs (Score:2)
Each school is different but some a overloaded with theroy also CS is not really the desktop / sever / networking side of stuff.
Also 4 years pure classroom is to long / to big of a block.
The number reason to get a rockstar is (Score:2)
so you can tell VCs you have a rockstar.
guh.
do not underestimate your needs (Score:2)
I think pretty much any opinion on the primary question already been offered. However I would add that whether or not you feel that your needs are challenging and/or require great programmers, a great programmer may very well be worth every penny they cost you and more.
Take a look at the daily wtf or other similar sites to see the huge cost a mediocre programmer can be to a company even in very simple applications. Even a minor change to a system can be done well or done poorly, and too many items done po
Coder skill ratings... (Score:2)
I work by myself on small projects assigned by the company which I am wholy responsible for. I have complete freedom of language, frameworks, data formats, etc... I get a job, give a time estimate and do it.
It's cool having that amount of freedom but the lack of peers hurts my growth, I'm sure many times I've reinvented the wheel. Then after some thought I reinvent it again in a better way.
How does one to about rating someone's programming abilities on a 1 to 10 scale in a somewhat objective way? Peer group
It's a Speed Thing (Score:2)
The value-add is that the rockstar developer does a task in like 1/10th the time of a normal developer. So the task is doable by others, but granted that first-mover advantage is frequently everything from the business perspective, managers loved that rockstars where I worked because they solved problems overnight where other developers would take weeks.
Now, while the rockstars were doing that they were also crapping all over the codebase with broken interfaces, undocumented functionality, completely gibber
You need rockstars to develop people (Score:2)
I'm not even going to pretend to know what the op means by rockstar except a really really really good developer.
One of the interesting problems is should you hire people just good enough to do the job?
On first glance, many people would answer yes.
But this brings a structural problem. There are 'hard' problems that need to be solved. That might be a new architecture, optimization problem, integrating a new product...
But all you have are people who are 'good' enough to do the basic problem.
Whenever you run i
What the heck is a "rock star"? (Score:2)
In my book a "Rock Star" is somebody who *thinks* he is good and has actually convinced some group of people that he IS good. It's all about appearance and has little to do with performance. Many of the "rock stars" I've met and worked with (Some of whom where REAL live Rock stars (Van Halen, Amy Grant)) where so full of themselves it was hard to take them seriously. I've worked with developers who where the same. Some are all about the showmanship, not about the art; all about taking credit but care less
Quote from The Mythical Man-Month (Score:2)
I don't like the "rockstar" label, but excellent software developers are more than worth it, as Fred Brooks knew years ago...
I don't have the book in front of me, but there is a reference at http://en.wikiquote.org/wiki/Fred_Brooks [wikiquote.org].
That book is worth rereading every few years.
Problem at the root. (Score:2)
If you think that none of your problems require a solution that exceeds 6 or 7 on a 10 point difficulty scale, then you simply lack anyone able to see a 10-point solution.
There are always solutions that are more elegant, more intuitive for end users, require less effort, etc. The fact that you can't see them doesn't mean you shouldn't hire someone who can.
Yes, you need rockstars (Score:2)
Whether or not those rockstars are also assholes is irrelevant. Mediocre skills will get you mediocre results. You need visionaries, and people who think outside the range of 3-7. Their ideas often fall outside the range of acceptability, and as a result aren't always implemented, but thats where part of the arrogance you're talking about comes from. They may come up with 15 ideas to solve a problem -- none of which get implemented. If they didn't have any self confidence they'd be discouraged (much like yo
Rockstars tend to be prima donnas (Score:2)
There's no room for rock stars in my tightly organized classical and jazz ensemble.
I let go of 2 rock star developers in May. Their stars were so bright they did not seem to understand what they were actually being asked to do. I helped them on their way to finding challenges suitable for their skills and have been cleaning up after them ever since.
I completely respect people who take the art of application development seriously and do want to attract that kind of talent. What rock star implies to me is som
Re: (Score:2)
I dunno if you can be a "rock star" without a business sense, I think you're more thinking of the bookies group. Those are typically a PITA to work with and are best avoided unless absolutely necessary. I was glad to see ours go.
Simply put... (Score:2)
Yes: Sheeple have no business designing architecture, if only for that reason.
Terminating people! (Score:2)
If the company you work for is terminating people, you may want to think about leaving ;-)
And if these 'rock stars' are so bad, why are the other companies offering them more money?
Yes, for new innovative projects (Score:2)
Rockstar developers are the one you use to build an A-Team to create an innovative piece of software from fairly abstract requirements.
Once the proof of concept is done, you then move it to average developers for polishing and maintenance.
That's how R&D works in most companies.
two issues (Score:4, Insightful)
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.
Depends on what your company does (Score:3)
If your company doesn't innovate or do anything game changing... If they don't even do anything especially well but their job is to do something very consistently, then they might not need the rock stars.
I'm not being insulting here. There are companies like that. A good example might be a power utility. They typically aren't doing anything innovative. They buy power plants from companies that make them... possibly they install and maintain them entirely themselves. But they don't have to do anything innovative. Just follow the instructions and do the regular maintenance. That sort of business can survive pretty much indefinitely so long as they provide a high quality of service through rigorous reliability.
The rockstars are selling their ability to come up with things others won't. To come up with great ideas and then implement them in new ways.
Lets say you don't have that. Well, do you have something else? It might not be worth as much but it is probably very important in other situations. In the above example, I talked about reliability.
Another thing that is important sometimes is a near autistic attention to detail. Some jobs require EXCEPTIONALLY anal attention to detail. You'll find this in many scientific, financial, engineering, and of course computing fields. Situations where the details are everything and there are a LOT of details.
So long story short, I don't think rockstar developers are always required. That said, it is nice to have at least one around or one you hire on contract. The reason is that some times you need to change the way you do things and the rockstars are going to be better at that then the people that mastered the old way.
In any case, best of luck to you. As much as the various trolls here will beat you up for your question, the reality is that pretty much none of them could qualify for the rockstar position themselves. That's the case for most of us. I'm not a rockstar either.
I'm good at what I do. But I win more through being extremely cautious, very patient, and pathologically non-conventional. When I do things differently, it isn't because I'm innovating or trail blazing. I do things differently because I deal with security a lot. And the systems that get hacked are the systems that the hacker understands.
My systems are inscrutable to anyone that hasn't been briefed BY ME on them. Which means my systems have never successfully been hacked. Ever.
Now is that because my systems are unhackable? Or because I'm so amazing? None of the above. I'm worse at a lot of this stuff then other guys that have been hacked over and over again.
No. My systems are unhacked because the hackers literally don't understand them well enough to hack them. They're weird. They're weird on purpose. I do things in a odd way and don't publish how they work. My systems are obscure and strange. I do get lots of people TRYING to hack my systems. I can see the logs and you can tell the difference. But their automated attacks either fail or their manual attacks are given up on. Why put in the effort to hack some weird system when there are a dozen others that you can break into right now? And so they leave me alone and hack someone else.
I take my ques on defense from nature. Nearly all creatures make use of disguise, misdirection, or obfuscation to hide themselves. That is what I rely upon.
That isn't genius or a sign of my rockstar nature... because I'm not one. It is a product of my inherent paranoia and methodical approach to security.
I like to think I'm not smarter then other people... I'm wiser then them. Who can say.
If you're not a rock star, find something else you're good at doing that they cannot or will not do... and do that instead.
Remember what old darwin said. Survival of the fittest doesn't go to the strongest or the fastest or even the smartest. It goes to the most adaptable. The lowly cockroach in the scheme of things is a better specimen then the mighty lion.
I don't need to walk around with ins
Re: (Score:2)
When someone calls themselves a rock star, that's a pretty darn reliable indicator that they aren't very good. Certainly nowhere near as good as they think they are. It's also a pretty good indicator that they are arrogant and don't get along with people very well.
Re: (Score:3)
FACT: A good team of average people, working together, will accomplish more than a single person over the course of two months.
This is categorically false. Individual output of programmers vary by an order of magnitude (10x source [construx.com]). Literally one guy can be worth ten others. And this is why the "do you really need rockstars" is always a yes. Even if you are not trying to solve hard problems you can either hire 10x guys @ 50k a year or one guy at 150k a year. You make the choice.
Re: (Score:2)
Idiots bring everyone down as much as assholes do. The only thing that really matters is results. Can you use what they produce? Can you maintain it? Can someone else pick it up and continue? This can apply on both sides of the spectrum as a mediocre contributor may produce garbage and require babysitting.
Re: (Score:2)
"Do you really need rockstars?" is absolutely not always a yes. But, there are indeed cases where that's true. I recently left a d
Re: (Score:3)