Ercole Colonese

Consulenza di direzione e IT

Home |  Sviluppo software | Gestione servizi IT | Gestione progetti | Test e collaudi | Competenze relazionali | Servizi | Pubblicazioni | Chi sono | Info

CMMI for Development, Version 1.3

Sito Web

Home > Sviluppo software

Contesto italiano attuale

Metodologia proposta

Competenze professionali

SWEBOK

Processi maturi

Processo di sviluppo

Processo di gestione

Metodi e tecniche

Metriche

Strumenti

Modelli di maturità

EFQM

> CMMI

TMMi

TPI

P-CMM

Norme e standard

Best Practice proposte

Formazione

Breve storia dell'Ingegneria del software

 

Il CMMI® (Capability Maturity Model®, Integration), messo a punto dal SEI® (Software Engineering Institute), è un modello per il miglioramento della maturità dei processi rivolto allo sviluppo di prodotti e servizi.

Il livello di maturità dei processi è definito su di una scala a cinque livelli. A ciascun livello di maturità sono associate aree di competenza (KPA - Key Process Area).

Il modello prevede due rappresentazioni: "staged" e "continuous".

In continua evoluzione, il modello è stato di recente presentato nella sua versione 1.3 che presenta alcune importanti modifiche rispetto alla versione precedente.

Costellazione di modelli CMMI

Inizialmente disegnato per valutare le organizzazioni software (SW-CMM), il modello si è evoluto e attualmente consta di tre modelli differenti per altrettanti settori produttivi:

  • CMMI for Development (CMMI-DEV): modello di riferimento per le organizzazioni che si occupano di sviluppo e manutenzione di prodotti e servizi. Si applica a diversi settori d'industria. Nasce per lo sviluppo software (SW-CMM) e poi si evolve fino al modello attuale.

  • CMMI for Service (CMMI-SVC): modello per le organizzazioni che si occupano di servizi veri e propri (es.: servizi IT). Pur mantenendo lo schema base del modello CMMI include le componenti principali del modello ITIL per i servizi IT.

  • CMMI for Acquisition (CMMI-ACQ): modello per l'acquisizione di beni e servizi. 

I tre modelli costituiscono quella che viene chiamata "Costellazione CMMI".

Il modello di cui ci si occupa in questa sezione del sito è il modello per lo sviluppo software: CMMI for Development (CMMI-DEV).

Approccio basato sul processo

Nella sua ricerca per aiutare le organizzazioni a sviluppare e mantenere la qualità dei loro prodotti e servizi, Il SEI ha trovato diverse dimensioni su cui l'organizzazione può focalizzarsi per migliorare il proprio business. La figura che segue illustra le tre dimensioni critiche per un'organizzazione tipica: persone, procedure e metodi, strumenti e apparecchiature. Le tre dimensioni costituiscono la base del "Processo" (nel modello detto "Area di processo"), elemento cardine del modello CMMI.

CMMI_DimensioniProcesso

Figura: Dimensioni del processo

Goals and Practices

Il modello CMMI è definito in termini di obiettivi (Goals) e pratiche per raggiungerli (Practices). Obiettivi e pratiche sono interrelate a seconda del modello adottato per la sua implementazione (staged o continuous). La figura che segue fornisce una rappresentazione grafica della struttura delle due rappresentazioni (staged e continuous) del modello CMMI e le relazioni tra obiettivi e pratiche.

 CMMI_StrutturaRappresentazioni

Figura: Struttura delle rappresentazioni "staged" e "continuous"

Approccio scalare (staged)

CMMI fornisce due approcci diversi con relativi metodi di valutazione: scalare (staged) e continuo (continuous).

La rappresentazione a livelli (staged) utilizza un approccio per aree di processi. Ogni area contiene un numero di processi legati all'area specifica. Il modello prevede quindi che l'organizzazione migliori tutti i processi di tutte le aree previste in un determinato livello di maturità. 

In questo approccio (generalmente quello più seguito), sono definiti cinque livelli di maturità che, in ordine crescente, sono:

  1. Initial

  2. Managed

  3. Defined

  4. Quantitatively Managed

  5. Optimizing

