A couple of folks asked me to write about this and provide my thoughts into what it takes to be a Program Manager (PM) at Microsoft. If you search over the internet you will actually find tons of answers and tons of suggestions from great Program Managers. But there was one thing that I found missing in the posts that I found online and hopefully this post can help fill that gap.

Firstly it is important to realize that a PM @ Microsoft is different from being a Project Manager - the earlier you understand this notion the better :) A PM is specific to an engineering disciple just live development and testing is. Project Manager on the other hand is someone who co-ordinates and manages the project, creates MS project schedules, takes meeting notes, coordinates schedules with various folks, works on the SDLC process, runs retrospective meetings, etc etc. PM is a unique roll since it comes in many flavours.

A lot of folks would tell you that a PM has to have experience, vision, outgoing etc. That set of competencies can be applied to most jobs these days especially when you look at marketing, project management, senior leadership. What makes a PM unique is his/her ability to take a vision and make it a reality. For example, take Windows 7 as an example - there was a top level vision that was created on how Windows 7 should look like, how it should feel like, how it should be differerent from the competition. All these input points are given to the PM disciplines. They then have to takes these input points (and believe me there are thousands of these) and make some sense out of it and then determine the top level features that would make sense for the customer. They then take each of these top level features and break them down into more detailed feature spec - this spec needs to contain exact details on how will the interact with the UX, what happens in the backend, what response would the user get, etc. Now depending on your strengths you can be become a PM in various capacities - you may be fairly technical in which case you will end up writing a lot of backend feature specs. If you love doing UX then you may become a PM dedicated to working with the UX designer/researcher and coming up with UX specs. You could also be very good at understand partner needs and talking to various different partners, like the OEMs, in which case you may become a Partner PM dedicated to managing your partner needs and wants.

So all in all what does a PM need to have as set of competencies:

  1. Thought leadership - it is true that the senior leadership team guides the top level features, themes critical investment areas but no-one knows the product like you do. So it is upto you to find the gaps and areas where you think it would make most sense to spend time and money and bring it to your manager or senior leadership. 
  2. Persuasive powers - you better know how to talk to various folks and bring them onboard with your idea. If you think you can just come up with something and then have 20 people in a room agree with you - it is not going to happen. That's why you need to build 1:1 relationships with folks and get their opinion before you go deciding on things.
  3. Confidence - you need to have the confidence of supporting your arguments and asking questions when you don't understand something
  4. Patience - you will need a lot of this because you need to explain to folks (multiple times) why a certain feature will help the customers and why you are recommending a major design change - remember people are reluctant to change:)
  5. Technical writing skills - remember the spec that you write is what a developer and a tester ends up coding and testing, respectively. The quality of the spec determines how good a design a developer comes up with. So you have to think from various mindsets...that of a developer, tester and end user to come up with the details on the specs - so you better like writing specs:)

There are a bunch of other competencies from cross-group collaboration, project management, enterpreneurial zeal, etc  and each one adds to your ability to become a great PM @ Microsoft.

Just like everything else a core you need to love what you do and if creating something new and challenging everyday excites you then definitely PM @ Microsoft is the position to be in. That is one thing I realized after coming to Microsoft - as a friend of mine from Exchange team says, Microsoft empowers you. You have tons of resources available to have your dream come true...and no-one is going to stand-up and say that what your're recommending is stupid or doesn't make sense unless you're completely off the chart! The other spectrum of it is that you have great responsibility since one decision on your end impacts the computer experience millions of customers have on a daily basis. I'm in the Windows Update team - trust me I know:)

Thats about it for now...get your thinking cap on...and if you are someone that thinks outside the box and is an implementer then you might have found out your next best job:)