Capability Maturity Model (CMM) in 5 Minuten oder weniger erklärt

Das Capability Maturity Model (CMM) und seine Integration (CMMI)

Das Capability Maturity Model (CMM) ist ein wirksames und zugängliches Instrument zur Skalierung unterschiedlicher Bereiche eines Unternehmens.

Das Verständnis der Kapazitäten ist unerlässlich, wenn man ein Unternehmen führt, ein System steuert oder eine Gruppe leitet.

Nach der Identifizierung der verschiedenen Bereiche eines Unternehmens, ist es wichtig, die Leistungsfähigkeit dieser Bereiche zu beurteilen. Auf dieser Grundlage können dann Standards und Ziele für das Unternehmen festgelegt werden.

Um die Leistung und den Fortschritt jeder Funktion und jeder Person zu messen und zu überwachen, benötigen Unternehmensleiter und Führungskräfte eine zuverlässige Methode zur Erfassung und Analyse.

Dadurch können Unternehmen Systeme entwickeln, die der Komplexität gewachsen sind und die erforderliche Präzision für eine erfolgreiche Skalierung bieten.

Hier kommt das CMM ins Spiel.

In diesem Artikel werden wir uns mit dem CMM und CMMI beschäftigen, ihre jeweiligen Stufen und die Unterschiede zwischen beiden Modellen.

Legen wir los!

Was ist das Capability Maturity Model?

Das Capability Maturity Model (CMM) stellt eine bewährte Methode dar, um den Entwicklungsprozess in einer Organisation zu strukturieren und zu optimieren. Es unterstützt Entwickler dabei, den Softwareentwicklungsprozess zu verbessern, was zu mehr Konsistenz und Effizienz führt.

Unabhängig von der Rolle, die man im Entwicklungsteam einnimmt, kann die Vertrautheit mit CMM hilfreich sein, um die eigene Leistung zu steigern. CMM ist also ein Ansatz, der die Bewertung, Entwicklung und Verbesserung des Softwareentwicklungsprozesses unterstützt.

CMM definiert grundlegende Abläufe für die Softwareentwicklung und andere Bereiche wie Engineering, Management und Planung. Das Modell basiert auf der Idee, dass eine kontinuierliche Verbesserung besser durch kleine, stetige Fortschritte als durch große, abrupte Veränderungen erreicht werden kann.

Darüber hinaus bietet es einen Rahmen zur Steuerung kleiner Verbesserungen über verschiedene Reifegrade hinweg, um eine Basis für die stetige Weiterentwicklung des Softwareentwicklungsprozesses zu schaffen. Daher fungiert diese Methodik als Kern von Managementsystemen, die speziell darauf ausgerichtet sind, die Entwicklungsqualität von Produkten und Dienstleistungen und deren Lieferung zu verbessern.

CMM wurde vom SEI (Software Engineering Institute) entwickelt, einem Forschungs- und Entwicklungszentrum, das vom US-Verteidigungsministerium gefördert wird. Es ist heute Teil der Carnegie Mellon University. Das SEI wurde 1984 mit dem Ziel gegründet, Softwareprobleme zu lösen und Softwaremethoden voranzutreiben.

Das SEI hatte das Ziel, die Prozesse der Entwicklung, Beschaffung und Wartung von komplexen, softwarebasierten Systemen für das Verteidigungsministerium (DOD) zu optimieren. Es befürwortet die branchenweite Einführung des weiterentwickelten CMM, bekannt als CMM Integration (CMMI).

Warum ist CMM wichtig?

CMM hat viele Vorzüge. Einer der größten Vorteile ist die Möglichkeit, Zeit und Kosten zu sparen. Das System ist darauf ausgelegt, Schwachstellen im Verbesserungsprozess effizienter als andere Modelle zu identifizieren.

Darüber hinaus verbessert CMM die betrieblichen Abläufe und reduziert unerwartete Änderungen in den Produktionsplänen. Da CMM eines der ersten Modelle zur Optimierung industrieller Prozesse war, kann es als Grundlage für andere Modelle dienen, wie z.B. die verbesserte CMM-Version (CMMI), das Business Capability Maturity Model (BCMM) und weitere.

