# Capability Maturity Model

Das Capability Maturity Model (kurz CMM, zu deutsch Reifegradmodell) der Carnegie Mellon University (CMU) ist ein Reifegradmodell zur Beurteilung der Qualität („Reife“) des Softwareprozesses (Softwareentwicklung, Wartung, Konfiguration etc.) von Organisationen sowie zur Bestimmung der Maßnahmen zur Verbesserung desselben.
Die Varianten des CMU CMM wurden Ende 2003 durch Capability Maturity Model Integration (kurz CMMI) ergänzt, um dem Wildwuchs der CM-Modelle (jede Entwicklungsdisziplin entwickelte ein eigenes Modell) entgegenzuwirken und ein einheitliches, modulares und vor allem allgemein verwendbares Modell zu erstellen.
Andere populäre, auf dem ursprünglichen CMU CMM basierende Modelle sind Spice für Reifegradbestimmung und Assessment von Software-Prozessen sowie COBIT für IT-Governance-Prozesse.

## Geschichtliche Entwicklung

* 1986 begann auf Initiative des US-Verteidigungsministeriums (Department of Defense, DoD) das Software Engineering Institute (SEI) an der Carnegie Mellon University/Pittsburgh, welches dem US-Verteidigungsministerium untersteht, unter der Führung von Watts S. Humphrey mit der Entwicklung eines Systems zur Bewertung der Reife von Softwareprozessen.
* 1991 wurde das Modell als Capability Maturity Model 1.0 herausgegeben
* 1993 wurde es überarbeitet und in der Version 1.1 bereitgestellt
* 1997 wurde CMM 2.0 kurz vor der Verabschiedung vom DoD zurückgezogen, stattdessen wurde das CMMI-Projekt gestartet
* 2000 wurde im Herbst CMMI – damals noch unter dem Namen Capability Maturity Model Integrated – als Pilotversion 1.0 herausgegeben
* Anfang 2002 wurde CMMI unter dem neuen Namen Capability Maturity Model Integration (kurz CMMI) freigegeben
* Ende 2003 ist CMM ausgelaufen.

## Aufbau des Modells

Beim CMU CMM wird die Qualität mit einer von fünf Stufen bewertet, wobei die Qualität mit jeder Stufe steigt. Jeder Stufe sind spezielle Key Process Areas zugeordnet, die wiederum Ziele enthalten und beispielhafte Aktivitäten, wie diese Ziele zu erreichen sind. Diese Stufen lauten:

### 1 – Initial (beginnend)

    Dies ist der Grundzustand, den jede Organisation erreicht, auch ohne dass ein Prozess für die Softwareentwicklung definiert und umgesetzt wird. Kosten, Zeiten und Qualität sind nicht vorhersehbar. Es sind keine Key Process Areas (KPA) definiert.

### 2 – Repeatable (wiederholbar; bei CMMI Managed)

    Ein grundlegender Prozess existiert. Die Planung neuer Projekte erfolgt anhand der Erfahrungen mit vergangenen Projekten. Zeiten sind einigermaßen kontrollierbar. Kosten und Qualität unterliegen starken Schwankungen. Key Process Areas (KPA): Requirements management, software project planning, software project tracking and oversight, software subcontractor management, software quality assurance, software configuration management.

### 3 – Defined (definiert)

    In der Organisation ist ein typischer Software-Entwicklungs- und -wartungsprozess eingeführt und dokumentiert (Standard-Software-Prozess). Eine spezielle Organisationseinheit ist für die Umsetzung verantwortlich. Kosten und Zeiten sind hier einigermaßen zuverlässig bewertbar. Qualität ist immer noch Schwankungen ausgesetzt. KPA: Organizational process focus, organizational process definition, training program, integrated software management, software product engineering, intergroup coordination, peer reviews.

### 4 – Managed (gesteuert; bei CMMI Quantitatively Managed)

    Sowohl für das Produkt als auch für den Prozess werden quantitative Ziele vorgegeben, ihre Erreichung gemessen und überwacht. Zeiten, Kosten und Qualität sind zuverlässig kontrollierbar. KPA: Quantitative process management, software quality management.

### 5 – Optimizing (optimierend)

    Die gesamte Organisation konzentriert sich auf das Finden von Schwächen und die weitere Verbesserung des Prozesses. KPA: Defect prevention, technology change management, process change management.

## Abgrenzung zu anderen Normen

Im Unterschied zur DIN EN ISO 9001 ist das CMM speziell für den Softwareprozess entwickelt und kann alternativ oder in Kombination zu jener verwendet werden.
Eine weitere Norm, die sich mit der Bewertung der Prozessreife u. a. in der Softwareentwicklung beschäftigt, ist die ISO-Norm 15504, auch bekannt unter dem Namen Spice.