Monday, May 18, 2009

Defining Program Management

I joined Microsoft SQL Server as a Program Manager in January. Before then, my direct PM experience was herding 20 undergraduates into developing a video game for a class, reading parts of "The Art of Project Management", and preparing for the Microsoft interview. In other words, I'm still very new at this.

About the first thing I learned is that the PM role is hard to define (which is part of what makes it fun).

I've heard developers describe their role as "we fix bugs", and testers as "we find bugs". Oversimplified, but, given a broad enough definition of "bugs", mostly accurate. It's harder for PMs. "We write specs" fits the pattern, but no definition of "spec" covers most of what we do. Scott Burken renamed his book "Making Thing Happen", but that's not really concrete. A developer friend suggested "we schedule meetings", which, while funny, isn't very specific.

In an effort to understand and communicate the role, here's a list of what I think it means to be a PM (which, by the way, is a very PM-ish thing to do). The goal is to keep it updated over time, and to track the changes.

What do you think? Anything I should add to or take off the list?

So, what do Program Managers do? I (currently) think

  • We make things easier: for customers, by designing good features; for engineers, by getting stuff out of their way; for managers, by abstracting away the project's day-to-day; for sales, by differentiating and evangelizing.
  • We (try to) understand customers: listen to them, shadow them, think like them, and champion them.
  • We drive consensus: get stakeholders to agree on a vision.
  • We champion the vision: keep the project on-target.
  • We understand the business: how do we differentiate? What's the next big thing?
  • We design the functionality: specify what the feature does, and help developers design how it does it.
  • We project manage: plan the project, track progress, and manage risks.
  • We explain things: communicate between engineering, customer, and business worlds, through presentations and writing.
  • We evangelize: get people excited about the project.

No comments: