Capability Maturity Model

Hauptsächlich geht es um die Verbesserung von Softwareentwicklungsprozessen. Die sichtbaren Vorteile liegen vor allem in einer besseren Abschätzung der benötigten Ressourcen, wie Zeit, Personal und Geld. Das Nachbearbeiten der Aufträge soll minimal gehalten werden und in dieser Branche bekanntes „Feuerlöschen“ gänzlich vermieden werden. Weiterhin soll die Wiederverwendbarkeit von früheren Softwaren gesteigert werden.

Desweiteren soll CMM dem prozessüberwachenden Organ eine Möglichkeit schaffen, zu jeder Zeit direkt Entscheidungen treffen zu können. CMM selbst schreibt je nach Stufe vor, diese prozessüberwachenden Instanzen festzulegen. Zuerst muss jedoch der Standpunkt eines Unternehmens bestimmt werden. Es muss bewertet werden, welche Qualität die Softwareentwicklungsprozesse selbst erreicht haben. CMM bietet einen Kriterienkatalog, nach dem ein einzelner Prozess oder das gesamte Unternehmen in Reifestufen gegliedert werden kann.

Das Bewertungsverfahren mit Hilfe eines Fragebogens wird als Assessment bezeichnet. Dieser Fragebogen kann auf den in CMM festgelegten Fragen zur Stufenbestimmung basieren. Er wird durch die 18 Hauptkriterien, sogenannte Key Process Areas, definiert.

Jedem Hauptkriterium sind Aspekte zugeordnet, die als Key Practices bezeichnet werden. Diese geben an, was alles zu tun ist, um das jeweilige Hauptkriterium zu erfüllen, es wird jedoch nicht festgelegt, wie das umgesetzt werden soll. CMM definiert also keine Prozesse, sondern lediglich deren Verwendung und Nutzen. Der Fragebogen bildet das Herzstück von CMM. Anhand der Auswertung des Assessments kann der Reifegrad der Softwarefirma bestimmt werden Die fünf Stufen des CMM

1 Ad hoc (Initial)

  • Ad-hoc-Prozess
  • Keine formelle Planung und Kontrolle
  • Kein oder schlechtes Konfigurationsmanagement

2 Wiederholbar (Repeatable)

  • Etabliertes Projektmanagement
  • Abwicklung von Standardprojekten wird beherrscht; bei neuartigen Projekten größere Risiken
  • Prozess ist abhängig von den Personen, die ihn durchführen
  • Keine etablierten Maßnahmen zur Verbesserung des Prozesses

3 Definiert (Defined)

  • Der Prozess ist klar definiert und läuft definitionsgemäß ab
  • Es existiert eine Gruppe mit der Aufgabe, den Software Engineering Prozess zu lenken und zu verbessern

4 Geführt (Managed)

  • Eine Mindestmenge an Qualitäts- und Produktivitätsmessgrößen wird erhoben und ausgewertet
  • Es gibt eine Datenbank, in der alle relevanten Daten über den Prozess abgelegt werden und Mittel zur Pflege und Auswertung dieser Daten

5 Optimierend (Optimizing)

  • Etablierter Regelkreis für Messung und Verbesserung des Prozesses
  • Datenerhebung und Erkennung von Schwachstellen weitgehend automatisiert
  • Durchgeführte Maßnahmen aus dem erhobenen Datenmaterial begründet
  • Etablierte Ursachenanalyse für alle Fehler und zugehörige Fehlerpräventionsmaßnahmen