When it comes to managing software development teams, two common titles that often get confused are Program Manager (PM) and Engineering Manager (EM). While both positions involve leading teams of developers, there are important differences between the two roles that are important to understand.
Program Manager
A Program Manager (PM) is responsible for managing a software development project from start to finish. They are responsible for planning and coordinating the various tasks and resources needed to ensure the project is completed on time and within budget. PMs are responsible for creating project plans, defining project scope, managing resources, and communicating progress to stakeholders.
PMs are typically more focused on the business side of the project. They work closely with stakeholders to understand their requirements, prioritize features, and manage expectations. They are responsible for ensuring that the project aligns with the overall business strategy and goals. PMs are often the point of contact between the development team and other departments within the company.
Engineering Manager
An Engineering Manager (EM) is responsible for managing a team of software engineers. They are responsible for hiring, training, and developing their team, as well as ensuring that their team delivers high-quality software on time and within budget. EMs are responsible for setting technical direction and strategy for their team and ensuring that their team has the resources and tools they need to be successful.
EMs are typically more focused on the technical side of the project. They work closely with their team to understand the technical requirements of the project, help their team to identify and overcome technical challenges, and ensure that the team is adhering to best practices and standards.
Differences between PMs and EMs
While PMs and EMs share some responsibilities, there are some key differences between the two roles:
- Focus: PMs are more focused on the business side of the project, while EMs are more focused on the technical side.
- Scope: PMs are responsible for managing the entire project, while EMs are responsible for managing a specific team of developers.
- Responsibilities: PMs are responsible for project planning, stakeholder management, and ensuring that the project aligns with business goals. EMs are responsible for team management, technical direction, and ensuring that their team delivers high-quality software.
- Skill set: PMs require strong leadership, communication, and project management skills. EMs require strong technical skills, as well as the ability to manage and develop a team of developers.
Technical Program Manager’s Handbook (Joshua Alan Teter)
The similarities between a PM, TPM, and PM-T are greater than their differences. The TPM, as a specialized version of the PM, shares the same skill sets and adds technical depth to these. The PM-T shares the same technical depth as the TPM, as well as with regards to organizing and prioritizing a roadmap, but specializes in the product roadmap instead of projects or programs.

Although this diagram is a simplification of all of these roles, it does represent the typical alignments for these roles. The TPM shares a technical depth with both the SDM and PM-T and project management with the SDM. Most SDMs will run projects that are related to their domain or services, though they aren’t expected to be large or too complex from a project management perspective. To this end, they aren’t expected to be able to handle an entire program that lies completely within a PM or TPM’s realm of expertise. The SDM and PM-T can both create a product roadmap, and this is often a gap the SDM will fill when a PM-T is absent. Lastly, the PM-T specializes in product management and shares prioritization skills with the TPM. Simply put, at a pinch, these roles can often cover gaps in the team but given each role has unique skill sets – this would ideally only be short-term.
Technical Program Manager’s Handbook (Joshua Alan Teter)
In summary, Program Managers and Engineering Managers both play critical roles in software development projects, but they have different focuses, scopes, and responsibilities. Understanding the differences between these two roles can help organizations build more effective development teams and ensure that they are delivering high-quality software that meets both business and technical requirements.