Lately I've been interviewing a fair bit; checking out my options (Insert "should I stay or should I go now" Kylie lyrics) ....
I've seen a few places asking for "rock star programmers" or the like. I've been wondering do they really know what they are getting themselves into, or asking for. Lets look at two different approaches, as there seems to be in life and just about any situation out there.
The "Rock Star" programmer
Here we are trying to describe the individuals who identify themselves as rock stars, a key point being that they do.
There are a few areas of their behaviour that are predominate. The overwhelming self belief that they can do anything, instantly and it will be perfect (a.k.a conceited), hey who needs testing or documentation ....... combine that with the attitude of their technical approach is without question as they already know everything, leaves the whole situation inflexible.
The only change that can happen here is more bravado, it's a catch-22 for the individual as the position is on a very high pedestal.
This makes the individuals hard to approach for other "lesser" team members, and fun to manage in a project context, owing to the ivory tower residence.
When you have someone who can actually produce to a high level and constantly (apart from watching them for burnout) you have to think what is going to happen when they leave, are they documenting and sticking to the company standards, what is the actual cost of what they are doing, and how many people will it take to decipher the work after them, will it even be usable ?
I know chaos theory works, I've looked at it. Could I patch it and write an API upgrade for it ...... or would I want to, let alone ask someone else to learn it ......... likely not.
Most "rock stars" in my experience also have been quite unapproachable (by juniors trying to learn or management trying to manage or lead), very sporadic in how they work and prone to leaving mid project as they've found something else with more flashing lights or money.
There can be good sides though ......... possible getting the latest CMS coded in 2 days flat, or deciphering a radio link crypt by ear and coding it directly into erlang can pay dividends.
On a final note ......... if you end up with someone who proclaims themselves to be a rock star and can't code their way out of a paper bag, you really need to sort out your interviewing process !!
The "Rock Solid" Programmer
Could start and end with humility, though might as well go over some other points .....
By rock solid I'm talking about someone who's spent their years in the trenches working away, gathering knowledge and skills, distilling that knowledge in practice and sharing what they can, always being interested in new things and others. Though for the sake of learning, not just having the most expensive skill as seasoned engineers learn principles, and then languages as tools.
They usually come across as dark horses, meek or mild, quietly confident. Always asking questions of others, to learn about them, the situation, the project, what needs to be done. Using the experience to look into the future, supporting others and basically being as subtle as possible.
A joy to manage as they typically do 99% of the job for you, you only have to ask them to share their ideas about the project as a whole, and things they are concerned about, and you're up to date in no time!
Methodically document and adhere to process, likely improving it as they go, without mentioning how great they think they are every second sentence ........
The Real World
As with most things it's little from column A and a little from column B, though in this case a hell of a lot more from Solid opposed to Star, if any.
Leave it to the marketing department, not engineering; and if you're being like that in marketing you're covering up for something you're not actually doing, or you'd just be transparent to begin with.
I've had the luxury of working with individuals from both sides of the coin to learn from, and know that allowing work to speak for itself over bravado and actually being humble, is the thing to do.
Knowing what you know in the IT world is likely already out of date, and to always be open to new learning is for me the way forward.
"I know that I know nothing"