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:
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:)