# Capability Maturity Model

Capability Maturity Model Integration (CMMI) è un approccio al miglioramento dei processi il cui obiettivo è di aiutare un'organizzazione a migliorare le sue prestazioni. Il CMMI può essere usato per guidare il miglioramento dei processi all'interno di un progetto, una divisione o un'intera organizzazione. La versione supportata è la 1.3.
Nel software engineering e in generale in tutti i casi in cui si vogliono rivedere i processi organizzativi, il CMMI è un approccio al miglioramento dei processi che fornisce alle organizzazioni gli elementi essenziali per un efficace miglioramento dei processi. CMMI è un marchio registrato negli USA dalla Carnegie Mellon University.
Secondo il Software Engineering Institute (SEI, 2008), il CMMI aiuta a "integrare funzioni organizzative che tradizionalmente erano separate, definire obiettivi e priorità per il miglioramento dei processi, fornire una guida per la qualità dei processi e fornire un punto di riferimento per la valutazione dei processi attuali."
Il Capability Maturity Model Integration è l'erede del CMM, sviluppato dal 1987 al 1997. Nel 2002 fu resa disponibile la versione 1.1, seguita dalla 1.2 nell'agosto 2006 e dalla 1.3 nel novembre 2010. Il CMMI è un framework metodologico integrato di modelli CMM; si propone di integrare i molteplici modelli CMM sviluppati per settore e comparto industriale, al prezzo di una maggiore generalità.
Il CMMI fu promosso dall'Ufficio del Segretario della Difesa USA (OSD), dal SEI, dall'Associazione Industriale per la Difesa Nazionale (NDIA).
Il CMMI è un modello che indica ventidue Aree di processi aziendali (Process area) strutturate su cinque livelli, ognuna con i propri obiettivi generici (Generic Goal) e specifici (Specific Goal). Gli obiettivi generici e specifici sono implementati da una sequenza temporale di attività generiche (Generic practice) e specifiche (specific practice), che hanno determinate tipologie di output (tipical work product).
A loro volta, le attività vengono in alcuni casi dettagliate in una sequenza di secondo livello di sub-attività generiche (generic sub-practice) e specifiche (specific sub-practice).
La generica azienda deve classificare i suoi processi secondo le Process Area indicate nel CMMI per condurre un'analisi dei divari fra la situazione attuale e il "to-be" indicato.
Il SEI ha concesso la certificazione CMMI ai processi di varie di aziende in tutto il mondo. Si tratta di aziende informatiche delle quali sono stati certificati i processi di ingegneria del software. Fra queste, una decina di aziende indiane; in Italia, per prima la IBM.
La certificazione CMMI ha una durata di tre anni, dopodiché l'azienda deve chiederne il rinnovo, per il quale deve ovviamente sottoporsi a nuovo esame da parte del CMMI Institute.
Nel 2013 la Carnegie Mellon University ha istituito il CMMI Institute, che si occupa di fornire le certificazioni CMMI.
Le aziende certificate spesso forniscono consulenza e formazione per raggiungere tale obiettivo.
Non esiste ancora una traduzione in italiano del Capability Maturity Model.

## Valutazioni del modello
### Valutazioni del SEI su 60 aziende

Il SEI ha constatato che 60 società hanno misurato miglioramenti delle loro prestazioni in termini di costi, qualità, produttività e soddisfazione del cliente con miglioramenti compresi fra il 14% della soddisfazione del cliente al 62% di incremento della produttività. Il CMMI in molti casi si limita a dichiarare quali miglioramenti dei processi devono essere raggiunti, ma non in quale modo. In particolare, non indica gli attori, le applicazioni e le strutture informatiche protagoniste del cambiamento.
I benefici dell'implementazione di un framework CMMI sono limitati per piccole organizzazioni. È significativo che il 70.5% delle società del campione con meno di 25 dipendenti si collochi al livello 2, mentre il 52.8% di quelle che hanno fra i 1000 e i 2000 dipendenti, si collochi al livello più alto (livello 5: ottimizzato).

### Analisi comparative in letteratura

Turner & Jain (2002) hanno svolto un'analisi comparativa della metodologia CMMI e dei metodi Agile di sviluppo del software, concludendo che non esiste un approccio ottimale per l'intero progetto, ma che entrambi i metodi hanno molti aspetti in comune e uno dei due risulta il migliore a seconda delle fasi del progetto.
Questo suggerisce una metodologia ibrida che combina i due approcci. Una combinazione di Earned Value Management e CMMI è stata descritta da Salomon nel 2002. Nawrocki e altri, sempre nel 2002, hanno concluso che un'altra metodologia di sviluppo del software, l'Extreme Programming (XP), è incompatibile col CMMI. Agile Jeff Dalton (editore Auerbach Publication (2007).

## Le Process Area

L'elenco completo delle Process Area è il seguente:
CAR - Causal Analysis and Resolution CM - Configuration Management DAR - Decision Analysis and Resolution IPM - Integrated Project Management +IPPD MA - Measurement and Analysis OID - Organizational Innovation and Deployment OPD - Organizational Process Definition +IPPD OPF - Organizational Process Focus OPP - Organizational Process Performance OT - Organizational Training PI - Product Integration PMC - Project Monitoring and Control PP - Project Planning PPQA - Process and Product Quality Assurance QPM - Quantitative Project Management RD - Requirements Development REQM - Requirements Management RSKM - Risk Management SAM - Supplier Agreement Management TS - Technical Solution VAL - Validation VER - Verification