Background 

I was a dev and a dev lead for a few years and although I still enjoyed doing it, I felt that the entire range of my skills were not being fully utilized. What were these skills you may ask that made me think I was too good to be a developer? It's really not the case at all, if anything, although I was a decent dev, I would never be among the star devs. Nonetheless, it really was the fact that I felt I had a lot more to give and gain in other areas given the combination of my technical, interpersonal and life experiences  (e.g. living & working with/in different countries, cultures and personalities).

This is when I started becoming curious about the Program Management role at Microsoft. At first I figured a Program Manager is a fancy and glorified name for a Project Manager. So I started to investigate this and was having a very hard time to pin this role down in terms of responsibilities. Every blog, job description or site I would visit would say something different from the previous one and this did not make it any easier. So with this post I will try and give you readers who are in the same position I was in, a clear and consice explanation of what a Program Manager here at Microsoft does. Correction. not does. Because of the very nature of the role I won't be able to give a generic description of what a PM does. Rather I will focus on what is required to be a successful PM here at Microsoft and this will hold true, I dare to say, for all PMs positions across Microsoft (in engineering and IT).

Before I get into the PM role though, I see four core competencies that are absolute must haves for any role, discipline and position within Microsoft. These being:

  • Confidence - includes knowing your stuff inside out
  • Impact and Influence - If you can't have any impact and influence in the work, it probably is a good sign that you are not a good fit for the job or your position should not exist.
  • Cross-group collaboration - Whether you like it or not sooner or later everybody here has to do some of this and you better be good at it.
  • Interpersonal awareness
  • (also goes without saying: be smart and get things done)
     

What is a Program Manager? 

Now, the classical definition of Program Management is "process of managing multiple ongoing inter-dependent projects.", which does not necessarily/always apply here at Microsoft. Of course every PM position has its own required set of skills, and what I am about to give is pretty much a consolidated view on all of these. As a reference, I highly encourage you to read the post that one of the senior VPs, Steven Sinofsky has written explaining what it means to be a Program Manager. Let me also preface the post with saying that at the heart of the PM role you fill the space that no one else can, has the time or wants to fill which means you have to be jack of all trades (and master of all) really. Hence the PM role is very demanding but also very fulfilling and rewarding as you get exposure to an array of situations and things you never expected.

Also, the title can be deceiving. While the title has both the word 'Program' and 'Manager', at least one of them don't really apply in the classic sense in many cases. Let me tell you a story. After concluding a business trip in India, and being a Baha'i I was going to Israel for a quick visit there. If you have flown to Israel with the Israeli airlines El Al you know how the security works. If not, suffice it to say that the security is by far the most rigorous one among airlines and with my middle eastern background I usually get a 45 minutes interview each leg of the trip with their security personnel and then get escorted to my seat, not to mention that they go through each item individually in my baggage and inspect it thoroughly. Having said that though, they are also the most professional staff amongst airlines in my opinion and not once have I felt frustrated despite these extreme security measures. Moving on, this time the girl interviewing me was new and kept asking a lot  of questions, some of them less intelligent. Once she started asking about my job and I told her about it, she started questioning what kind of manager I was since I had told her I have no direct reports. The point I am trying to make is that as a PM you have no given authority which means no one has to listen to you even if you scream or cry and despite this it's your neck on the line for the final deliverables. What you have to do is to work on gaining a perceived authority which does not come easy and can be lost very quickly. In a way you have to prove yourself and gain others' respect so that they listen to you and let you bring everyone together.

To be a successful PM, there are three main areas you need to be skilled in and the particular PM role will dictate which of these three areas you need more/less strength in. 98% of the PMs in engineering and IT are:

  • Technical - Includes anything from understanding architecture, writing sample code to know what technologies to utilize etc.
  • Project Managers - Be able to deliver a project on time and on budget.
  • Strong in Design Sensibility - Be the voice and advocate of the customer at all times and at the same time be able to work with all disciplines to make things happen.

Note that I didn't rank them in any order. Like I said some PM roles will require that you are extremely good at Project Management and Technical Skills but can be just good in design sensibility. Or the other way around. Further, if you break these three areas into particular skills needed it would be:

  • Communication - Both with your devs & testers as well as your manager, his manager and so on.
  • Negotiation - Across disciplines (dev, test etc) as well across teams other than your own. It can also be with partners and vendors.
  • Motivator - You can only be one if you have perceived authority.
  • Visionary - Goes back being the voice and advocator of the customer
  • Problem Solver/Unblocker - This really could mean any type of problems. Again, you are there to fill in the space that no one else has the time or wants to fill.
  • Networking - The bigger network you have, the more likely you are to unblock issues and get things moving/done.
  • Good listener - If you are not a good listener, you won't be good at the other skills above.
  • Leadership - Although you can develop this over time, you certainly need to have a good deal of it to begin with.
  • Interpersonal Awareness (core competency for everyone) - Includes things like: how does each team member like to be contacted/spoken to, how do they like to receive feedback, how/when do they like help?
  • Cross team collaboration (core competency for everyone, see above)
  • Ability to anticipate future events - It may sound funny, but yes a good PM can anticipate changes, be it organizational , financial, competition, team dynamics and so on and prepare accordingly. It's all about being in tune with things.

Now lets look at some of the tasks a PM can be blessed with:

  • Relationship building and management - This includes within your own team, cross teams (other product teams, marketing, legal etc), user community, developer community, customers, partners etc.
  • Escalation -
  • Spec writing - Anything we build here includes a spec of some sort.
  • Vendor Management - A lot of time you will need to work with vendors for specific tasks and hence, you will need to be able to hire, negotiate and simply put handle all aspects of the deal. You have other groups who can help you with some details but ultimately you drive it.
  • Prioritization - At all times we are under time pressure of varying degree and this means prioritizing the work together with the rest of the team.
  • Delegate - This goes hand in hand with having a perceived authority. I personally like to lead with example, so when I delegate anything its either because I am doing part of that job myself or it simply is not my job to do that particular task (e.g. code full time)
  • Technical Leadership - As a PM a lot of times you need to take a leadership role and be able to come up with solution and suggestions for your team.
  • Intellectual Property - As your team innovates, you need to be able to handle the IP work that comes up so that the innovations are protected by law.
  • Face of the team - This can in the context of working with other teams, media, customers, conferences etc.
  • Conflict Resolution - Since you are to be glue that ties the team together, and given you have smart and passionate people working together, clashes are inevitable and in my opinion necessary for the end result to be of good quality. Sometimes though clashes escalate to conflict and as a PM you will need to able to help resolve it. Once again, the much need perceived authority is a key component for how successful you will be in this area.
  • Budgeting
  • Mentoring - depending on your seniority you can always make yourself available to help others.
  • (Reviews - If you work as a lead PM and manage other PMs under you)
Of course, very few people fully master all of these skills from day one, the idea really is though that you have the fundemental competencies to be able to deal with these stuff as you are faced with them. I could write a lot more, but the above in a nutshell is what it means to be PM here. Are you up for it? If so, you should apply!