CMM ist ein sehr flexibles Modell, das sich für verschiedene Prozesse und Märkte eignet. Unabhängig von der Branche, in der man tätig ist, können Entwicklungsteams das Modell nutzen, um Fehler im Prozess zu beheben.

Die fünf Reifegrade des CMM

Das Capability Maturity Model (CMM) definiert fünf Stufen im Entwicklungsprozess:

#1. Initial (Anfangsstufe)

Auf dieser Ebene sind die Prozesse nicht gut strukturiert. Es herrscht häufig Chaos. Der Erfolg hängt hier stark von den individuellen Bemühungen der einzelnen Mitarbeiter ab und ist nicht das Ergebnis eines wiederholbaren Prozesses. Die Prozesse sind nicht ausreichend dokumentiert und definiert, um repliziert werden zu können.

Die angewandten Prozesse sind unausgereift und ad-hoc, was zu einer instabilen Umgebung für die Softwareentwicklung führt. Zudem gibt es keine Grundlage zur Vorhersage der Produktqualität und der Fertigstellungszeit.

#2. Repeatable (Wiederholbar)

Auf dieser Ebene sind die wesentlichen Prozesse etabliert, dokumentiert und definiert. Projektmanagementtechniken sind eingeführt, und ein Teil des Erfolgs kann in einigen wichtigen Prozessbereichen repliziert werden.

Die wiederholbare Stufe wird durch die Implementierung grundlegender Projektmanagementrichtlinien erreicht. Erfahrungen aus früheren Projekten werden genutzt, um ähnliche Projekte zu steuern. Dazu gehört die Definition der benötigten Ressourcen, der Ziele, der Einschränkungen und weiterer relevanter Faktoren für das Projekt.

Diese Stufe stellt einen detaillierten Plan dar, der für eine erfolgreiche Entwicklung hochwertiger Software beachtet werden muss. Das Hauptziel ist es, die Leistungsfähigkeit des Produkts, z.B. seiner Komponenten, während des gesamten Softwarelebenszyklus zu gewährleisten.

Die wiederholbare Ebene berücksichtigt auch Kundenfeedback und Änderungsmanagement, was zu Modifikationen der festgelegten Anforderungen führen kann. Das Anforderungsmanagement umfasst das Erfassen der geänderten Anforderungen.

Des Weiteren konzentriert sich das Unterauftragsmanagement auf die Steuerung von qualifizierten Auftragnehmern für die Softwareentwicklung. Das bedeutet die Verwaltung von Teilen der Software, die von Dritten entwickelt wurden. Die Softwarequalitätssicherung garantiert ein hochwertiges Softwareprodukt durch Einhaltung bestimmter Regeln und Richtlinien während des Entwicklungsprozesses.

#3. Defined (Definiert)

Auf dieser Stufe sind die Richtlinien und Prozesse vollständig dokumentiert. Es existiert ein klar definierter Satz von Software-Engineering- und Managementprozessen. Dazu gehören:

  • Peer-Reviews: Bei dieser Methode werden Fehler durch eine Reihe von Überprüfungsprozessen wie Inspektionen, Buddy-Checks, Walkthroughs usw. korrigiert.
  • Koordination zwischen Gruppen: Diese Methode beinhaltet die Zusammenarbeit mehrerer Entwicklungsteams, um sicherzustellen, dass die Anforderungen ordnungsgemäß und effizient erfüllt werden.
  • Organisationsprozessdefinition: Die Methode konzentriert sich auf die Entwicklung und Pflege von Softwareentwicklungsprozessen.
  • Organisationsprozessfokus: Hier werden Praktiken und Aktivitäten festgelegt, die zur Verbesserung der Prozessfähigkeiten der Organisation durchgeführt werden müssen.
  • Schulungsprogramme: Die Schulungsprogramme konzentrieren sich darauf, die Kenntnisse und Fähigkeiten der Teammitglieder zu erweitern und so die Arbeitseffizienz zu verbessern.

