views:

245

answers:

6

According to Joel's post, a program manager is responsible for:

  1. Designing UIs
  2. Writing functional specs
  3. Coordinating teams
  4. Serving as the customer advocate, and (jokingly?)
  5. Wearing Banana Republic chinos

I'm curious to know if most software companies have program managers or similar positions that fill the above responsibilities. In my (short) experience, I've only seen this role in larger companies (ie. > 500 employees). Has my experience been unique, or is this the norm? Is it simply that smaller companies can't afford to hire such a person?

A: 

Program manager do UIs? Functional Specs? no.

I've seen them do all the other things though, as well as liaise with customers and suppliers. I'd expect most project/program managers are non-technical.

Now, if smaller companies, they don't tend to have 'roles' like that at all - you're expected to do everything as needed. Its only when companies get larger that they start to specialise in employee's roles, possibly as they try to quantify and "pigeonhole" people in a vague attempt to reduce you to nothing more than an interchangeable cog; a number rather than a free man; a resource to be used.

But otherwise, those tasks you describe have been performed by someone at every company I've ever worked for, even if they weren't titled 'Program manager'.

gbjbaanb
@gbjbaanb Program managers doing UI sounds a little crazy, I'll admit. As for functional specs, I'm curious to know who you think would be better suited to write them.
Krsna
technical architects; technical leads; team leads; senior devs; Now if we were talking about customer requirements, that'd be a different matter.
gbjbaanb
@gbjbaanb I think you might be confusing functional specifications with technical ones. Functional specs are what architects use to create technical specs. They're what the QA team uses to create test plans. And they might also be used by technical writers to create the user manual. Essentially, they document, from the user perspective, all of the features in the software. I wouldn't be surprised if many teams combined technical and functional specs into a single document.
Krsna
+1  A: 

I think that a program manager is really a jack of all trades and is at times doing development work, project management work, and then acting as a business analyst. Its probably not a fair statement to say that all large companies have this role nor is it fair to say that smaller companies wouldn't have this role.

There is way too much focus on job titles.

RSolberg
A: 

Every successful development company has at least one Program Manager, whether large or small. The difference is in the formal title - in a small company, this will be typically be the person with the vision for the product (often the owner).

Somebody always has to be managing the development staff and moving them forward, or the company will fail.

Reed Copsey
A: 

I don't know about most companies, but in the half dozen I've worked for, the PMs typically did no UI design. Team coordination was sometimes done, but was typically delegated to the leads. Maybe they made an org chart with their mad PowerPoint skillz once in awhile, but typically there wasn't a lot of coordination to do.

Most tended to attend a lot of meetings and do things that were not directly related to the actual software we wrote. Mostly virtual paper pushing and bean counting as far as I could tell. Only one was technically adept, honestly, and he was great guy to work with.

I suspect that the necessary functions performed by a PM in a small company are done by others typically. Small companies tend to do the multi-hat thing. I suspect also that the necessary PM functions often don't amount to a full-time job's worth. Just my opinion, though.

itsmatt
A: 

I think the various job titles, Programme Manager, Project Manager, and Business Analyst change from company to company, with a large degree of overlap among some of them.

I wouldn't have thought a Programme Manager would design UI's or writing functional specs. (and have never worked at a company where this is the case).

However I've worked at companies where Project Managers and Business Analysts have done all of those tasks.

In my experience smaller companies have no need for a Programme Manager (There aren't enough projects/people to manage), while larger ones, they're essential.

Bravax
+3  A: 

It definitely varies from company to company, job to job, contract to contract.

My experience with program managers is good. Generally they have you in their interest and want to help for the project's cause. Good program managers make it fun and share responsibility with the rest of the team.

In my experience a good program manager:

  1. Fights for the team's interest.
  2. Shows up for work and actually does work.
  3. Has had a background in programming, not just read about it.
  4. Understands the business rules and business aspects of the program.
  5. Defines naming conventions, style, preferences and timelines.
  6. Does not wear Banana Republic Chinos, but wears flip flops, shorts and hawaiian shirts when not interfacing with customers.

In my experience a bad program manager:

  1. Has never written a line of code or could even understand how to email attachments. (yes they do exist!)
  2. Fights for the accountant's interest and does not care about the development team.
  3. Tries to adhere to impossible timelines, even when developers share concerns about failing.
  4. Has free reign to make bad business decisions, in their own personal interest and not in the company's interest.
  5. Wears a business suit every day, and wants everyone else to join them.
  6. Has schizophrenia and drives his truck into gas stations when his girlfriend talks to the guy behind the counter. (true story)

A good program manager can make life alot easier for a development team. I've had some great ones in the past who are organized, efficient, reliable, friendly and fun. It is not a requirement to have a program manager on a project, but it sure can be a huge benefit.

Devtron
cheers for fixing that! :)
Devtron