Recently one of the developers on my team asked what the difference was between a program manager and a product manager at Microsoft. It seemed to him that the roles were redundant. Before answering I answered, I suggested we look up both job descriptions at the Microsoft Career site. This is what we found
Product Management @ Microsoft: Product Managers help chart the course of those new products and services as they emerge. They work with the development team to determine product functionality, strategize product positioning, and drive the product launch. After introduction, the Product Management team monitors customer and partner response to the products and refines product strategy to ensure the best possible user experience.
Program Management @ Microsoft: Working across multiple groups with marketing and sales personnel on
the customer end, program managers translate customer requirements into
product features and create functional specifications. On the
implementation end, they prioritize and deliver on those features,
working closely with key technical resources, such as software development,
tech support, and more.
Product Management tends to be about answering questions such as why a product should be built and what features should be added to existing products. Program Management is more about answering questions such as when features should be delivered and how they should be exposed to customers. Depending on the division at Microsoft program managers may have more or less influence than product managers on answering the questions about what features are built.
Here are some examples from my day job that highlights the difference between the job roles. Product Management answers questions like what are the most popular MSN Spaces or MSN Messenger features in the U.S., UK & China and who are the top competitors in each market. Similarly, product management may also answer questions like 'what is the financial impact of focusing the next release of MSN Spaces to be more competitive with photo sharing sites like Flickr versus making it more competitive with social networking sites like MySpace. Program managers work on actually designing the software that ends up being built based on input from product management. There are User Experience (UX) PMs who work on the actual user interface design and the workflow of how features should work and then there are platform PMs [like me] who work on what the logical schema for various concepts in the application should be and design the APIs through which various front end & back end systems can interact with the feature(s).
In Windows Live we also have a difference between Product Planner and Product Manager. I actually have no insight into what the difference in job roles is here and wouldn't mind some education of my own.