Picture this: You’ve come up with a vision for a new line of business or an enhancement to your existing business that will involve a software development project. You’ve got sign off, executive sponsorship, and funding. Congratulations! Now it’s time to start building a team to deliver on your vision.
What will the team look like? You may require a few different roles, depending on project size, such as architect or technical lead, but this is a software project—you’ll need developers to actually transform your vision into code.
Naturally, one of your primary concerns will be ensuring that the team can execute as efficiently as possible. After all, on time and under budget is always a good look. If the development team isn’t executing efficiently, the project isn’t executing efficiently.
That’s where a good project manager (PM) comes in. I’ve been involved as a developer in many software projects throughout my career. I’ve seen what works and what doesn’t—what keeps developers happy and moving fast, and what kills morale and grinds their progress to a halt. I can definitively say that software development teams that include a good project manager are more effective than those without one.
A good PM promotes efficiencies, integrates the business aspects of the process, and cultivates environments for optimal performance. In a recent retrospective, we compared the total number of story points closed on a project during a six-month period without a PM to those closed during a six-month period when there was a PM. With a PM on the project, developers were able to focus on technical issues by not having to plan schedules, create sprints, lead meetings, or spend time managing logistical concerns. With a PM, story points were closed 119% faster than without a PM—that’s more than double the effectiveness rate!
But there’s more than quantitative evidence to recommend a good PM. There’s the real benefit to the real people whose lives they make much easier. Here’s why I say, as a software developer, that you should include a project manager on your team:
1. The project manager promotes efficiencies in every aspect of the project
The PM is dedicated to the concerns that keep the project moving on time and on budget. From their vantage point, seeing all of the parts working together, they keep an eye on the financial picture, performance measurement, risk management, and communication. This is a lot of work, and not the kind that I enjoy. While I focus on architecture, API design, and code reviews, my PM handles the budget, requirements gathering, scoping, meetings, and progress reporting. That’s a lot of tasks. Consider what it looks like, then, if I’m managing both PM and development duties as a technical lead. Context switching (e.g., switching between different tasks) is extremely expensive for our brains. Studies show that even brief mental blocks created by shifting between tasks can cost as much as 40 percent of one’s productive time. You can see how context switching time could quickly add up for a person charged with too many tasks. Having a PM manage project priorities and parameters keeps me in the flow state, where I’m more deeply invested in the task at hand, and where I uncover problems and find creative solutions.
So what does this mean for the business? By limiting my involvement in managing the project, I am way more efficient, gaining you greater value for your money. This doesn’t just apply to me as a developer—it’s true for any team member trying to take on that role in addition to their normal, non-PM work on a project. If you’re a project owner, a good PM may increase your effectiveness as well: You need to know how the project is performing in terms of budget and time. You will want high-level reports, not details on the team’s processes, rhythms, and work styles. The PM keeps you focused on your big picture by providing the level of information that meets your needs without miring you in all the minutia.
2. Project managers simply manage projects better than me
You could have a developer manage a project just like you could grow pineapples in Minnesota (indoors, of course). But why would you when the conditions are optimal in Hawaii?
PMs have more experience and more domain-specific knowledge in running a project. By focusing on the business aspects of the project, they capitalize on those skills. This is a classic division of labor, where the project is broken down into specializations. When team members focus on their specialties, the entire project, and you as the client, benefit from comparative advantage. I do what I do best and the PM does what they do best, increasing overall efficiency. This means a better use of your project dollars, and lowers your total cost.
As a developer, it’s easy for me to get heads-down on solving a technical problem with my team. It’s my natural inclination. That, in turn, makes it more difficult to focus on examining and communicating the business aspects of the process. As discussed earlier, if I am properly focused on the business aspects of the project, I’m probably context switching a lot. Both are bad for the project, and both problems are resolved by having a PM.
Think about the inverse: Most of Headspring’s PMs have some coding background and can speak intelligently about technology, but would you want them working as your developers too?
3. A project manager is an effective liaison between the business and development teams
I enjoy interacting with clients and working together to build solutions. However, I am an introvert and the high level of interaction required to keep the project successful can be draining for me. Gathering business requirements, writing status reports, and attending meetings requires a lot of mental energy that’s taxing to my performance on development tasks. When I can focus on executing a plan that my PM has already worked out, that’s when my development team’s output is at its peak.
Of course, not every project goes to plan. Requirements change, hidden scope is uncovered, and new business realities inevitably assert themselves along the way. This is where a good PM really shines. During times of sudden change, the PM actively works to de-risk the project in order to keep it on track. This will surely involve a lot of negotiation on scope, budget, and timeline, which is going to be a contentious process. I’d rather skip the haggling and keep working on the software. My PM affords me that luxury.
The development team is also sure to hit smaller roadblocks along the way. My PM is the perfect go-between to marshall the proper resources that get me unblocked while I remain focused on development. For example, if my client contacts me with a new request, my response is to take care of it right away. I immediately switch contexts to start understanding the issue and what to do to address it. When there’s a PM on the team, not only will the PM field this inquiry, they will know how to prioritize this work. By prioritizing the work, they protect the project and my ability to perform efficiently.
Realizing the power of a Project Manager
Take a moment and think about a day where everything was clicking; a day when you felt your most productive. You were probably heads-down and extremely focused. In the zone. That’s what we’re all striving for in a good day’s work, right? My project manager’s primary roles is to help keep me in the zone. That’s why I want them on my team. When I’m in the zone, it’s good for me, it’s good for your project, and it’s good for you—wins all around!
While I can’t speak for all software developers, I do believe that those who have experienced working with a truly good project manager will agree that having that PM on the team makes the project run both smoothly and successfully. This isn’t just soft stuff, it makes a real difference in dollars. A happy team and smooth process are essential to getting the most value for your time and money.