Does Project manager have to be Technical ?

In one of my projects I had a team of 11 people who were working on different aspects of the application, database, User interface, Middleware etc.  It was a new project for new client and I was working with a top IT company as Project manager. Our scope of work included Support and Enhancements of the exisiting applications. Enhancements were mini projects by themselves and each enhancement had to follow SDLC.  Clients were excited by the fact that the new IT vendor is On-board and had some great expectations from our team. Our team was enthused and motivated to delight the client. 

Developers in my team had different levels of productivity, Some were quick and would always complete the work on time and some people would take long time to complete. In one such instance an enhancement was made to software application, deployed in production and later the client asked for some minor modifications. To my surprise the developer was taking much longer than usual to do this change, in fact during testing we found that there are other parts of applicaton which were broken when trying to make this change. 

Client was very upset at the amount of time it had taken to do a simple change and escalations had started to our Sr. Management. Now I was only supposed to be a project manager, but given then I had come from Coding background I sat down with the developer to understand what is going on. I had some interesting observations.

  1. Developer was quick worker and to get some brownie points, did not follow coding rules and had done some grave mistakes.
  2. While making the changes he was aware that future modifications would be tough, but he did the quick way anyway.
  3. Testing was done only for compliance sake, not really to check upstream and downstream impacts.
  4. Coding standards, formatting was not followed.
  5. No time was spent in refactoring, optimzation or making sure the code gives best possible performance.

There were other people in my team, who were slow workers, but I found that they would take care of most of the above aspects before declaring their code to be ready.  I had to go back to client and explain that we will need more time to re-write the whole enhancement and promised them that in future our team will make sure that great code is delivered to them. We showed the client the changes we did to our Quality control process to ensure such a thing is not repeated.

So where was the break down ? Who is to be blamed here,? the developer, project manager, Client or organizational process ?. Well there is no right answer. However I had seen that project managers seldom get into the details of code and have little or no clue of what's wrong with the code. One can always argue that "Its not the job of PM". , but having technical and functional skills certainly helps in salvaging a situation. If I did not have code knowledge, I would have to hire a reviewer and that would have taken more time. Plus again a dependency on reviewer skills.

Software industry has complex work and industry does demand project managers who can guide the team, technically and Functionally. The additional technical skills will take you far in your career. You will be able to lead and manage projects with confidence. Save cost and time and keep client happy.

Make sure you are able to get credit for being a "Techincal" Project manager. Client and Sr. Management must realize the great work you are doing. So all in all - Project managers can survive without deep Technical skills, however if I was a sponsor I would certainly want a PM with good technical and functional understanding of the project and technology. So it make sense in long run to be a PM with "Technical" Skills.