I livelli di maturità prevedono un insieme stabilito di aree di processo (Process Area). I livelli di maturità sono misurati dal raggiungimento degli obiettivi specifici e generici definiti per ciascuna area di processo. I cinque livelli di maturità del modello sono rappresentati nella figura che segue.

 

 

 

 

 

 

 

 

 

 

 

 

 

Figura: Modello CMMI "Staged" a 5 livelli (SEI)

Livello di maturità 1: Initial

Al livello di maturità iniziale, i processi sono generalmente ad hoc e caotici. L'organizzazione abitualmente non dispone di ambienti di sviluppo stabili. Il successo raggiunto da tali organizzazioni dipende esclusivamente dalla competenza e dall'eroismo delle persone e non sull'utilizzo di processi consolidati. A dispetto di tali ambienti caotici e ad hoc, tali organizzazioni possono anche realizzare buoni prodotti e servizi software; tuttavia essi non possono prevedere i risultati finali e spesso non riescono a rispettare i tempi di consegna ed il budget.

Le organizzazioni che sono al livello di maturità 1 tendono a sottovalutare gli impegni e ad assumersene più di quanti ne possano rispettare, sono indotte ad abbandonare i processi nei momenti di crisi e non sono in grado di ripetere i successi ottenuti in precedenza.

Livello di maturità 2: Managed

Al livello di maturità 2, un'organizzazione ha raggiunto tutti gli obiettivi specifici e quelli generici definiti per le aree di processo associate al livello. In altre parole, i progetti sviluppati dall'organizzazione assicurano che i requisiti sono gestiti e che i processi sono pianificati, eseguiti, misurati e controllati.

Il livello di maturità raggiunto dall'organizzazione assicura che i processi sono seguiti anche in condizione di stress. Le pratiche assicurano che i progetti sono gestiti in accordo con i piani documentati. I requisiti, i processi, i prodotti intermedi realizzati, i servizi sono tutti gestiti. Lo stato degli artefatti realizzati e dei prodotti rilasciati e dei servizi erogati sono visibili al management come atteso.

Gli impegni sono stabiliti tenendo conto di tutti gli attori coinvolti (stakeholders) e da essi rivisti. Questi rivedono e controllano gli artefatti ed i servizi per verificare che soddisfino i requisiti, gli standard e gli obiettivi.

Livello di maturità 3: Defined

Al livello di maturità 3, un'organizzazione ha raggiunto tutti gli obiettivi definiti per il livello di maturità precedente (livello 2) più tutti quelli definiti per le aree del presente livello. A questo livello di maturità tutti i processi sono ben caratterizzati e compresi dall'organizzazione, definiscono gli standard, le procedure, gli strumenti ed i metodi.

L'insieme dei processi definiti costituiscono uno standard per l'organizzazione. Essi (i processi) sono utilizzati da tutti e migliorati con regolarità nella loro efficacia ed efficienza. I progetti stabiliscono quali processi utilizzare e li personalizzano per adattarli alle loro esigenze secondo regole stabilite.

Il management dell'organizzazione stabilisce gli obiettivi dei processi in base agli obiettivi dell'organizzazione stessa e ne assicura il controllo.

La caratteristica più saliente del livello di maturità 3 è quella di stabilire processi comuni per l'intera organizzazione e linee guida per la loro personalizzazione nei diversi progetti.

Livello di maturità 4: Quantitatively Managed

Al livello di maturità 4, un'organizzazione ha raggiunto tutti gli obiettivi definiti per i precedenti livelli (livello 2 e 3) più tutti quelli definiti per il livello attuale. Sono definiti i sottoprocessi che maggiormente contribuiscono alle performance generali dei processi stessi. I sottoprocessi selezionati sono controllati utilizzando tecniche statistiche o altre tecniche quantitative.

Gli obiettivi quantitativi stabiliti per valutare la qualità e le performance dei processi costituiscono i criteri utilizzati per la gestione dei processi stessi. Tali obiettivi indirizzano le necessità del cliente, degli utenti finali, dell'organizzazione e dei responsabili della gestione dei processi.

I processi sono misurati e valutati nelle loro performance tramite la raccolta e l'analisi statistica dei dati delle misurazioni effettuate sui risultati ottenuti. Eventuali variazioni dai valori attesi sono analizzate e le cause rimosse con opportune azioni correttive che ne prevengano il ripetersi.

