Can non-technical Project Managers lead software projects?
Published on: 2011-11-07
Project managers without a background in software are put in a difficult spot when they're asked to manage software projects. To see why, let's start with the tasks a typical project manager is expected to complete:
- Ability to create a full project plan
- Determining the critical path
- Determining which resources are appropriate for available tasks
- Planning the project execution timeline
- Creating milestones
- Tracking project status
- Determining what action is appropriate in the event of a time or budget slip
- Making sure that action is taken and that it has the desired results
- Determining the cause of a time or budget slip
- Ensuring that everyone involved in the project has what they need to move forward
- If not, removing obstacles/provide needed information
However, not only from my own experience but also hearing developers speak at user groups, hearing developers talk about project managers at other companies, reading blogs about project experiences, etc., I've come to believe that too many project managers out there reactively track status by asking the team for periodic status updates, and do little more. The resulting process followed by the team looks a bit like this:
- Critical path planning gets done poorly, when it is done at all
- Poorly done critical path planning means resources aren’t added when they are needed
- Asking the team for a status only works when the team is both qualified and aware of all the tasks that need to be done
- Problems are never prevented because they are never seen until it is too late
Though without intimate knowledge of the software development process it's tough for me to imagine that project managers can do much better. This is because without hands-on experience, it's almost impossible to know what the critical path truly is, which leads to the disasters don the road. But because traditional project managers are expected to perform all of the job duties outlined at the beginning of the post, project managers are very often the ones held most responsible for the success or failure of a project. I cannot think of a greater disconnect between expectations and ability to meet them for any position.
I see three possible solutions to this problem:
- Only hire software project managers with hands-on experience with technology
- Move to agile methodologies and put the product owner in charge of the process
- Keep a non-technical project manager on the project, but make a technical architect the primary person responsible for success of the project
Any of the three could work, but a further discussion of these options are a subject for another blog post.