My commute was longer than usual today, so I had some extra time to read and think.


The April 2005 issue of Software Development (available only in print form at this moment – See! advertisers still prefer eyeballs on paper to eyeballs on pixels) has an interesting piece of “Feedback” (why not just call it Letters to the Editor?) from a James S. Taylor. 


In that, James’ son says “Fewer and fewer projects need problem solvers of the old school.  What’s needed are a crew of programmers who can implement the deliverables in the time available, and if it takes gigahertz or terabytes, so what?  They’re cheap.  Only when you’re deep in some embedded system where you can’t solve the problem by throwing hardware at it do you require a real problem solver, and no one does that any more.”


I liked James’ short letter because it hit two points I have been thinking about quite a bit lately, and it did so in a thought-provoking way.  The first, as alluded to above, is about “What type of engineering is Software Development really?”  The second, is about “What makes a good hire?” 


Anyway, I was reminded of a comment that I want to share here.  It was made by a fellow-employee when we took our Interview Training.  (Yes, we do take interview training at Microsoft.  And I personally think that it a good thing, because of how important the whole hiring process is.  If you rank the things you do in terms of their impact on your company per minute you spend on it, there is nothing that comes out higher than interviews.)  After two or three hours of being drilled on the fine art of judging a candidate, this person had had enough and threw up his hands.  He said "If you come to me and tell me that you are one heck of a runner, do I ask you ‘Tell me about a time in your past when you ran well?’ or ‘If you were going to have to run this race in five minutes, and you could not find your track shoes, how would you do it?’  or ‘Tell me how you would deal with such and such on a team of runners?’  Dammit, NO!  I'd say  ‘Okay, let’s see you run.  Then I will know if you are a good runner or not.’ "


And something that James Taylor said, suddenly went click, and I realized that just like an actor, or singer, or other performer has to show up at an audition, get in a long line, and then strut his or her stuff for a few minutes, there comes a point during every Microsoft interview (the dreaded whiteboard) when you have to strut your stuff.  And each of the interviewers sitting there watching you has to decide inidividually whether you demonstrate creativity and intuition, and can leverage it effectively to solve problems. (That was James' point, that these are what predict a good programmer hire.) 


If you want to strut your stuff, we still have some positions available in C# (both in Test & Dev, junior and senior).  Unlike the stage audition, I believe we also give you bus-fare home, so what's to lose?