views:

203

answers:

4

As a professional programmer I work daily with a species known as the "PM". While they usually go by that common acronym, it seems there are actually several discrete varieties: product managers, project managers, and program managers. There may be other species yet undiscovered. Through years of close observation and study, the subtleties of their differentiation elude me. I have only been able to determine their common responsibly: to communicate to me, the programmer, in the vaguest possible terms, what it is they think they want built. I then tell them, in the vaguest possible terms, when I think it will be delivered, and they go away.

So my question for the stackoverflow crowdsourcing juggernaut is this: please explain the differences between the product managers, project managers, and program managers. Please do so with out waving your hands, as I can not see them, and it doesn't help anyway.

A: 

I read in the book (the title eludes me, but it has "Management Anti-Patterns" somewhere in it) that PM are usually developers elevated to a manager role, but who has no idea how to manage. And still developers want that role because that is one step up the hierarchy (and a higher pay bracket).

A good developer does not necessary means a good manager, and once you become manager, you got pressures coming from your peers and from the top, and some cannot cope with it. Some companies are 'enlightened' enough to develop a separate career track for developers and have their pay match those of the managers.

I'm sure you come across one of the more introvert species of PM. The last time I was in a mock PM situation (it's a software engineering module which we have to do paperwork, like SCRUM) I was chasing my team-members for updates every week and doing code reviews. So that's one perspective for you.

Extrakun
+8  A: 

I'll attempt to explain them as I've worked with them. Please do understand that the definitions can be murky and change from organization to organization.

Project Manager: Responsible for coordinating the schedule of the project within the engineering. This should be the one single person that management can go to in order to know the current status of the committed work for a given release. This person is typically hip deep in spreadsheets, Gantt charts and status meetings.

Product Manager: Responsible for the deciding which user-visible features will be on the plate for consideration in a given release. This person should be well versed in what the customer is attempting to use the software for and be able to act as a developer's resource for understanding what to build from a functionality point of view.

Program Manager: Essentially a project manager responsible for coordinating the release across the different disciplines in a company. This is the person who makes sure that marketing has the press release ready at the same time as engineering is ready to ship and that sales have been trained on the product.

These are how the last couple of companies I have worked for have defined the roles, but you will certainly see many variations.

Chris Boran
+2  A: 

Project Manager a person responsible for managing project, specifically its scope, quality of deliverables, deadlines, time spent, and budget. PM bears responsibility for all project deliverables. See my other answer for a drill down on PM responsibilities. On small projects PM wears multiple hats, but during bigger ventures may have others to help her (or him), such auxiliary jobs might carry the titles of:

  • Project Co-ordinator is someone who co-ordinates project work between various parties involved and individual stakeholders.

  • Project Administrator keeps reporting up to date, including project status, does all kinds of other administrative tasks.

  • Project Expeditor does exactly what the title says: chases everyone up, removes obstacles from the project team’s path and makes sure there is always steady progress.

Product Manager takes responsibility for a product and full product lifecycle. The products are normally created and evolved through a series of projects. The relationship between products and projects is many-to-many. A single project may contribute to many products’ evolution and a single product requires several projects to keep carrying it from one lifecycle stage to another. It’s also important that product lifecycle constitutes a series of states (such as “shipping the product” or “supporting the product”) that are usually carried on as processes and state changes done as projects. Read on the difference between a project and a process.

Program Manager manages a series of interdependent projects aimed towards a common end. Some of the projects are executed in parallel, some sequentially. Program Management is fairly similar to project management, where individual tasks are replaced by entire projects. Think in terms of the space exploration program.

Obviously these titles are not set in stone and companies would often attribute a somewhat different meaning or completely redefine them. The definitions I’ve given are generally accepted within the management community.

Totophil
A: 

Rather than focussing on subjective definitions of each of these roles (yes, they are subjective and you’ll get 10 different answers from 10 different people), I would focus more on the task responsibilities of the individuals. A tool to help you with this is a RACI matrix (aka responsbility assignment matrix) which makes it clear who is responsible and accountable for activities.

This industry will go on creating new “manager” titles forever and a day. As far as I’m concerned, just tell me what they actually do upfront in the project then we’ll refer back to that whenever there is ambiguity.

Troy Hunt
BTW, I think it's Responsibility Assignment Matrix instead of reasonability assignment matrix.
pencilslate
Of course it is - my spell check just didn't know that :)
Troy Hunt