Some years ago the Software Engineering Institute at Carnegie Mellon Institute in Pittsburgh established standards and guidance for developing software engineering disciplines and management. This was known as the Capability Maturity Model (CMM), and its use has become widespread among mature software development organizations, especially for those developing large scale software in a competitive procurement environment. Government and corporate software customers have increasingly required that proposals include information about a software development organization’s certified level of maturity. The CMM had recognized five steps towards organizational software maturity:
* Level 1 (Initial) – Processes are ad hoc and occasionally chaotic. Few processes are defined, and success depends on individual effort and heroics. (A street-person with a laptop would be at Level 1.)
* Level 2 (Repeatable) – Basic project management processes are established to track cost, schedule and functionality. A process discipline is in place to repeat earlier successes on projects with similar applications.
* Level 3 (Defined) – Management and engineering processes are documented and integrated into a standard software process. Projects use an approved, tailored version of the organization’s standard software process.
* Level 4 (Managed) – Detailed measures of the software process and product quality are collected. Processes and products are quantitatively understood and controlled.
* Level 5 (Optimizing) – Continuous process improvement is aided by quantitative feedback from the process and from piloting innovative ideas and technologies.
Around year 2000, the SEI introduced the next major evolution along this path – called Capability Maturity Model® Integration (CMMI). This builds on the previous CMM, which is now regarded as “legacy” and no longer supported.