Interviewing & testing/program management at microsoft
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:
- PMs as therapists: http://www.eecs.harvard.edu/~vernal/understand/archives/000121.shtml
PMs as "the [honeybucket](http://ssl.adhost.com/cribbins/honeybucket/merchant.cfm?step=2&id=8)": <http://radio.weblogs.com/0105395/stories/2002/03/27/whatIsAMicrosoftProgramManager.html>