Today's tip reminded me of something: when I was a tester in the Outlook group and did interviews, testing NLP was one of my standard interview questions. I liked using it for interviews because it's something that you'd be able to grasp quickly even if you'd never used Outlook before. I'd seen other folks asks interview questions such as testing the SMTP address generation dialog, which doesn't make sense to me - we wanted to hire smart folks, and not restrict ourselves to people who were already intimately familiar with email and PIMs. Sure, the ramp-up time would be faster for existing email junkies, but there's a common theme at MS that we want to hire for potential.

I'm always grateful to the folks who gave me my first interview (I started out as a contractor in the Outlook group and moved to full time, "blue badge" 6 months later. Moved to Exchange a couple of years after that). My temp agency said I had the option of interviewing in two groups - Windows NT, or Outlook. Windows NT seemed so large and intimidating; I'd never heard of Outlook, so I asked what it was - "an email program", I was told.

Oh cool, I liked email, I ran email servers after all, so I said I'd like to interview in that group. My interviewers didn't quiz me in-depth about email; they looked at my resume and saw what my current experience was (netadmin/sysadmin) and asked me questions related to that, such as "If a user suddenly started complaining that they couldn't access the network, how would you troubleshoot the problem?" This was basic narrowing-down-the-problem stuff which was 99% of my current job, so I did pretty well; little did I know that narrowing down repro's was one of the core parts of being a good software tester.

Thus began my love affair with testing - although I later moved on to program management, I still look back on my testing days as some of the best work days I've ever had. You get to go so deep into your areas, know them back and forth, and you get a 'feel' for when there's a bug. The thrill of the chase, finding the repro, is a blast - the times I was able to reproduce crashing bugs from scratch were a ton of fun.

Testing also has an advantage in that it's a little more straightforward to look back after a week and measure what you'd accomplished - you had test cases written and passed, bugs found and filed, fixes regressed, etc. Program management is a lot more vague and difficult to define and sometimes after a really tough week, you'll know you did a lot of work, but you'll be darned if you can write it down without over-using words like 'leverage' and 'enable'.

Some of my favorite descriptions of PMing: