Update: See the full list of PM Tips.
Recently a friend of mine at Microsoft asked about tips for how to land a great Program Management job at Microsoft. It has been a while since I did a “PM Tips” post, so I thought I’d use the opportunity to share my thoughts and get your feedback.
I have done lots of PM interviews over the years and through the process I have developed a few things I look for to spot great program managers. In fact I have often mentioned to co-workers in Dev or test and even people I meet at social events that they would be great PMs… most of the time they look at me like I am crazy… but sometimes, they turn out to be, in fact, really great PMs.
Getting the Interview
Know what you are looking for – Given this economy, I know many folks just want *a* job. But I’d encourage you to think more deeply about it. You are more likely to land a job that allows you to use your discretionary effort – that is, something you will LOVE doing. Another way to look at this is for every job you apply for, know why *that* job is great for you. So while you could apply for many jobs, you want to figure what makes you interested in each one. Is it the people you’d work with, the technology, the role?
Understand why you are looking – There are lots of good and bad reasons to look for a new job. Be sure the check your motives. Hiring managers don’t want to get a “problem” employee that runs away from hard problems or can’t get along with co-workers, etc. Good hiring managers will want to really find out what is motivating you to look now. Even if it is something like a “unfair” review or a disconnect with your manager that is making your want to look, I’d encourage you to think hard about the root cause – for example maybe your review isn’t great, in part because you have lost passion for the an area you have worked in for long time.
Network – Chances are very good that someone you know knows your future boss. Put the word out that you are looking. If anyone on my team recommends someone for a position, I always do at least an informational with them… the same is certainly not true for the cold calls I get. Be sure you have talked to your management chain about this first as news travels fast. You don’t want to surprise anyone. It is always best if you can tell your management chain that your first option is to stay with the larger team… that motives them to find a role for you and helps you not look like you are running away.
The Cold Call – Sometimes you will have to do a cold call – just reply to an open position even when you have no personal connection. Don’t let this stop you from your dream job. But do do your research. In your first mail to the hiring manger mention why you are interested. is it the technology, the people, or some aspect of the role? Specifically ask for sometime with them or someone on their team to talk more about the job.
Do your homework – In the days of Bing, Google, Blogs, Twitter and Facebook it is very easy to find information on people and projects. Who are you going to interview with? Find out what their last talk at a conference was, what was their last blog on, have they done a blog post on interview tips 😉 etc. For the project, what is the core message, what are customers saying? what are the big problems? Is there a beta or CTP of the product you can play with a bit? Can you get some first hand experience with the product.
The Interview Process
The overall interview process can be time consuming and take a lot of elapsed time. And while you can try to put a schedule on it, the truth is it will take as long as it takes. This is a big decision for both you and the hiring manager. Here are a few things to expect in roughly this order:
1. Initial Informational – this is usually with the hiring manager or someone she respects. The goal here is mostly a “get to know you”.
2. Follow up informationals\informal interviews. Committing to an interview day is big for both of you. You have to tell your current manager (if you are already an employee at MS) and the hiring manager has to invest several hours in an interview loop and discussions. Often you both want to raise confidence before doing a loop. I am a big fan of these as they give you a very good idea of what the loop will be be like. It is very much a trial run.
3. The Loop – If all goes well, eventually you will do a full day interview loop. You are likely to talk to 3-6 of your co-workers, your boss peers, etc. Be sure to ask each of them what their relationship is to the hiring manager. Begin to form of map of the organization.
4. The hire\no-hire decision – often this is very quick.. a matter of a couple of days for the hiring manager to compare notes with the interviewers and make a decision.
5. Accepting the offer – You need to formally accept the offer. My suggestion is that you loop back one more time with your current team before formally accept… again you want to leave on the best terms as possible.
In the Interview
Good answers to stock questions – I always ask a few stock questions:
Why is now a good time to look? Good reasons would be product shipping, significant change in directions, etc. Bad reasons would be you got a bad review, a reorg didn’t go your way, etc.
Why this role? Good reasons would be following your passions for technology X or part of a progression (from low-level to high-level platform for example, or it could be the people, etc. Bad reasons would be you want to be the boss, you want an easier\less stressful job, etc.
Why PM? Good reasons would be around wanting breadth of scope, impact the product, customer connections, etc. Bad reasons would be to make decisions or be in charge.
Tell me about a time… - I love to hear about the personal experiences of interview candidates. What have they really been through and what have they learned? To get at this I often ask Tell me about a time you made an unpopular decision, made a big mistake, managed someone out of the company, etc. Have a few stories ready for this sort of thing. Think of a few “big” issues you have dealt with recently and what you have learned – likely this event can cover no mater what the “tell me about…” opener is. Just be sure you know what the point is you are making. That you learned quickly, that you stand your ground under pressure, that you know how to work cross group into a win-win situation.
Industry Questions – I often ask candidates about the software industry to see how much they are keeping up. Sometimes I ask candidates about the industry around their current role. Here I am looking to understand how deeply they seem to understand the industry. For example, if they are coming from SQL Server, do they talk about the industry around one version of SQL to the next or do they talk about it in terms of Oracle and MySql or do they talk about it in terms of unstructured data storage and how we can mine that in different ways. I also ask candidates about my area.. how much do they understand about the real business they are interviewing for. Clearly they are not experts, but I like to know they have done some level of research and thinking. I also like to push different ideas and see how they react, distill and question.
Technical Questions – I almost always ask technical questions. Say a coding question done on the whiteboard or a how technology X works. My goal here is to see if the candidate can hold their own in a technical conversations. The main thing to do here is to set exceptions well. For example, if honestly you are not a world's best coder, be sure to tell the interview, but go for it done the less. Remember this is more about how you think than what you know. Candidates often freeze up on these sorts of questions. The best thing you can do is relax and think out loud. Even ask the interviewer if you are on the right track or not.. Often they want to help you.
Design a Bahh Questions – Design a ATM for a child or a blender for the blind, etc. These questions are really about trying to see how creatively you can think and, more importantly, how well you can sift through and winnow down your ideas. My advice here is to start with questions – ask a bunch of questions to scope out the space and give you time to get inspired. Get excited about your solution – even as you (and the interviewer) finds holes. This is a great time to show your passionate about your job.
Riddles and Trick Questions – It is true – Microsoft does often ask “why are manhole covers round” sort of questions. I have found the main value here to be on the candidates attitudes. Don’t belittle or doge the question.. again, show you are game and go for it. It is very unlikely that this is a simple pass\fail test, so worry less about the getting the right answer at the end and more about the process of getting there.
Your Questions – I typically end the interview by asking if the candidate has any final questions. This is your last chance to make a good impression. Ask good questions that shows you have done your homework. Does the interviewer see the industry trends the same way you do (or you have read about)? what are they doing about top issues in their product that you know about (or have read about)? How is their cross group interactions? The best questions are the ones that you sincerely have… after all, it is a big bet for you as well.
After the interview
Just like your mom probably taught you it is a good idea to follow up with your interviewer the next day mostly just to say thanks for the interview. The truth is very likely their hire-no hire decision has been made already, so you are not going to change that. But it is a small world, so a good last impression is important. One thing I appreciate is when I am able to get a candidate sufficiently interested in a question that they think about it later. So in the follow up interview you might mention you thought about it more and you have X to add or you solved the coding question and here is the answer. Again, you are very, very unlikely to change the outcome of the interview from this, but it is a nice touch.
What do you think? If you often hire PMs at Microsoft, what would you add? If you have recently been through a loop, would any of this have helped?