#4. Managed (Gemanagt)

Auf dieser Ebene werden messbare Ziele für die Softwareproduktqualität und Softwareprozesse einer Organisation festgelegt. Die durchgeführten Messungen ermöglichen es der Organisation, die Prozess- und Produktqualität innerhalb der definierten Grenzen vorherzusagen.

Diese Stufe umfasst Strategien und Pläne, die erstellt wurden, um quantitative Analysen und die Produktqualität zu entwickeln und zu verstehen. Sie konzentriert sich auch auf das Management der Projektleistung.

#5. Optimizing (Optimierung)

Dies ist die höchste Stufe der Prozessreife im CMM und konzentriert sich auf die kontinuierliche Verbesserung der Entwicklungsprozesse in der Organisation durch quantitatives Feedback. Dies geschieht durch den Einsatz von Techniken, Auswertungen und Werkzeugen, um das Wiederauftreten bekannter Fehler zu verhindern.

Diese Stufe beinhaltet:

  • Prozessänderungsmanagement: Dieser Managementprozess konzentriert sich auf die kontinuierliche Verbesserung der Softwareentwicklungsprozesse, um die Qualität, Durchlaufzeit und Produktivität des Softwareprodukts zu steigern.
  • Technologieänderungsmanagement: Dies beinhaltet den Einsatz von Technologien und Identifikationstechniken, um die Qualität des Produkts zu verbessern und die Entwicklungszeit zu verkürzen.
  • Fehlervermeidung: Fehlervermeidung kann durch die Identifizierung der Ursachen von Fehlern erreicht werden, um zu verhindern, dass diese Fehler in nachfolgenden Projekten erneut auftreten. Dadurch werden die projektdefinierten Prozesse verbessert.

Integration des Capability Maturity Model

Die Capability Maturity Model Integration (CMMI) ist ein Modell, das Unternehmen hilft, Entwicklungsprozesse zu optimieren, effizientes Verhalten zu fördern und die Produktivität im Arbeitsablauf zu steigern, während sie ein Produkt, eine Dienstleistung oder ein Projekt entwickeln. Dies führt zu einer Reduzierung der Risiken während des gesamten Prozesses.

CMMI wurde von der Carnegie Mellon University entwickelt und eingeführt. Das primäre Ziel dieser Entwicklung war es, die Effizienz und Benutzerfreundlichkeit von Reifegradmodellen zu erhöhen, die die Fähigkeit einer Organisation messen, kontinuierliche Verbesserungen in bestimmten Bereichen zu erzielen. Dies wurde durch die Integration mehrerer Modelle in einem einzigen Framework erreicht.

Die erste Version wurde im Jahr 2002 veröffentlicht, eine weitere im Jahr 2006. Im Jahr 2010 kam Version 1.3 auf den Markt, und 2018 wurde die aktuellste Version 2.0 eingeführt, welche verschiedene Änderungen mit sich brachte, z.B. verbesserte Zugänglichkeit und Wirksamkeit für Unternehmen.

CMMI wurde von ISACA (ehemals Information Systems Audit and Control Association) erworben, welche auch Zertifizierungen wie das COBIT-Framework anbieten. CMMI ist ein Prozess- und Verhaltensmodell, das Organisationen während der gesamten Entwicklung von Produkten oder Dienstleistungen unterstützt.

Das Ziel von CMMI ist klar definiert: Die Verbesserung der Service- oder Produktqualität durch Einhaltung des Modells, welches die Kundenerwartungen erfüllt und den Wert einer Organisation im Markt steigert. Es bewertet außerdem den Ruf des Unternehmens und den Wert der Interessengruppen in der Branche.

CMMI befasst sich derzeit mit den folgenden Interessengebieten:

  • CMMI für die Entwicklung: Dient der Entwicklung von Produkten und Dienstleistungen.
  • CMMI für Dienste: Dient der Einrichtung, Bereitstellung und Verwaltung von Diensten.
  • CMMI für den Erwerb: Beinhaltet den Erwerb von Produkten und Dienstleistungen.

