The Software Engineering Institute (SEI) in the United States is engaged on a long-term programme of software process improvement. Part of this programme is the Capability Maturity Model (CMM) for software processes, which I discuss in Chapter 28. This is concerned with best practice in software engineering. To support this model, they have also proposed a People Capability Maturity Model (P-CMM). The P-CMM can be used as a framework for improving the way in which an organisation manages its human assets.
Like the CMM, the P-CMM is a five-level model, as shown in Figure 1.
The five levels are:
- Initial Ad hoc, informal people management practices
- Repeatable Establishment of policies for developing the capability of the staff
- Defined Standardisation of best people management practice across the organisation
- Managed Quantitative goals for people management
- Optimizing Continuous focus on improving individual competence and workforce motivation
The strategic objectives of the P-CMM are:
- to improve the capability of software organisations by increasing the capability of their workforce;
- to ensure that software development capability is an attribute of the organisation rather than of a few individuals;
- to align the motivation of individuals with that of the organisation;
- to retain valuable human assets (i.e., people with critical knowledge and skills) within the organisation.
The P-CMM is a practical tool for improving the management of people in an organisation because it provides a framework for motivating, recognising, standardising and improving good practice. However, like all capability models created by the SEI, it is designed for large rather than small companies. It reinforces the need to recognise the importance of people as individuals and to develop their capabilities. Of course, the complete application of this model is very expensive and probably unnecessary for most organisations. However, it is a helpful guide that can lead to significant improvements in the capability of organisations to produce high-quality software.