As a recently certified Project Management Professional (PMP), but also an experienced software developer, I hear a lot of question, especially from software developers, about what a project manager really does. Here are some common misconception that developers have about project managers and a small explanation about each one:
1) Project managers are not needed and shouldn’t exist in the organization
Project managers do exist and for decades they had an important role on all large, medium and some small size organizations. A lot of smart people were involved in those organizations over the years. What are the chances that today, developer X from company Y, in city Z, country W just discovered that project managers are useless? Wouldn’t it be more understandable that the developer just doesn’t take the time to understand their role?
2) What is their role? They don’t seam to have any responsibilities.
Well, they are responsible for the whole project.
Developers don’t usually realize that a project has multiple phases: initiating, planning, executing, monitoring & controlling, closing. The developer is usually involved in a small part of the executing phase. The project manager is responsible for all of these phases.
The project manager knows from whom the requirement that the developer is working on came. He discussed with the customer about it, negotiated other requirements, understood the client’s business case for asking for the requirement. He analyzed the requirement to understand how this would impact the product and other stakeholders. Then he asked for an estimation from the developer (or other methods to obtain estimations). Then he calculated the risks: what if the developer leaves the company, what if the technology decided on now will change in two years, what if… He evaluated the potential impacts and include them in the plan. Based on this he negotiated again with the client or sponsor. Then he integrated the requirement in all project documentation that the developer will probably never see.
Now, here is where the developer does his work of implementing the requirement and then stops caring. While doing the implementation, the project manager needs to make sure he has a team to rely on. He needs to manage conflicts, to “build” the team, do HR tasks, assessments etc. After the developer delivers his work, the PM needs to make sure it fully fulfills the requirements. After all the work is done by all people and departments involved, the PM needs to show the client that the work was done according to the requirements and to sign off the project. Then, the PM needs to help the future PMs and projects by documenting each step and each decision of the project.
I described just a small part of what a project manager’s work consist in. Ultimately, his goal is to have a successful project and a happy client.
3) Why is he making me give estimations? It’s his job to plan. Why I’m doing his job?
No, the developer is not doing the PM’s work when he’s asked for estimations. The PM’s job is to obtain the most accurate estimations possible. Who can better give an estimation if not the person who will actually do the work?
4) I’ll probably do the task in one day. But, just to be on the safe side, I’ll give an estimation of two days, to protect the project from delays.
Don’t do this! Tell the project manager that you’re not sure about the estimation and he will plan accordingly. He will include the risk that you’ll take two days instead of one. He needs to work on the project using the optimal resources, so if you finish one day earlier without telling him, the company will lose money as they cannot use your skills optimally. It’s the developer job to develop, it’s the PM’s job to manage.
5) As I have some spare time, I’ll develop some new great functionality to the project. I bet the PM will be very happy.
No, he will not. This is called gold-plating and it’s highly not recommended. Because you, the developer, just took a decision about what it’s important for the client. Think about it: if the work you were requested to do is not great, the client will just tell you: “Why the hell did you implement a new feature that I didn’t ask, instead of doing a good job on the functionality that I actually did asked?”
6) Although he is part of our team, he always seams to care more about the client.
Sorry, but he actually is. He always need to keep a balance between the interest of all people involved in the project: senior management, managers of other departments, the team, the clients – everyone. So, although he seams to be a part of your team (and he is), his job is not just to keep you happy. Actually, his job is to keep the client happy.
7) He is asking for people to do overtime. He must be a really good PM if he convinces people to do this.
Sorry to disappoint you once again, but he is actually not. Asking for people to do overtime, especially on a regular basis, is the last thing that a project manager should do in order to keep the planned schedule. So, this is actually a sign of a really bad project manager.
8) He always gets involved in everything. He’s annoying.
The PM always tries to get involved in all activities, discussions, conflicts etc because he needs to understand and control everything that could impact the project. But, as this is a soft skill, some guys don’t look very natural when doing this. Just give the guy a break.
9) I discovered this awesome open-source technology, that will allow me to finish my work earlier, so the PM will be happy.
No, he will not. Not considering the fact that you will finish earlier which changes the schedule, the PM will be very worried about this technology. What happens if you leave the company? Will other developers be found that will understand this technology? What will be their cost? The technology is open-source for now, but will remain like this in 5 years? Will this technology still be around in 5 years? Does proper support and documentation exists for this technology? What is the impact on other sections of the project? You don’t care. You just finished an 8 hour task in 2 hours. But, for the project manager this can be very costly.
10) He doesn’t understand the technical terms. Why isn’t he a technical person if he’s managing a technical project?
Although the PM must understand very well the domain he’s working on, it’s not necessary that he’s an expert in all fields of that project. He just need to understand enough in order to manage successfully the project. With proper training, an IT project manager can also manage the building of a skyscraper.
In conclusion, the project manager is the most important person involved in a project. It’s the person that puts all the pieces of the project together into one cohesive whole. As soon as the developer really understands the project manager’s role, he can become a better professional by actively supporting him.