Wednesday, December 14, 2005

The Job of Project Manager

I always believe a real good project manager is not one who always resolves crises, the same reason that a real good developer is not one who knows how to fix his own bugs. The reason is simple: it takes more skill to prevent problem than that to resolve problems.

I think a good project manager is one that make sure everything runs smoothly. For example, all the necessary preparations are done before each meeting and all the action items come out of a meeting are being followed in time and properly. Each of the team member knows what the project vision is, knows how to do his or her own job, and is motivated to do the job.

Sounds too vague huh? I agree. And the reason for this bolg is that I finally have something concrete.

For various reason, we are now having an agile development team with a project manager who is not experienced in an agile project. In China, it is very common to have a project manager with technical background, and it is very common for the project manager to help out the development work rather than managing the project.

In order to help the new PM managing this project (rather than checking out the source code and database schema), I asked for Renee, another ThoughtWorker who were the manager of this team to write down a list of responsibilities. It turns out to be very helpful for everybody. She also directed me to this on-line document (Agile Project Management), which is a good read as well.

The following is the list:

Here is a summary of the key responsibilities of a PM on an Agile project:
  • VISION - Establishing a guiding vision for the project and continuously reinforcing it through works and actions.
  • Ensure the team and client understand the vision.
  • Clear up any questions about the vision.
  • Includes timeline, release planning, scope.
  • TEAMWORK & COLLABORATION - Facilitate collaboration and teamwork through relationships and community.
  • Establish a good relationship with the team and client.
  • The team and client will come to you with issues if they trust you.
  • SIMPLE RULES - Establish and support the teamÂ’s set of guiding practices.
  • Examples include TDD, standups, pair programming, etc..
  • OPEN INFORMATION - Provide open access to information
  • Release plan
  • Story list
  • Progress, velocity
  • Staffing changes
  • LIGHT TOUCH - Apply just enough control to foster emergent order.
  • Demanding control will only cause the team to lose order.
  • Empower team members to do their jobs
  • AGILE VIGILANCE - Constantly monitor and adjust.
  • Hold retrospectives on team progress
An Agile PM needs to be full time on the project. A part-time PM cannot remove obstacles, encourage collaboration, or provide vision. Here are some addition day to day responsibilities:
  • Lead stand-ups
  • Track daily progress
  • Manage release plan
  • Communicate with customer leads
  • Supporting the team and helping the customer to understand project decisions, e.g., why we want to do J2EE without EJB
  • Listening to the developers and team, helping to remove obstacles
  • Risk identification and mitigation