Yes, I've used the term "rock star developer" before, but now I decided I hate it. Why? Because it's a bullshit term used by people who define a great developer in the wrong ways.
We saw a video clip today at work that made me realize how stupid and misplaced the term is, and how more often than not, businesses measure the value of these people in the wrong way. So this guy in the video was talking about some dude who knew 15 programming languages or something. OK, and why does that matter? Every job I've had, we've used only one programming language (and the same one, at that). More on why that doesn't matter in a moment.
I remember a recent job posting from Calacanis for Mahalo where he talked about how he wanted a rock star, or someone he called a "killer" (I blogged about this before, and he even responded). To him, a dev has to have poor life-work balance, sacrifice everything and apparently have the productivity of several people. Again, what does this have to do with being a good developer?
I've interviewed many developers and had to assemble teams in a quick ad hoc fashion for consulting firms. What I look for is different than what others look for, but the best developers really require only three things to me:
These three ideals should make for obvious requirements, but I don't think they do. The first is like any profession, where you need to know what the tools are and how to use them. The second gives you a higher purpose for the work you do, above simply "coding," because it defines the reason you have a job in the first place. The third leads to better experiences with your customers, which means they'll keep using what you offer.
The next time you hear someone is looking for a rock star, ask them if that comes with a guitar.