Le misure sulla qualità e le performance dei processi sono memorizzate nell'apposito archivio in modo da supportare con i fatti il processo decisionale dell'organizzazione.

La caratteristica più saliente del livello di maturità 4 è quello di permettere una previsione dei risultati dei processi con sufficiente accuratezza a seguito del controllo statistico effettuato.

Livello di maturità 5: Optimizing

Al livello di maturità 5, un'organizzazione ha raggiunto tutti gli obiettivi definiti per i precedenti livelli (livello 2, 3 e 4) più tutti quelli definiti per il livello attuale. I processi sono migliorati di continuo in base alla comprensione quantitativa delle "cause comuni" delle varianze statistiche sui risultati dei processi.

Il miglioramento continuo delle performance dei processi è raggiunto tramite azioni incrementali ed innovative delle tecnologie utilizzate. Gli obiettivi di miglioramento dei processi sono stabiliti in base agli obiettivi di business dell'organizzazione. Essi sono quindi definiti, misurati e revisionati di continuo per riflettere eventuali cambiamenti negli obiettivi di business dell'organizzazione.

La caratteristica più saliente del livello di maturità 5 consiste nel tipo di varianza statistica indirizzata dalle azioni di miglioramento dei processi. Nel livello di maturità 4 sono indirizzate le "cause speciali" che producono varianze sui processi e ne impediscono la predicibilità statistica dei risultati. Nel livello di maturità 5 sono indirizzate le "cause comuni" e sono modificati i processi stessi per migliorarne le performance e mantenere la predicibilità dei risultati.

Approccio continuo (continuous)

La rappresentazione continua permette di selezionare una o più aree di processi (Process Area) e di migliorare i processi che vi fanno parte. Questo tipo di rappresentazione utilizza i livelli di Capability per valutare il livello di maturità raggiunta nell'area selezionata.

Figura: Modello CMMI "Continuous" (SEI)

L'approccio continuo è più flessibile in quanto permette di intervenire sui processi più critici, quelli  che maggiormente interessano l'organizzazione, tralasciando quelli meno importanti.

In questo approccio sono definiti quattro livelli di "capability":

  • Livello 0: Incomplete

  • Livello 1: Performed

  • Livello 2: Managed

  • Livello 3: Defined

Aree di processo (KPAs)

Per ciascun livello di maturità è definito un insieme di "pratiche" che permettono, quando eseguire correttamente, di raggiungere gli obiettivi definiti e considerati importanti per l'area stessa. Le pratiche sono azioni da eseguire per raggiungere gli obiettivi.

Il modello CMMI definisce le KPA come aree di processo focalizzate su specifici ambiti.

Il grado di maturità dei processi è definito su di una scala a cinque livelli.

A ciascun livello di maturità sono associate aree di competenza (KPA - Key Process Area).

Level Focus Process Area

5. Optimizing

Continuous Process Improvement

Organizational Performance Management (OPD)

Causal Analysis and Resolution (CAR)

4. Quantitatively Managed

Quantitative Management

Organizational Process Performance (OPP)

Quantitative Project Management (QPM)

3. Defined

Process Standardization

Requirements Development (RD)

Technical Solution (TS)

Product Integration (PI)

Validation (VAL)

Verification (VER)

Organizational Process Focus (OPF)

Organizational Process Definition (OPD)

Organizational Training (OT)

Product Integration (PI)

Risk Management (RSKM)

Decision Analysis and Resolution (DAR)

2. Managed

Basic Project Management

Requirements Management (RM)

Project Planning (PP)

Project Monitoring and Control (PMC)

Supplier Agreement Management (SAM)

Measurement and Analysis (MEA)

Process and Product Quality Assurance (PPQA)

Configuration Management (CM)

1. Initial

None

None

IDEAL: Implementazione del modello

IDEAL è la metodologia per il miglioramento dei processi definito dal Software Engineering Institute (SEI) relativamente al modello CMMI.

IDEAL è l'acronimo che identifica le fasi del processo definito: Initiating, Diagnosing, Establishing, Acting e Learning.

 

Figura: Modello IDEAL per implementare CMMI (SEI).

L'approccio si sviluppa con una fase Iniziale ed una sequenza di fasi successive che si sviluppano ciclicamente: Diagnosi del sistema attuale,Predisposizione di un piano di attività, Esecuzione del piano, Valutazione dei risultati raggiunti nel ciclo attuale per impostare il ciclo successivo.

