I figured out why it has been taking me so long to get to this post.  I think a dev at Microsoft is relatively simple to explain and seems to map to other companies that have this same role.  When it comes to the Program Management (PM) position though, it seems more complicated and I want to do justice in explaining the position.

I have to admit when I originally started writing this, I was going to spend all this time talking about these different positions etc, but to be honest, there are already people at Microsoft who have written about the PM position, and I don’t think I need to reinvent the wheel.  So this post will be different. I am going to provide you with some links to information about the PM position (with a little commentary) and then some information about what we look for as recruiters. 

Defining the position:

Ok. Here we go!  In the simplest terms - PMs help drive product development through designing specifications and product goals, vision, and features.  That’s it - no need to read further, right? Wrong. 

There are many nuances to the PM role.  In my personal opinion I think that it is a hard role to characterize.  We have one title yet people perform many different functions under that umbrella – whether focused on product internals, the user interface or developing communities.  And then if you check out the official information on our career site you’ll see a number of different definitions of this position:

Program managers combine technical expertise with knowledge of customers to design product features and drive them through to completion.

Program managers are customer focused, working to ensure that the products Microsoft produces will delight users and enable them to do their best. Program management is also an opportunity to flex technical muscles: your technical decisions and direction are what drive products and features through to completion.

Working across multiple groups with marketing and sales personnel on the customer end, program managers translate customer requirements into product features and create functional specifications. On the implementation end, they prioritize and deliver on those features, working closely with key technical resources, such as software development, testing, documentation, localization, tech support, and more.

Program managers typically have a software development background. This technical expertise is blended with evangelism, empathy, conflict negotiation skills, and a passion for driving projects through to completion.

Okay – so that doesn’t tell you all that much, right?  I didn’t think so.  If you want more clarity, Chris Prately has a great post on his perspective of the PM position.  It is clear, concise and I think takes you straight to the point.  Chris provides a great overview – history, types of positions and his analysis of decision making as a PM.

If you are a more visual learner, you should check out Mike Deem’s post on PMs.  His nifty diagram gives a good visual perspective.  In addition, he provides some good commentary on what a PM’s worries are – though I am not sure the frowny face does much for the image of the position :-)

I think both of the above posts give a glimpse of the role in general.  What I like about KC Lemson's blog is she gives you a perspective of the position as well as what it is like for her to be a PM at Microsoft.

If you are taking time to read this post and check out the links above you’ll get a good sense of what PMs do, what they have as deliverables and what it is like to be a PM at this company.

What do recruiters look for in a PM?

In my experience, there are a couple of things that I look for when I am trying to hire a PM into the technical groups at Microsoft.  Take note that it is my opinion that these skills are common to most PMs at Microsoft.  I am sure there are instances where not all of these skills apply, however for the positions I have recruited against these are some of the common factors that tend to stand out.  The list below is also pretty basic and I will also look for technology specific experience depending on the team. 

  • Technical skills – These vary by product team at Microsoft, but you have to have strong technical skills for most of the positions I recruit against.  This means being able to understand the algorithmic ideas behind the code and software development fundamentals.  Just to emphasize, not all PMs need to understand how to code, but they really should have a clear grasp of technology/software principles in general.  Still most of the people that I have hired into this role have come from a development background.  They are usually software developers, software managers and leads or architects.  Sometimes these people also have degrees in Computer Science or Computer Engineering as well.  Overall, I am looking for a high level of technical competence in a PM even though they most likely will not be writing code.

  • Project Management – This is just one small skill that I look for when talking with potential PM candidates.  Essentially, I want to know if someone is able to shepherd a project or process from beginning to end.  This may be exhibited by someone using tools and techniques (like Microsoft Project) to ship a software product.  You have to be able to figure out when certain things have to happen by, what resources are going to be used and what happens if you run into roadblocks. 

  • Requirements gathering and analysis – Are you able to gather the information that you need from your stakeholders?  Are you then able to take this information, analyze it and turn it into a specification?  What processes or methodologies do you use to gather requirements?  How do you identify your stakeholder?  These are just some of the questions that I ask to determine if you have this skill set.

  • Working with customers – This is not just working with the customers, but also being dedicated to understanding their requirements and meeting/exceeding their expectations.  You build relationships with the customer, understand their needs and champion them within your team, and use customer information to make product improvements.

  • Communication skills - Two things here.  First you have to be able to speak clearly, concisely and in a way that both technical and non-technical people will understand what you are working on.  You also will have to have some decent written skills as well - we use email a lot to get our work done - so you have to be able to clearly and concisely get your point across in email.  This goes for writing specifications as well – can you take ideas and concepts and turn them into a specification for a developer to code against?  You may also have to present to people within and outside the company.  Strong communication skills to me is being able to know how, when and why to say something and then being able to adapt your message to different audiences as appropriate.

  • Working across groups – The products that we develop often have interdependencies within and outside of a team that you might work on.  You’ll have to be adept at navigating across and between groups to figure out the most efficient way to get things done while making sure efforts are not being duplicated.

  • Decision making – Chris mentions this in his post.  To expand a little further, you should be able to make decisions based on a combination of your knowledge, the business needs, and analysis of the problem.  You’ll often be asked to make tough decisions in situations where you don’t have all the information that you need or under a tight timeline.  You will have to stick with your decision and be able to defend it if needed.

What doesn’t usually make a PM at Microsoft?

  • This could be touchy, but I am just going to go ahead and say it.  We are usually not looking for staight up project managers.  From what I have seen, these people are traditionally focused on making sure the project runs smoothly from beginning to end.  While this is a valuable skill to have it is only one part of a Program Manager position at Microsoft. 

  • The PM role at Microsoft usually requires a high degree of technical skills in a specific area.  So while a PM needs to interact well with marketing and the customers, marketing professionals usually do not have the technical experience required for a PM role.  There is a position at Microsoft called a Product Manager (could there be more positions with PM as an acronym :-).  For more information on this position you should check out Heather’s Marketing blog.

  • Gathering and analyzing requirements are again only portions of the PM responsibility.  Again, PM candidates need to be highly technical and exhibit strong project management skills as well. So we traditionally do not hire pure requirements analysts for the PM position. 

All this said if you happen to have one of the titles above but are performing the other functions of a PM as I have described and have the technical skills we are looking for than you could be considered for a PM position.

Wrapping up:

Program Managers are hard to define, but I think you get a sense of that from what you have seen in this post :)  Overall though, we are looking for technically competent people that have the ability to drive a product from vision to ship.  To give you a better idea of what some PMs do at Microsoft, I have guest bloggers lined up to give you further insight into the position.  Look for their posts in the next few weeks!   

zoë

p.s. Big thanks to Andrew Ash who sent me a ton of useful links about “PMing” at Microsoft!  He did a lot of research on the role in preparation for his interviews which I am using to help me with this post.