Darstellung von CMMI

Die CMMI-Darstellung ermöglicht einer Organisation, eine Reihe von Verbesserungszielen zu verfolgen. Es gibt zwei Darstellungsformen:

Stufenweise Darstellung

  • Nutzt einen definierten Satz von Entwicklungs-Prozessbereichen, um den Verbesserungspfad zu beschreiben.
  • Bietet eine Reihe von Verbesserungen, wobei jeder Teil der Reihe als Fundament für die nächste Verbesserung dient.
  • Definiert einen verbesserten Weg durch die Nutzung von Reifegraden. Die Reifegrade geben Auskunft über die Reife verschiedener Prozesse innerhalb der Organisation.
  • Ermöglicht den Vergleich zwischen verschiedenen Organisationen anhand ihrer Reifegrade.

Kontinuierliche Darstellung

  • Ermöglicht die Auswahl bestimmter Prozessbereiche.
  • Verwendet Fähigkeitsgrade, um die Verbesserung einzelner Prozesse zu messen.
  • Ermöglicht einen Vergleich zwischen Organisationen auf Grundlage der verschiedenen Prozessbereiche.
  • Die kontinuierliche Darstellung erlaubt es Organisationen zudem, aus verschiedenen Prozessen diejenigen zu wählen, die am effektivsten zur Verbesserung beitragen.
  • In dieser Darstellung können Organisationen ihre Ziele effizienter erreichen und Risiken reduzieren, indem sie die Reihenfolge der Verbesserung verschiedener Prozesse selbst bestimmen.

Reifegrade in CMMI

CMMI hat fünf Reifegrade in der stufenweisen Darstellung:

#1. Initial: Auf dieser Ebene sind die Entwicklungsprozesse schlecht kontrolliert und schlecht verwaltet. Die Ergebnisse des Entwicklungsprozesses sind unvorhersehbar, und es werden chaotische und ad-hoc-Ansätze verfolgt. Definierte Key Process Areas (KPAs) sind nicht vorhanden. Die Qualität ist niedrig und die Produkte oder Dienstleistungen sind einem hohen Risiko ausgesetzt.

#2. Managed: In diesem Reifegrad werden die Anforderungen angemessen verwaltet, und Entwicklungsprozesse werden kontrolliert und geplant. Das Projekt wird entsprechend den dokumentierten Plänen verwaltet und umgesetzt. Risiken sind zwar vorhanden, aber geringer als auf der Anfangsstufe.

#3. Defined: Im definierten Reifegrad sind die Entwicklungsprozesse gut beschrieben und durch geeignete Verfahren, Standards, Tools und Methoden gekennzeichnet. Die Qualität ist mittelmäßig, und das Risiko ebenfalls.

#4. Quantitatively Managed: In diesem Modell werden quantitative Ziele für die Qualitäts- und Leistungsprozesse definiert. Diese basieren auf den Bedürfnissen der Organisation, den Kundenanforderungen und anderen Faktoren. Die Prozessleistungskennzahlen werden quantitativ analysiert. Es werden qualitativ hochwertigere Prozesse mit geringerem Risiko angestrebt.

#5. Optimizing: Dies ist die höchste Stufe des Reifegradmodells und beinhaltet eine kontinuierliche Verbesserung der Leistung und der Prozesse. Verbesserungen in dieser Stufe sind sowohl innovativ als auch inkrementell. Die Prozesse und Leistungen sind qualitativ hochwertiger, und das Risiko ist minimal.

Fähigkeitsgrade von CMMI