Fasi del ciclo IDEAL

In breve, le fasi previste sono:

Initiating: la fase di avvio vede il coinvolgimento dell'intera struttura manageriale dell'organizzazione per raggiungere il consenso totale sul progetto di trasformazione: stabilire obiettivi, definire ruoli e responsabilità, concordare piani, assicurare risorse e tecnologie.

Diagnosing: nella fase successiva si valuta il "gap" esistente tra lo stato attuale ("As is") e quello finale ("To be"), obiettivo da raggiungere. La valutazione è effettuata tramite una metodologia consolidata (Assessment) più o meno formale a seconda delle necessità (Appraisal di tipo C, B o A). Quella di tipo A è una valutazione formale, richiede tempi e risorse economiche maggiori ed è svolta secondo la metodologia SCAMPI. Quelle di tipo B e C sono meno formali e richiedono tempi e risorse inferiori.

Establishing: quindi si definiscono le priorità di intervento sulle aree di miglioramento identificate nel corso della valutazione precedente. Si realizza un vero e proprio piano di miglioramento (Process Improvement Plan).

Acting: le attività previste dal piano tendono a stabilire nuovi standard, a progettare processi e procedure ottimizzate, a introdurre metriche e misurazioni, a definire ruoli e responsabilità adeguate alle nuove esigenze, a formare il personale secondo le nuove politiche ecc. Il tutto è sperimentato nella pratica per valutarne l'efficacia.

Learning: la fase conclusiva è finalizzata a identificare gli approcci e le esperienze più efficaci, quelli che hanno fornito maggiori e migliori risultati per proporli nelle fasi del ciclo successivo, se previsto.

Si può così iniziare, se necessario, un ciclo successivo con nuovi obiettivi di miglioramento.

Un modello sempre valido al miglioramento rimane quello di Deming composto dalle quattro fasi classiche: Plan, Do, Check, Act.

SCAMPI: Valutazione del livello di maturità

La valutazione del livello di maturità (o di capability) raggiunto dall'organizzazione è un elemento importantissimo della metodologia CMMI. Essa permette infatti di determinare il livello raggiunto, di evidenziare eventuali scostamenti (gap) rispetto al modello da indirizzare con azioni opportune, di rendere noto all'esterno la correttezza delle pratiche di gestione adottate e di soddisfare al meglio, in ultima analisi, le necessità dei clienti.

La valutazione deve essere univoca e oggettiva. Ciò è garantito dall'aderenza ai requisiti definiti nell'Appraisal Requirements for CMMI (ARC).

la metodologia di valutazione è detta SCAMPI (Standard CMMI Appraisal Method for Process Improvement). 

Figura: Modello di valutazione SCAMPI.

La metodologia prevede tre diversi livelli di valutazione (A, B, C).

SCAMPI di Classe A è il metodo più rigoroso ed è l'unico che fornisce risultati numerici. Esso va in profondità e si concentra su specifiche aree e processi.

SCAMPI di Classe B è un metodo meno rigoroso, più ampio e meno profondo. Si utilizza fondamentalmente per valutare il miglioramento e individuare le aree di intervento.

SCAMPI di Classe C, infine, è il metodo meno rigoroso, più ampio e meno profondo. Si utilizza per avere una valutazione di massima sullo stato di un'area di processo (o di più aree di processo) e per formulare piani di miglioramento.

Benefici

La tabella che segue riassume i maggiori vantaggi conseguiti dalle organizzazioni che hanno adottato il modello CMMI (fonte SEI).

Category Improvement
Cost 34%
Planning 50%
Productivity 61%
Quality 48%
Customer Satisfaction 14%
ROI 4:1

News/Articoli/Libri

News

Collaudo e qualità del software

Sviluppare software oggi in Italia ...

 

Collaborazioni

Tesit Consulting

Tino Giannini

CPM Team Consulting

Felice Del Mauro

Associazioni

AICQ-ci

APCO

itSMF Italia

 

Collegamenti utili/Link

SEI

CMMI-Dev

IDEAL

ARC

SCAMPI

Best practice proposte

 

Ercole Colonese © 2005-2013 | Home | Mappa del sito | Pubblicazioni | Chi sono | Info |