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!
As my first post here and before I start posting on technical topics I thought it would be a good idea to give a general sense of what it feels like to work at Microsoft. Of course everyone will have their own unique experience here, so what I have done is to try and highlight things that almost everyone has or will have experienced at some point during their time at Microsoft. Before I start though, let me give a quick background on myself so that it may explain my perspective on things better and don’t forget that these are my personal opinions and should be taken as such.
I was not born in the US. In fact, moving to Redmond meant that I now have lived in eight different countries and have worked with IT in six. So change is something I enjoy, welcome and thrive on. Moving to so many places has definitely enriched my life in more ways than I probably have recognized and Microsoft is a place with constant change (mostly good and sometimes less good). I studied computer science and have worked within various capacities in IT, both hands-on development and management.
After joining Microsoft as a Program Manager (a separate post on that is coming), it became apparent to me very quickly that Microsoft is not like any other place I have worked. To what degree I can attribute these differences to Microsoft vs. the general work culture in the States I guess I am still learning. Nonetheless, what my findings have shown so far is that little of what makes Microsoft different does not necessarily have anything to do with the work culture here in the States and has more to do with Microsoft..
Startup/Small Company Environment
Probably the biggest trademark about Microsoft is that given its sheer size, it operates (and to some degree has to) like a large number of small companies within the corporate borders. This gives it the agility it needs to turn things around and at the same time give each team the independence and flexibility it needs. Of course this has its drawbacks as well such as integrating several teams together might cause mild to severe challenges, but I would say so far it has played to Microsoft's advantage to operate this way. As such, although there are common things across the entire corporation, (e.g. corporate vision, HR & review related matters, the lingo and tech talk etc.), two teams can have a very different culture in terms of people, dynamics, processes and so on and you can never assume things, including what the most basic MS lingo means. For example working on the Windows core team (big team that has been around for a long time with many veterans) would feel very different from a version 1.0 product team that is about to be assembled and do its first release in 6 months. This gives a variety of choices depending on what you want to do and what environment you enjoy working in.
Something else that is fantastic in my eyes and not too many other companies and countries have the same mind frame, is that there is no rank in the sense of how long you have been around here. If you come in fresh and get into a argument with another guy (who has been on the team for 7 years) on how something has to be done, no one really cares that the freshman is up against the old timer. It's what you know that matters and a very good story that illustrates this point can be found here. As a result meritocracy is rewarded and gifted/skilled people will rise to the top. This also comes with a great deal of responsibility because if you are asked to take care of something, it is assumed that you do it to the best of not only your ability but to your team's and ultimately the company's ability and this can be daunting...more on this on my Program Manager post.
The Mother Ship Factor
Having worked a lot with Microsoft software prior to joining, it kind of feels like coming to the mother ship to see how things are done. For so many years Microsoft has been the leader for creating good software, best practices, breaking new fronts and so on and once joined it was impressing to see how solid and well tuned the tools and processes are. Now, there are voices such as Joel Spolsky who believes that despite this (and with Microsoft scoring high on the Joel test), this strength has now partially turned into a weakness (read second page) and the edge Microsoft has had in the past is lost due to it being over tuned. Is it true? I don't know. As mentioned above the company is too big for me to say yay or nay for all teams across Microsoft. I do know that in my current team though this does not hold true at all. I am a strong believer in process and the right amount is vital for success. There are also other perks such as the fact when you are working on a project that is dependent on other products within the company, the contact is a building , a phone call or a lunch away from getting things going. Usually people on other teams are very welcoming and helpful, but of course there are cases when they don't have the time, resources or you are simply not high priority and you have to deal with it. Also, for me who is a bit of tech addict, I certainly consider it a big perk to preview or work with upcoming and latest technologies, sometimes way before the rest of the world gets to see it. This, despite the fact that when working with these bleeding edge technologies, sometimes the emphasis ends up on the bleeding than the edge. :)
Global, People and Diversity
I regularly meet and work with some amazingly smart and humble people here and I enjoy that a lot. Of course there is room for improvement and there are people within the company that I have not seen eye to eye on things and have disliked their attitudes. People are quick to bash Microsoft if they have met someone they didn't like here. It is always very easy to criticize, but the fact is, when the company you are working for has a population of 60,000+ worldwide and you cross paths regularly with many of them chances are you will run into someone you don't gel with. Everyone Most people here have nothing but the best of intentions to do what we are hired for: innovate and help our customers. During this work, clashes happen and there are a lot of strong personalities here. Also, some people's efficiency can come off as being short in the way they ask questions or even rude depending on what culture you come from (I know I got that impression from one of my interviewers). The key is to know that none of this is personal and most actually appreciate this efficiency. Bottom line, I have seen more intelligent people here in any other company I have worked for before and its very fulfilling to work with these people.
I should also mention that working with so many people from so many different backgrounds is an amazing experience. Yesterday for instance we had a team meeting with 9 people present. Out of these 9 there was only one person born in the states, the rest were from 6 different countries (and 4 different continents). I have had the pleasure of experiencing this before when I was serving as a Baha'i volunteer at the Baha'i World Centre in Haifa, Israel and I must say to continue seeing such a diversity at my work environment is an extraordinary experience, one that gives a lot of learning and new perspectives.
Last but not least on this topic, almost anything you work on usually has impact on people beyond just one or few countries. This means in everything you do, you have the world in mind and that gives you a tremendous amount of insights and learning. Not too many other global companies have this on their list. And the result is the work becomes more challenging, but your perspective on everything widens.
Benefits
I don't really need to say too much about this. Microsoft has amazing benefits, some of which you don't even know you are entitled to until you hear about them...here is an overview . Something that I personally deeply appreciate is that Microsoft matches charitable donations whether you donate money or your time to non profits.
Growth
Everyone is encouraged to try different teams and roles within the company and when you think about it, there is really next to no other company out there within IT that offers and provides opportunities for you to work within almost any area you want, from research to hardware to support to architecture and the list goes on. Growth is always on top of my list when I look for a new job and company and the fact that Microsoft has such a organized and systematic approach to develop its employees careers is really impressive. Now, I have also heard from people that say, well what does it matter to stick around with a company that has no innovation left in it. Maybe it is because they only see what they want to see whereas I see a different picture being inside the company and see what is going on, who works here and how they do it; maybe it is because media and others enjoy bashing Microsoft and that is the impression that is left on people, a stale company; or maybe you think I am brainwashed and refuse to see the truth to which I answer that if you knew me better you would really not think that. Nevertheless I couldn't really disagree with this argument more.
Challenges/Downsides/Negatives
Of course like anywhere else you work there are challenges and downsides as well. Since I have outlined a lot of positive aspects I have tried really hard to think of the challenges/negatives as well, simply because I think it is important to be self critical and see where things can be improved. In one word all of these can be attributed to one thing and one thing alone which I covered above: People. That means anything from people's (within and outside of MS) egos, (bad) politics, arrogance, ignorance etc. One challenge would have to be the fact that the second you tell people you work for Microsoft you don't know what their reaction will be. Majority of people I have met have nothing but positive comments while I have also met more than a few people that frown and refer to it as the evil empire or assume that you must be arrogant. There are also people that associate you being a Microsoftee with being the support person for the particular product they have problem with. These are all really not much of negatives all in all, but once in a while it can catch you off guard when someone's attitude changes to a foul one the second they find out you work at Microsoft as if you personify any and every bad experience they have had with Windows or Microsoft.
Working here can also be challenging because of Microsoft's sheer size. A lot of times it can be quite a challenge to find the right person for the answer you are looking for. I guess the comfort is that the answer is always here and after a while you become better at knowing how to find answers to your questions within a constantly changing organization.
The biggest negative though that I have experienced myself and have been told by friends from outside is the arrogance that some Microsoft employees show. Again, I would like to highlight that 99% of the people I have met within MS have been nothing but an absolute pleasure to work with, but I can't deny that there are a few bad apples even here. This can translate in how they deal with coworkers, partners or customers. As an example, a friend of mine who works for another company got involved in a project where they worked on a partnership with both Microsoft and Google to provide the exact same service on Microsoft's and Google's sites. Unfortunately, he had an unpleasant experience with Microsoft in this case simply because the attitude from the Microsoft employees were we-are-the-almighty-Microsoft-and-if-you-suck-up-enough-we-just-might- consider-blessing-you-to-work-with-us. These people usually don't get very far in the long run, but it is sad to see that a few bad apples can have such an effect on the image of the company. I guess that is the constant challenge our HR wrestles with, to find amazingly good people that are balanced Type A personalities (i.e. take out everything that is negative in the link's description) and not just excessive Type As.
Bottom line: Anywhere you work, it comes down to what you want to get out of it and what you wish to focus on. And your view on life (i.e. your personality, shortcomings and goals) will result to a great deal on how you perceive your employer and work environment. I find working here a very enriching experience and would highly recommend it to anyone considering it.