What does a Program Manager at Microsoft do?
And you probably do remember the scene where the two consultants, both named Bob, interview Tom. This is kind of how the conversation goes:
1st Bob: What you do at Initech is you take the specifications from the customer and bring them down to the software engineers?
Tom: Yes, yes that's right.
2nd Bob: Well then I just have to ask why can't the customers take them directly to the software people?
Tom: Well, I'll tell you why... because... engineers are not good at dealing with customers....
1st Bob: So you physically take the specs from the customer?
Tom: Well.. No. My secretary does that... or they're faxed.
2nd Bob: So then you must physically bring them to the software people?
Tom: Well.. No. ah sometimes.
1st Bob: What would you say you do here?
Tom: Look I already told you, I deal with the god damn customers so the engineers don't have to. I have people skills! I am good at dealing with people, can't you understand that? What the hell is wrong with you people?!
Now, I don't have a secretary; but other than that, with slight variations from team to team, the above comes pretty close to describing what Program Managers like me do. Microsoft follows the "feature team" model. They hire a bunch of smart people, group them into feature teams, give them something to do and let them loose. A typical feature team comprises program managers, development engineers, test engineers and technical writers. PMs here are feature owners and they engage with customers and partner teams, write functional and technical specifications, plan schedules and are overall in charge of getting features done. Most times this involves making sure features are prioritized, decisions are made and fulfilled, bugs are triaged, assigned and resolved.
There's more to the job than that. In future posts I will try to address other aspects of the job.