Anatomy of a Software Development Role: Project Manager
The Project Management role is the first role in the software development process that isn't on the main line. The project manager isn't a person doing "real work." The project management role is one that is designed to help ensure that the software development process works as it is intended. The project management role works closely with the development management role in order to facilitate, encourage and prioritize the process.
The project management role is perhaps the most clearly defined role within the software development process due to the development of project management as a profession. (If you've not been following the series, you might want to read Cracking the Code: Breaking Down the Software Development Roles.)
While the software industry is nascent, the project management industry is enjoying the advancement of a powerful organization in the Project Management Institute . They have assembled a guide to the body of knowledge for the project management profession that is often referred to as the PMBOK Guide. This organization has developed a widely recognized certification, Project Management Professional (PMP), which has both practical experience requirements as well as traditional testing requirements.
What's the Project Manager role?
The PMI's PMBOK Guide defines the project management role via definition of a project manager by defining what project management itself is. Their definition is:
"Project management is the application of knowledge, skills, tools and techniques to project activities to meet project requirements. Project management is accomplished through the application and integration of the project management processes of initiating, planning, executing, monitoring and controlling, and closing. The project manager is the person responsible for accomplishing the project objectives."
You can go to the PMI website (pmi.org) to download sample content from the PMBOK Guide, buy a copy of the guide, or sign up to become a PMI member.
Within the context of the software development process the project management role is responsible for driving the work through the process and to completion. Starting with the earliest requirements discovery sessions and ending after the training has been completed, the project manager is the one role that should be consistent throughout. Project managers work with both the development team and with business stakeholders to ensure that what is being built will match what the customer expects and that this development occurs within the expected time frame. Click here to see how the Project Manager role fits within the full organizational chart.
In that the project manager is often intimately involved with the business stakeholders they are often working closely with the functional analyst during the early stages of a project. The functional analyst is focused on getting the details of what the system must do and the project manager is focused on determining what the success criteria are and helping to educate the stakeholders about how the process works.
The project management role is generally responsible for status reports, which are frankly more tools about instilling a sense of urgency and demanding definite answers than they are a process for generating reports. They expose resource and scheduling issues as well as provide a communications vehicle for issues as they begin to occur. The project management role is typically spreads across several projects and potentially development teams. The project manager is frequently working on more than one project at one time - unlike many of the other roles in the project who may be dedicated. The project manager need not be an IT specialist, although this is helpful. The nature of their role is to provide broad based oversight.
In the software development process, the project manager is one part prodding and one part smoothing over problems in the process. They're there to make sure that the process goes forward and they use a variety of processes, meetings, and documents (artifacts) to ensure continued forward progress and to identify problems as soon as possible.
The project management role must be capable of executing details with regular consistency. They must also be able to take a step back from those details to look at the big picture to evaluate things like risk and the accuracy of time estimates. All of this takes a measure of restraint and good listening skills. The restraint prevents the project manager from jumping in before it's time and the listening helps to ensure that the real problem is eventually understood - and can be disseminated to everyone.
Project managers are the keepers of the process. Whatever the process is they're responsible for making sure that it executes well. In some organizations this includes the software development methodology. The project manager is the one that makes sure that the process is adhered to so they can get the predictable results they desire.
Getting Started as a Project Manager
Being a project manager more often happens out of necessity than it does out of design. More often than not the project manager becomes a project manager because they see and understand the challenges that are being faced by the software development team and believe that they have the ability to help prevent them. This is the spark that generates an interest in taking a project management path.
One of the paths that can lead to the project management role is the functional analyst. The functional analyst bridges the gap between the business and the software development team. This is a critical skill for the project manager as well. The other skills, such as being able to generate the status reporting and communications, are necessary to maintain control of the project but they can be taught and learned with some coaching.
The project management role is one that is sometimes split into senior project managers and junior project managers. This allows the more senior staff to work on larger, more mission critical tasks, while monitoring the smaller projects through junior staff. If your organization has a project management mentoring process with junior and senior project managers getting started is best handled by approaching a senior project manager and asking what you can do to help. If no such structure exists within your organization then you'll just have to volunteer for tasks that are traditionally project management focused such as taking meeting notes and circulating them to verify consensus.
The preparation that you should do to become a project manager includes reading the Project Management Guide to the body of knowledge (PMBOK) as well as developing your own set of templates and processes which can be leveraged in the management of a process. Templates such as a project charter, which indicate an overall vision for the project and an agreement to get started, are a standard tool that should become second nature to you.
Ultimately getting into a project management role can be easy, in the case where no one is really filling that role or where there's a structured mentoring process, or it can be difficult where there are strong people leading the role of project management but who do not have a mentoring structure in place. If project management is important, you may need to prepare by reading the appropriate material and developing the appropriate templates and then make a change that allows you to try out your new learning.
Occasionally, getting started as a project manager is done completely by accident. A solution architect, development lead, or developer gets noticed for adherence to process or the desire to move the project forward and are encouraged to seek the position. This can be a problem for those who still want their hands on the code.