I began this write-up a few years ago when I started to get questions from my network about what my program manager (PM) position was like at Microsoft and what skills would help students acquire and succeed in a PM role at a company such as Microsoft. Several coworkers chimed in with edits and additional learning resources, but even so, this is in no way the single definition of program management. One of the coolest and most painful parts about being a PM is that the PM role is incredibly dynamic and can vary greatly by company, industry, and even individual product teams. For instance, much of my day to day has changed this year after I switched focus from the Azure Governance product area to the Azure Resource Manager product area. The main reason was that the two product areas service different customer sets. Azure Governance is strongly focused on the end user, someone who is consuming and managing resources in Azure, while Azure Resource Manager must also service Azure resource providers, who are producing the resources that get consumed, and clients, such as the Azure portal and Azure PowerShell who provide an interface on top of the Azure Resource Manager APIs.
What this boils down to is that there is no cookie cutter recipe. There is no catch-all that will prepare you for any PM role. However, my hope is that, by providing some insight from my experience in the role, I can help students and those looking to enter the PM role to better understand if the role might be a good fit for them and to better prepare for the demands of being a PM.
Feature Program Manager Role Description:
Think of it as being a small-scale CEO. A program manager is responsible for the vision and representation of their project area and is the liaison between the development team and the rest of the world – the customers, the user experience designers, partners, etc. While development often requires a narrow but deep view of an area, program management requires a big-picture, wide-scoped, long-term view. What additions would help customers to better understand and solve their problems? Are the customers’ frustrations pointed directly at the problem, or are their frustrations merely the symptom of a larger problem? How will the industry trends affect the prioritization of development work? How do you influence the team to drive work?
Microsoft has developed three principles to describe leadership: create clarity, generate energy, and deliver success. These principles can be used to summarize the PM role and how to lead by influence.
Create Clarity. You cannot lead if you are not able to clearly define what needs to be done or resolve the ambiguity of the problems your team faces. The customer wants to do X. So what? What does that mean, and what does that translate to in engineering terms? Without clarity, your team will deliver the wrong functionality. This hurts every aspect of the product, including its perception by customers and the morale of the team.
Generate Energy. How do you motivate the team to deliver? Customer anecdotes and hard data can be more powerful than any pep speech for team morale. How will they be helping the customer? Or even more powerfully, how have they already helped the customer? How does this work impact the team’s or company’s strategy? The team relies on the PM to be their tether to their consumers. If you are not able to share this impact and how the customers are using the features, you are letting the team function in the dark, which inevitably impacts their ability to deliver and their passion for the work they are building.
Deliver Success. If you create clarity on a problem, providing a clear path to address it, and then generate energy within the team to tackle the problem, success generally follows in some shape or form. Innovation always comes with risks, but if you are staying focused on the customers pain points and participating in continuous discussions with all involved parties, you will pursue the right outcomes. Even if the product does meet its goals, following these practices will strengthen the team and your muscles as a PM.
The Necessary Skills:
The PM role is interesting in that if you come from a technical background you most likely have the technical basis you need to succeed. However, you can still excel in the role by having the most crucial aspect of the technical background: the ability to learn technology. In the technical PM role, you need the ability to ramp up on core technological concepts and to learn the ins and outs of a given technical area.
The make or break skills beyond that are interpersonal skills: communication and prioritization.
You must understand how to communicate with different types of people. How would you explain a problem to people with different societal or technical backgrounds? Some people respond better to examples or stories and others may respond better to hard data. This is crucial for explaining scenarios to the engineers, writing specs, and uncovering the core problems in customer discussions. PM’s do not lead through authority, but instead lead through influence. Without authority, how do you motivate the team to invest resources to address a given scenario? Why does this scenario matter and need to be addressed, and what does success look like? Who will be impacted by the scenario being developed?
Once you are confident in what scenario you need to address, you should be able to break down that scenario into tasks and categorize those tasks. What’s needed for basic completion of the scenario? What additionally will be required to provide a positive experience? And what is a good-to-have but wouldn’t necessarily impact whether the scenario is met? Along those lines, it is crucial to understand that you will most likely not be able to complete all the tasks you wanted and that you must draw a line to reduce scope creep. It will never be “perfect”, and you will almost always be able to find another task that could make the product better. Where do you then draw the line? How do you decide what will and won’t be done?
Beyond optimizing the work for others, you also need to prioritize the work for yourself. You must be able to handle ambiguity and be able to self-direct. In college, and many jobs (including entry-level engineering or development), you are given tasks to complete and material to learn. The PM role is less about the completion of tasks and more about optimizing yourself in various ways to direct the engineering process. With a never-ending list of tasks you could be doing at a given moment, which has the highest priority or needs to be done at that time in order to be impactful?
The best way to develop these skills is to put yourself in situations where you need to communicate with others, prioritize, and make critical decisions. Getting involved with and taking leadership positions in clubs, societies, and organizations (in or out of college) can be extremely beneficial in honing these skills. Undergraduate/graduate research and personal/team projects, especially unstructured or self-directed, can also be a good opportunity to develop these skills. Similarly, communication skills such as public speaking, presentation building, and technical writing are crucial. There are organizations, such as Toastmasters, that focus on helping people advance their communication skills and provide opportunities for their members to speak publicly.