A software house is a company whose primary product is software. Software houses often implement software projects for other companies delivering custom software products based on company requirements. Software houses hire software developers, programmers, designers, testers and project managers to carry out software development activities. Most software houses use traditional project management whereby the company has a pool of project managers/team leads and each project manager/team lead is managing one or more projects depending upon the size of the project. Typically that project manager/team lead is also part of the development team and each project manager has its own style/way of managing the project.
A lot of problems arise in this case, some of them are
- Inconsistent project management practices applied on different projects depending upon the skill level of project manager managing the project.
- Lack of visibility on some projects as some project managers are shy from reporting the progress of the project.
- Project delays due to inexperienced project managers lacking proper training.
- Project managers working in isolation and not benefitting from the experience of each other.
- Issues not escalating to higher management due to lack of consistent reporting.
- Multiple project managers fighting for the same pool of programmers, designer, testers etc.
- Inefficient or over utilization of human resources in different projects due to different style of project managers.
According to Gartner survey, most software projects fail due to lack of proper project management/governance.
A Project Management Office (PMO) can help to reduce Project Management problems. PMO can achieve this by
- Providing standard guidelines/ practice documents for project managers which they can follow in different stages of the project. For example standard guidelines for defining scope of the project, project planning/estimation, risk identification and escalation etc.
- PMO identifies the gaps current issues in project execution and identifies potential risks earlier
- PMO enhances monitoring and control of projects by implementing standard reporting policies which the project managers have to follow.
- PMO helps to mediate conflict resolution among different project managers.
- PMO provides training and mentoring to project managers so that they can manage projects effectively.
- PMO increases efficiency by tracking progress of the projects.
- PMO integrates all project plans by standardizing project progress reporting so that the management has a clear that which projects are getting delayed so that the resources can be assigned accordingly.
- PMO increases the overall project management knowledge of the organization/software house by documenting/collecting lessons learned from different projects so that the organization/company can learn from previous mistakes and project managers may be trained to avoid those mistakes.
Once you have setup the PMO in your organization then you must also consider the tools/technology that is essential to a better performing PMO. Most notable and widely used software for this pupose is Microsoft Project Server 2010.