Title: Das Capability Maturity Modell (CMM)
1Das Capability Maturity Modell (CMM)
- 1987 entwickelte das Software Engineering
Institute (SEI) der Carnegie Mellon University im
Auftrag des amerikanischen Verteidigungsministeriu
m einen Fragebogen, mit dessen Hilfe die
Leistungsfähigkeit von Software-Lieferanten
bewertet werden sollte (Assessment). Der
Fragebogen wurde zu einem Referenzmodell
ausgebaut. - Dieses Referenzmodell erhielt den Namen
Capability Maturity Model (CMM). Den aktuellen
Stand der Entwicklung findet man auf den
Web-Seiten des SEI unter Publikationen. - Das CMM gibt Hinweise, wie die Qualität des
Software-Entwicklungsprozesse verbessert werden
kann. Es werden fünf unterschiedliche
Qualitätsstufen von Software-Entwicklungsprozessen
unterschieden. Jede Qualitätsstufe beschreibt
einen bestimmten Reifegrad (maturity) eines
Entwicklungsprozesses. Die Stufen bauen
aufeinander auf. Eine Stufe setzt voraus, dass
die Anforderungen an die Prozesse, die die
anderen Stufen erfordern, erfüllt sind.
2Das Grundkonzept des Capability Maturity Modell
3Reifegrade und Fähigkeiten im CMM (Übersicht)
- Die Prozessqualität der Software-Entwicklung
bestimmt die Fähigkeiten (capabilities) eines
Software-Unternehmens. Im CMM werden 5
Reifestufen (maturity) unterschieden, deren
Prozessqualität wie folgt charakterisiert ist - Stufe Bezeichnung Prozessqualität
-
- 1 initial abhängig von Einzelpersonen
-
-
- 2 repeatable diszipliniert
-
- 3 defined standardisiert und konsistent
-
- 4 managed vorhersagbar
-
-
- 5 optimizing kontinuierlich verbessert
4Test Maturity Modell
- In Analogie zum CMM für die Verbesserung des
Software Entwicklungsprozesses exsistiert ein
Modell zur Verbesserung der Prüfvorgänge. Es hat
5 Stufen - Stufe Bezeichnung Testqualität
-
- 1 unsystematisch Test von Programmierern
abhängig -
-
- 2 organisiert Testpläne mit Whitebox und
Blackbox Tests -
- 3 kostensenkend Testplan durch QM vorgegeben
greift in alle Phasen der Entwicklung -
- 4 systematisch Tests mittels Tools
Rückwirkung auf Prozess -
- 5 optimierend Aus Testergebnissen werden
Prozessänderungen - abgeleitet
5Wie beschreibt man ein Maturity Level -1
Maturity Levels
contain
Indicate
Process capability
Key Process Areas
achieve
- Die 5 Reifestufen werden durch
Aktivitätsbereiche und Ergebnisse beschrieben. - Aktivitätsbereichen sind Aufgabenbereiche und
Ziele zugeordnet. - Aufgabenbereiche setzen sich aus Workflows und
Aktivitäten zusammen
Organized by
Goals
Common Features
adress
contain
Implementation or Institutionalization
Key Practices
describe
Infrastructure or Activitites
6Wie beschreibt man ein Maturity Level -2
- Key Process Area
- Aktivitätsbereiche, auf denen Organisationen im
Rahmen der entsprechenden Reifegradstufen
besondere Anstrengungen zur Verbesserung der
Softwarequalität vornehmen sollten. Die Key
Process Areas aufeinander folgender Stufen bauen
aufeinander auf. - Aktivitätsbereiche
- Die dem Bereich zugeordneten Ziele müssen in
mehreren Projekten erfüllt sein, damit die durch
die Key Process Area definierten Fähigkeiten
institutionalisiert sind. - Prozesskategorien
- Management, Organisation, Entwicklung
7Wie beschreibt man ein Maturity Level -3
- Common Features
- Jede Key Process Area ist in fünf
Aufgabenbereiche (Common Features) untergliedert - Unterstützung der Durchführung Definition
von Leitlinien, Unterstützung durch das
Management - Fähigkeit zur Durchführung Zuweisung von
Ressourcen, Errichten von Organisationsstrukturen,
Training - Durchzuführende Aktivitäten Beschreibung
der Schlüsselaufgaben - Bewertung und Analyse Erhebung von Daten
über die Umsetzung - Überprüfung der Umsetzung Überprüfung
durch die Qualitätssicherung und das Management.
8Wie beschreibt man ein Maturity Level -4
- Key Practices
- Wichtigste Maßnahmen und Aktivitäten zur
Erreichung der Ziele einer - Key Process Area.
- Beschrieben wird das Was, nicht das Wie.
- Das Wie ist aufgabenabhängig und Ergebnis des
Tailoring hin auf eine konkrete
Projektkultur.
9Key Process Areas der verschiedenen CMM-Levels
Process change management Technology change
management Defect prevention
Managed (4)
Software quality management Quantitative process
management
Software configuration management Software
quality assurance Software subcontract
management Software project tracking and
oversight Software project planning Requirement
management
Initial (1)
10CMM - Stufe 1 Initial - im Anfangsstadium - 1
- Beschreibung
- Auf der Stufe initial herrscht weitgehend Chaos.
Es gibt keine definierte - Vorgehensweise bei der Software-Erstellung und
-Wartung weder - werden Kostenschätzungen durchgeführt noch gibt
es einen Projektplan. - Werkzeuge sind nicht vorhanden oder kommen nur
sporadisch zum - Einsatz. Änderungen an der Software werden nicht
dokumentiert und - unterliegen keinerlei Kontrolle. Das Management
versteht wenig von - Software und mischt sich selten ein.
Organisationen dieser Art vergessen - in einem Krisenfall vieles, was sie bisher über
einen organisierten - Entwicklungsprozess gelernt haben, und fallen in
alte Gewohnheiten - zurück.
- Ziele Das einzige Ziel dieser Stufe ist es, ein
Projekt zum Abschluss zu bringen. - Alternative Definition
11CMM - Stufe 1 Initial - im Anfangsstadium - 2
- Anforderungen an die Organisation
- Organisationen auf der Ebene 1 müssen zunächst
Projekt-management, Konfigurationskontrolle und
Qualitätsmanagement einführen, wenn sie ihren
Prozess verbessern wollen. - Außerdem sind seitens der Geschäftsführung eine
aktive Beteiligung und der feste Wille zur
Verbesserung wichtige Voraussetzungen. - Aktivitäten
- Einführung von Projektmanagement,
Konfigurationskontrolle und Qualitätsmanagement - Überprüfung des bisher angewandten SE
Prozessmodelles - Alternative Definition
12CMM - Stufe 2 Repeatable - reproduzierbar - 1
- Beschreibung
- Die Stufe repeatable zeichnet sich gegenüber der
Stufe 1 vor allem - dadurch aus, dass ein einmal erzielter Erfolg
wiederholbar ist. Projekte - können also auf Grund vorheriger Erfahrungen
geplant und durchgeführt - werden. Während Organisationen der Stufe 1 im
Einzelfall durchaus - erfolgreich sein könnte, scheitern Projekte
jedoch dann, wenn die fähigen - und engagierten Schlüsselpersonen nicht verfügbar
sind oder das - Unternehmen verlassen. Auf Ebene 2 ist bereits
ein definierter Prozess - implementiert, der die Abhängigkeit von
Einzelpersonen deutlich - vermindert.
- Pläne, Zeit- und Kostenschätzungen werden von
Organisationen auf - dieser Ebene des QMM in der Regel eingehalten.
Dies hat zum Teil seine - Ursache darin, dass es sich immer wieder um
vergleichbare Projekte - handelt.
13CMM - Stufe 2 Repeatable - reproduzierbar - 2
- Änderungen oder Störungen des SE Prozesses
- können alle bisher erreichten Erfolge zunichte
machen, so dass der - Prozess außer Kontrolle gerät. Zu erwähnen sind
hier insbesondere - die Einführung neuer Werkzeuge, wenn sie nicht
mit großer Sorgfalt geplant werden - große Änderungen in der Organisation, z.B. der
Weggang eines fähigen Projektleiters, eine
Veränderung in der Geschäftsleitung, der Einsatz
eines unverhältnismäßig großen Anteils externer
Mitarbeiter im Projekt - der Einstieg in ein völlig neues Arbeitsgebiet,
bei dem sich das Umfeld der Software-Entwicklung
fundamental ändert - ein sehr schnelles Wachstum des Unternehmens.
Programme mit 1 000 000 Quellcode-Zeilen
erfordern eine völlig andere Organisation der
Mitarbeiter und der Wartungsfunktionen als
Software-Systeme in der Größenordnung von 50 000
Quellcode-Zeilen.
14CMM - Stufe 2 Repeatable - reproduzierbar - 3
- Ziele
- Institutionalisierung des Managementprozesses, um
erfolgreichePraktiken wiederverwendbar zu
machen. - Einführung von Meilensteinen, an denen
Projektstand und Projekt-zwischenergebnisse mit
den Kundenanforderungen verglichen werden können. - Anforderungen an die Organisation
- Zum Aufstieg von Ebene 2 auf Ebene 3 hat sich die
Einrichtung einer Software-Prozess-Gruppe
(Software Engineering Process Group) sehr
bewährt. Dies ist eine Gruppe von engagierten,
fachkundigen Mitarbeitern, die sich speziell
dieser Aufgabe widmen. - Weiterhin ist es notwendig, den
Software-Entwicklungsprozess formell zu
definieren und festzuschreiben. - Alternative Definition
15CMM - Stufe 3 Defined - definiert - 1
- Beschreibung
- Der Software-Prozess ist bei Unternehmen der
Stufe 3 standardisiert und konsistent, weil
sowohl die Aktivitäten des SW-Engineerings als - auch die des SW-Managements stabil und
reproduzierbar sind. - Innerhalb einer Produktlinie sind Kosten,
Zeitpläne und Funktionalität unter Kontrolle
und die Ziel-Qualität wird eingehalten. - Im Fall einer Krise werden bewährte
Vorgehensweisen beibehalten. - Ziele
- Quantitative Kontrolle der Prozesse
- Identifikation von Abweichungen
- Entwicklung eines quantitativen Verständnisses
für Prozess- und Produktqualität
16CMM - Stufe 3 Defined - definiert - 2
- Anforderungen an die Organisation
- Obwohl der definierte Prozess eine solide
Ausgangsbasis für weitere Verbesserungen bietet,
gibt es auch auf dieser Ebene weiterhin nur
qualitative Aussagen. Zwar arbeitet der Prozess
weitgehend einwandfrei, doch es fehlen geeignete
Kennzahlen, um den Prozess einordnen und weitere
Maßnahmen anhand konkreter Messwerte vorschlagen
zu können. Es ist in Organisationen dieser Ebene
schwierig, zwei Projekte miteinander zu
vergleichen, da die konkreten Kennwerte fehlen. - Aktivitäten
- Der Weg von Ebene 3 zur nächst höheren Ebene
führt über Metriken. Dazu ist es notwendig, eine
Reihe vorher definierter Messwerte im
Software-Entwicklungsprozess zu definieren und zu
erfassen. - Alternative Definition
17CMM - Stufe 4 Managed - beherrscht - 1
- Beschreibung
- Produktivität und Qualität werden als Teil
eines Messprogramms für wichtige
Prozessaktivitäten über alle Projekte hinweg
erfasst. - Variationen in der Leistungsfähigkeit von
Prozessen werden auf besondere Umstände
zurückgeführt. Entsprechende Maßnahmen
können eingeleitet werden (z.B. Tayloring) - Ziele
- Die Qualität von Software-Produkten dieser
Stufe ist vorhersagbar - und hoch.
- Die Software-Prozessfähigkeit von Unternehmen
der Stufe 4 kann als - quantifizierbar und prognostizierbar
bezeichnet werden. - Genaue Aussagen über Zeit- und Kostenziele
werden möglich
18CMM - Stufe 4 Managed - beherrscht - 2
- Anforderungen an die Organisation
- Zwischenphasen im SE-Prozess sind auch für
andere Gruppen (Management, Kunde) transparent - Korrekturen des SE-Prozesses auf Basis
quantitativer Erkenntnisse möglich - Aktivitäten
- Es wird eine unternehmensweite Prozessdatenbank
zur Sammlung und Analyse verfügbarer Daten
definierter Prozesse geführt. - Alternative Definition
19CMM - Stufe 5 Optimizing - optimiert - 1
- Beschreibung
- Auf dieser Stufe ist die gesamte Organisation auf
kontinuierliche Prozessverbesserungen
ausgerichtet. Daten über die Wirksamkeit von
Prozessen sind zur Durchführung von
Kosten-Nutzen-Analysen und zur Empfehlung von
Prozessänderungen verfügbar. Innovationen, welche
die besten Software Engineering Praktiken
ausnutzen, werden identifiziert und
unternehmensweit eingeführt. Das Management kann
seine Entscheidungen nunmehr auf Zahlen,
Statistiken und Schaubilder abstützen. - Alternative Definition
-
20CMM - Stufe 5 Optimizing - optimiert - 2
- Ziele
- Eine gezielte Einflussnahme auf den Prozess der
Software-Erstellung ist möglich. - Vorgehen und Planung aufgrund von Mutmaßungen und
Schätzungen sind auf dieser Ebene nicht mehr
notwendig. - Prozesssteuerung ist möglich.
- Organisatorische Anforderungen
- Organisation der gesamten Software-Produktion für
alle Beteiligten transparent - Änderungen des Entwicklungsprozesses können
kontrolliert in den Standard-Entwicklungsprozess
übernommen werden - Neue Techniken können bewertet und bei
Nützlichkeit für ein Projekt eingeführt werden