Tuesday, May 3, 2005

Enthusiasm and excitement vs. fear and trepidation...

When we look to hire a new junior/entry level engineer, there are several key qualities I look for in the candidate.  The first and foremost quality I want to see, obviously, is talent.  Do they really know the stuff they said that they did on their resume(CV)?  Another quality that is one of the hardest to see in a short interview, although I have seen it come out in the really exceptional ones, is enthusiasm and excitement.  Don't be afraid of being wrong.  How else do you learn?  A corollary to this one is teachability.  How well do you respect both your peers and the senior developers?

Clearly, the most successful and talented engineers tend to meet those above qualities.  I'd rather hire an engineer that was less experienced but was a fireball of energy and enthusiasm.  Also they are ones that would be willing to charge ahead and take risks, even if it is the totally wrong direction.  They are kinda like a pinball.  The times when the game is the most exciting is when the ball is bouncing around in all different directions.  And you can think of the senior engineers as the paddles.  They are constantly redirecting and sending the ball back into play, which is how you score the most points.

Yes, that metaphor will break down at some point because eventually that pinball will need to become a paddle. My point is that an engineer may have memorized Donald Knuth's books but is so afraid of making a mistake or “not measuring up” in the eyes of their peers or the senior staff, that they are paralysed by this fear.  Yes, they will complete a task... eventually... and it will be correct and relatively bug free.  The problem is that you don't know when it will be complete.  And sometimes, it may not get done at all.  Someone who is willing to make mistakes and can take direction and critiques, will usually outperform someone who tends to be paralyzed by some fear.

Of course, this person can become a liability, but that is usually when they fail the final item in my initial list; teachability.  So taken altogether, a junior engineer with the above qualities has the most chances for success.  Coming onto the team with agendas, and preconceived ideas on how things should work, and refusing to accept that the more experienced team members may have already thought about all the various angles, is a sure recipe for disappointment and discouragement.  In my direct experience of being on the Delphi team since its inception, I've seen both types come and go from the team.  I'd have to say that for all the junior engineers that have come and gone on the Delphi team the ones that met the above conditions have contributed to the team far above some of the more reticent members have done.  I've enjoyed watching some of these junior team members move up into the senior ranks.  They are given larger, more critical tasks.  They also don't require as much guidance and direction... but what is an interesting trait they tend to develop is they now actively seek out feedback and criticism from their peers and the top-staff members.  They usually have spent a good amount of time thinking about the problem critically, and mulled over several solution scenarios.  By the time they begin seeking feedback, all the “stupid” questions are out of the way and the real “meat” of the problem can be discussed.

Now before you start reading between the lines and think that I'm trolling around for new hires, this is just a few thoughts I've had recently and thought I'd get them out before they evaporated.  Which probably explains why some of my metaphors are a little odd at times... then again when you consider the source... ;-)