This blog is about developing Windows applications using Visual Studio. All postings on this weblog are provided "AS IS" with no warranties, and confer no rights. Use of any samples are subject to the terms specified at http://www.microsoft.com/info/cpyright.htm
Your host Nikola Dudar is a Program Manager in Windows division of Microsoft Corporation. He has been working on Windows Web Services API during Windows 7 and various additions to Visual C++ during VS2005 and VS2008. More details are in LinkedIn profile under Nikola's formal name Mykola Dudar.
If you are interested in program management and project management, check out my other blog at http://www.pmsnack.com/ where I collect best practices and other topics interesting to program and project managers.
To send feedback, comments or requests for new posts, please use the contact form.
Recently several external people have asked me what Program Manager in Microsoft do and what I do. And I have decided to put one post on my blog with answers to both questions. Let's start with discussing what Program Manager within Microsoft actually is and what it does and then briefly talk about me specifically. First of all, based on my experience of talking to PMs in Microsoft, if you ask 10 PMs what they are suppose to do, you are most likely getting 10 different answers. However there are common patterns which together form a picture of this position. I have started with searching web for any previous discussions. And there are several interesting posts already on the web that talk about PM in Microsoft in details.
Most referenced post is from Steven Sinofsky's Microsoft TechTalk named PM at Microsoft from 2005/12/16. It is long read with a primary focus on "Technical PM" role. Feel free to read it all, but to summary, here are key takeaways:
Now Steven Sinofsky's post is not the only one that talks about PM in Microsoft. There are several others, I am listing them below.
Speaking of my job specifically, description of a PM job in Steven's post is very close to what I do. Both in Visual C++ and here in Windows Core Networking, I am a technical PM working with a group of developers and testers on a part of the bigger product. It used to be Visual Studio now Windows. My time is spent between the 4 phases outlined by Steven. Sometimes I am more focused on a particular phase such as learning or planning. I talk to customers and partners on regular bases. Learn about their problems and work with my team on finding solutions. In VC Libraries, I used to own all functional specifications and design documents for features in the product. In my new team, I own the functional spec and only reviewer of design document and other documents. This is expected considering that I am relatively new person to the team and climbing learning curve on details surrounding technology in this product. I do manage the schedule, any changes to the schedule and scope, and track progress on schedule and scope completion. Hopefully sometime soon my team can start talking about features we are building to external customers. At that time I will shift focus to building presentation and demos for conference and meetings with external customers. Until then, we are in "refine" stage of the product cycle and this is what I do on daily basis.
At this point I feel I have answered both questions. Hopefully the answers are complete. Let me know otherwise. As I find anything else to add, I will just add it to here.
PingBack from http://msdnrss.thecoderblogs.com/2007/12/20/what-program-manager-in-microsoft-does-and-what-i-do-as-pm-in-microsoft/
Could you compare this work setting with Google where there are no program manager roles and the roles of developer, tester and program manager are taken up by the same team and the evaluation is perer-based? Isn't it nice for someone to be able to rotate at will between the different roles, program manager and developer?
I felt this was an interesting blog posting as this helps clear up some Microsoft terminology. My understanding
It is interesting of you to mention that Google does not have Program Manager. You may know more than I do about how Google works inside because I have never worked in Google. Browsing Google Jobs site right this moment, I see several Program and Project Manager openings within Engineering in Mountain View campus. They seem to have same description of the role and key responsibilities that I see for PM position in Microsoft. For example, I have just randomly picked one Engineering Project Management position on Google Jobs site. Let’s just check job description.
- "As a Project Manager you will be responsible for managing, monitoring and coordinating regular software releases"
[from Nikola] This is what I would expect a PM in Microsoft do in an engineering team.
- "You will provide a single point of contact for releases and keep the cross-functional launch team on task and target."
[from Nikola] Same in Microsoft. This is scope management, schedule management and change control. All three task of a PM within Microsoft.
- "You will also be responsible for special projects within the engineering area, driving projects to completion and helping to document decisions and progress."
[from Nikola] The key part is “within the engineering area”. In pure sense, a Project Manager may handle projects in different areas. Here it is assumed that PM is assigned to a specific engineering area and drives many projects within this area. This is basically description of what Program Manager assigned to a specific engineering area does.
Finally, Key Responsibilities from Google opening are almost exact match of Key Responsibilities from PM opening in Microsoft.
It looks to me that there are PMs in Google, perhaps not all teams. But there are teams in Microsoft that do not have PMs too. If project is small, usually team of 4-5 individuals can manage themselves relatively well and split responsibilities of a PM among themselves. However if you look closer on how this team operates, you can always identify one individual that controls scope of what this team works on and argues for “doing the right thing”. This individual is playing a PM role in that group even if she does not have a title of a PM. When project grows to ~10 people, usually amount of work for handling scope and changes and communication is too much for an individual engineer. And in this case team would have to find a dedicated person who focuses whole 100% of her time on managing the project.
To summary, as far I see it, Google just uses the name of the title (Project Manager) to stresses the project management responsibilities of this position. It seems to me that successful completion of project is priority 1 responsibility of the PM in Google. I wish I knew a PM from Google who may confirm or reject that. However successful completion of projects and products is key responsibility of a Program Manager in Microsoft too. In addition to project management, Program Manager is also expected to drive strategic vision for this area and actively participate in forming design of the product. I am not sure if Project Managers in Google are asked the same. But aside of this fact, I personally see a very close match between these two corporations in describing role of a PM in engineering.