A project manager is someone with responsibility for guiding and empowering a project team through the entire life of a project. In most industries, project managers are professionals who have developed expertise in the field, often by working on projects, and have moved into a management role over time. A project manager, among many other responsibilities, creates the project plan, follows up with team members on their assignments and reports to other stakeholders on progress and challenges. Project managers may even perform project tasks and produce deliverables, but in most cases, they are a step removed from those responsibilities.
Product managers are responsible for guiding the design, development and production of one or more products. The product manager role usually involves evaluating customer needs, creating a design that will address those needs and working with the teams who actually build the product to ensure that it meets the intended goal. In the software industry, a product manager usually does not need to be an expert programmer, but needs to understand the software development process and be able to synthesize that knowledge with an understanding of the marketplace. In other industries, the product itself might be a physical object or a service rather than a collection of code, but the job description can still be quite similar.
The program manager position tends to be highly variable from industry to industry, or even between companies in the same industry. Many organizations group their projects together in programs, which in turn are part of an organization’s overall portfolio of projects. A program is often closely linked with a single organizational goal, and generally consists of multiple interrelated projects. In these organizations, a program manager’s role is essentially a higher-level variation of a project manager’s role, with fewer tactical or administrative tasks, but with responsibility for the success of the program as a whole.
Some software companies, however, have an entirely different definition of a program manager. Here, the distinction is made between product manager vs. program manager, rather than project manager vs. program manager. Companies with this approach tend to view a program manager as a more technically-focused counterpart of the product manager, with responsibility for guiding the creation of the actual code that will form the solution.