The Capability Maturity Model (CMM) is a model that describes the evolution of a software development process. Introduced in 1991 by Software Engineering Institute (SEI), a federally funded research center. It has become maybe the most prestigious benchmark and tool for software companies, when it comes to those creating large-scale, idiot-proof systems. The model describes 5 levels of maturity of development processes according to well-defined criteria. 

It is a good model if you have developed a large system that you just keep on modifying and modifying. If you're building websites, well... it's probably way too expensive. I have seen estimates that about 75% of software companies are on level 1, and less than 1% on level 4. Level 5 companies are rare, and there are only a handful, on a global scale. Companies that go through the effort of reaching level 4 or even 5, usually make big fuss out off it, hoping it will generate more customers, which it probably does in their market. Defense contractors usually have to be on level 3 when bidding for large systems. 

There are many companies wanting to have your money in exchange for helping you reach the next level. Certified, of course. 

The five CMM levels and the how to reach them:

  1. Initial - Ad hoc process, occasionally chaotic. Usually highly dependent on a guru
    Level 1 companies must work on putting a development process in place, with project management for estimation and evaluation of the projects. Also required are configuration management, quality assurance practices, requirement management and subcontractor management. This done, one can reach
  2. Repeatable - The company have successfully implemented the above mentioned process but is still dependable on individuals in times of stress.
    This organization must establish practices for the above, applicable and specific to their needs. They must have and follow standards and procedures for these practices. The next level is
  3. Defined - The process is the organization, not individuals. The organization train itself on its practices. 
    The first three levels mostly works on improving Product quality. Now it is time to put emphasis on Process quality by establishing process measurement tools. These are used for correction of errors in the development process itself. Go to
  4. Managed -  The key is Continuous Process Improvement.
    To move from here, one must not only improve the existing process, but also exchange parts of it with new and better processes. To the top
  5. Optimizing - This company evaluate new process candidates continuously, trying to improve and optimize their process to its need.

 

source: SEI