Ein Fähigkeitsgrad gibt Auskunft über die relevanten Praktiken in einem bestimmten Prozessbereich, um die Prozesse einer Organisation in diesem Bereich zu verbessern. Es gibt sechs Fähigkeitsgrade für CMMI-Modelle:

  • Fähigkeitsgrad 0 (Unvollständig): Prozesse sind unvollständig, teilweise oder werden gar nicht durchgeführt. Es gibt keine allgemeinen Ziele auf dieser Ebene.
  • Fähigkeitsgrad 1 (Durchgeführt): Die Prozessleistung ist auf dieser Stufe nicht stabil. Kosten-, Termin- und Qualitätsziele werden nicht erreicht. Es müssen bestimmte Praktiken ausgeführt werden.
  • Fähigkeitsgrad 2 (Gemanagt): Auf dieser Stufe wird der Prozess überwacht, gesteuert und geplant. Es werden Ziele verfolgt, die sich am Modell, der Qualität, dem Zeitplan und den Kosten orientieren. Organisationen müssen die Prozesse aktiv anhand von Metriken steuern.
  • Fähigkeitsgrad 3 (Definiert): Dies ist eine definierte Stufe, in der der Prozess gut verwaltet wird und eine Reihe von organisatorischen Richtlinien und Standards erfüllt. Der Fokus liegt hier auf der Standardisierung der Prozesse.
  • Fähigkeitsgrad 4 (Quantitativ gesteuert): Hier wird der Prozess durch quantitative und statistische Techniken gesteuert. Die Prozessleistung wird in Metriken und statistischen Begriffen verstanden.
  • Fähigkeitsgrad 5 (Optimierend): Diese Stufe konzentriert sich auf die kontinuierliche Verbesserung der Prozessleistung. Die Leistung wird sowohl auf innovative als auch inkrementelle Weise verbessert.

CMM vs. CMMI: Die Unterschiede

CMMI ist ein aktualisiertes oder neueres Modell von CMM. Das SEI hat CMMI entwickelt, um CMM zu vereinheitlichen und zu integrieren, da das CMM verschiedene Modelle für jede Funktion bereitstellte, die es abdeckte. Diese Modelle waren nicht synchronisiert; ihre Integration macht den Prozess flexibler und effizienter.

In Bezug auf Schlüsselprozessbereiche, Praktiken, Reifegrade und Ziele ähnelt die Struktur von CMMI der von CMM. CMMI bietet jedoch zwei unterschiedliche Darstellungen der Prozesse.

Lassen Sie uns weitere Unterschiede zwischen CMM und CMMI erkunden:

CMM CMMI
Vollständige Bezeichnung Capability Maturity Model (Reifegradmodell) Capability Maturity Model Integration (Reifegradmodell Integration)
Entwicklungsjahr 1984 2006
Zweck Es ist ein Verhaltensmodell, das entwickelt wurde, um Softwareentwicklungsprozesse in einer Organisation zu messen. Es ist die verbesserte Version des CMM, welche aufgabenorientierter und effektiver ist.
Hauptziel Bewertung der Reifegrade im Softwareentwicklungsprozess. Zusammenführung verschiedener Softwaremodelle in einer einzigen Software und Behebung einiger Schwächen des CMM.
Reifegrade Fünf Phasen: Initial, Wiederholung, Definiert, Gemanagt und Optimiert. Fünf Phasen: Initial, Gemanagt, Definiert, Quantitativ gemanagt und Optimiert.
Effektivität Weniger effektiv. Effektiver.
Fokus Prozessorientiert. Zielorientiert.

Fazit

Das Capability Maturity Model (CMM) ist ein System zur Problemlösung für Softwareentwicklungsprozesse in der Industrie und kann Unternehmen helfen, Probleme zu lösen.

CMMI hingegen bietet eine fortschrittlichere Methodik als CMM. CMMI beinhaltet das Erfüllen der Kundenerwartungen, Wertschöpfung, Marktwachstum, Verbesserung der Produkt- und Servicequalität und die Steigerung des Unternehmensrufs.

Es empfiehlt sich, auch das Application Lifecycle Management-Framework zu erforschen, welches bei der rechtzeitigen, budgetgerechten und qualitativ hochwertigen Entwicklung und Bereitstellung von Software hilft.