Modello di maturità delle capacità - Capability Maturity Model
Il Capability Maturity Model ( CMM ) è un modello di sviluppo creato nel 1986 dopo uno studio dei dati raccolti da organizzazioni che hanno stipulato un contratto con il Dipartimento della Difesa degli Stati Uniti , che ha finanziato la ricerca. Il termine "maturità" si riferisce al grado di formalità e ottimizzazione dei processi, dalle pratiche ad hoc , ai passaggi formalmente definiti, alle metriche dei risultati gestiti, all'ottimizzazione attiva dei processi.
Lo scopo del modello è migliorare i processi di sviluppo del software esistenti , ma può essere applicato anche ad altri processi.
Nel 2006, il Software Engineering Institute presso la Carnegie Mellon University ha sviluppato la Capability Maturity Model Integration , che ha ampiamente sostituito la CMM e risolve alcuni dei suoi svantaggi.
Panoramica
Il Capability Maturity Model è stato originariamente sviluppato come strumento per valutare oggettivamente la capacità dei processi degli appaltatori governativi di implementare un progetto software a contratto. Il modello si basa sul framework di maturità del processo descritto per la prima volta in IEEE Software e, successivamente, nel libro del 1989 Managing the Software Process di Watts Humphrey . Successivamente è stato pubblicato in un rapporto nel 1993 e come libro degli stessi autori nel 1995.
Sebbene il modello provenga dal campo dello sviluppo del software , è anche utilizzato come modello per aiutare nei processi aziendali in generale ed è stato anche ampiamente utilizzato in tutto il mondo negli uffici governativi, nel commercio e nell'industria.
Storia
Prima necessità di processi software
Negli anni '80, l'uso dei computer è diventato più diffuso, più flessibile e meno costoso. Le organizzazioni iniziarono ad adottare sistemi informatici computerizzati e la domanda di sviluppo software crebbe in modo significativo. Molti processi per lo sviluppo del software erano agli inizi, con pochi approcci standard o " best practice " definiti.
Di conseguenza, la crescita è stata accompagnata da difficoltà crescenti: il fallimento del progetto era comune, il campo dell'informatica era ancora agli inizi e le ambizioni di scala e complessità del progetto superavano la capacità del mercato di fornire prodotti adeguati entro un budget pianificato. Individui come Edward Yourdon , Larry Constantine , Gerald Weinberg , Tom DeMarco e David Parnas hanno iniziato a pubblicare articoli e libri con risultati di ricerca nel tentativo di professionalizzare i processi di sviluppo del software.
Negli anni '80, diversi progetti militari statunitensi che coinvolgevano subappaltatori di software andavano oltre il budget e furono completati molto più tardi del previsto, se non del tutto. Nel tentativo di determinare il motivo per cui ciò stava accadendo, l' aeronautica degli Stati Uniti ha finanziato uno studio presso il Software Engineering Institute (SEI).
Precursore
La prima applicazione di un modello di maturità graduale all'IT non fu da CMU / SEI, ma piuttosto da Richard L. Nolan , che nel 1973 pubblicò le fasi del modello di crescita per le organizzazioni IT.
Watts Humphrey ha iniziato a sviluppare i suoi concetti di maturità dei processi durante le fasi successive dei suoi 27 anni di carriera in IBM.
Sviluppo presso il Software Engineering Institute
Lo sviluppo attivo del modello da parte del SEI (Department of Defense Software Engineering Institute) degli Stati Uniti è iniziato nel 1986 quando Humphrey è entrato a far parte del Software Engineering Institute della Carnegie Mellon University di Pittsburgh, in Pennsylvania, dopo il ritiro da IBM. Su richiesta della US Air Force ha iniziato a formalizzare il suo Process Maturity Framework per aiutare il Dipartimento della Difesa degli Stati Uniti a valutare la capacità degli appaltatori di software come parte dell'aggiudicazione dei contratti.
Il risultato dello studio dell'Air Force è stato un modello per i militari da utilizzare come valutazione oggettiva della maturità della capacità di processo dei subappaltatori di software. Humphrey ha basato questo quadro sulla precedente griglia di maturità della gestione della qualità sviluppata da Philip B. Crosby nel suo libro "La qualità è gratuita". L'approccio di Humphrey differiva a causa della sua visione unica che le organizzazioni maturano i loro processi in fasi basate sulla risoluzione dei problemi di processo in un ordine specifico. Humphrey ha basato il suo approccio sull'evoluzione graduale di un sistema di pratiche di sviluppo software all'interno di un'organizzazione, piuttosto che misurare la maturità di ogni processo di sviluppo separato in modo indipendente. Il CMM è stato quindi utilizzato da diverse organizzazioni come strumento generale e potente per comprendere e quindi migliorare le prestazioni generali dei processi aziendali.
Il Capability Maturity Model (CMM) di Watts Humphrey è stato pubblicato nel 1988 e come libro nel 1989, in Managing the Software Process .
Le organizzazioni sono state inizialmente valutate utilizzando un questionario sulla maturità del processo e un metodo di valutazione della capacità del software ideato da Humphrey e dai suoi colleghi presso il Software Engineering Institute.
La rappresentazione completa del Capability Maturity Model come un insieme di aree e pratiche di processo definite a ciascuno dei cinque livelli di maturità è stata avviata nel 1991, con la versione 1.1 completata nel gennaio 1993. Il CMM è stato pubblicato come libro nel 1995 dal suo principale autori, Mark C. Paulk, Charles V. Weber, Bill Curtis e Mary Beth Chrissis. Stati Uniti d'America New York, USA.
Integrazione del modello di maturità delle capacità
L'applicazione del modello CMM nello sviluppo del software è stata talvolta problematica. L'applicazione di più modelli che non sono integrati all'interno e all'interno di un'organizzazione potrebbe essere costoso in termini di formazione, valutazioni e attività di miglioramento. Il progetto Capability Maturity Model Integration (CMMI) è stato creato per risolvere il problema dell'utilizzo di più modelli per i processi di sviluppo software, quindi il modello CMMI ha sostituito il modello CMM, sebbene il modello CMM continui ad essere un modello di capacità di processo teorico generale utilizzato in di pubblico dominio.
Adattato ad altri processi
Il CMM era originariamente concepito come uno strumento per valutare la capacità degli appaltatori governativi di eseguire un progetto software a contratto. Sebbene provenga dall'area dello sviluppo del software, può essere, è stato e continua ad essere ampiamente applicato come modello generale della maturità del processo (ad esempio, processi di gestione dei servizi IT ) nelle organizzazioni IS / IT (e altre).
Argomenti del modello
Modelli di maturità
Un modello di maturità può essere visto come un insieme di livelli strutturati che descrivono quanto bene i comportamenti, le pratiche ei processi di un'organizzazione possono produrre in modo affidabile e sostenibile i risultati richiesti.
Un modello di maturità può essere utilizzato come punto di riferimento per il confronto e come aiuto alla comprensione, ad esempio per la valutazione comparativa di diverse organizzazioni in cui c'è qualcosa in comune che può essere utilizzato come base per il confronto. Nel caso della CMM, ad esempio, la base per il confronto sarebbero i processi di sviluppo del software delle organizzazioni.
Struttura
Il modello coinvolge cinque aspetti:
- Livelli di maturità: un continuum di maturità del processo a 5 livelli, in cui il livello più alto (5 °) è uno stato ideale teorico in cui i processi sarebbero gestiti sistematicamente da una combinazione di ottimizzazione del processo e miglioramento continuo del processo.
- Aree chiave del processo: un'Area chiave del processo identifica un cluster di attività correlate che, se eseguite insieme, raggiungono una serie di obiettivi considerati importanti.
- Obiettivi: gli obiettivi di un'area chiave del processo riassumono gli stati che devono esistere affinché quell'area chiave del processo sia stata implementata in modo efficace e duraturo. La misura in cui gli obiettivi sono stati raggiunti è un indicatore di quanta capacità l'organizzazione ha stabilito a quel livello di maturità. Gli obiettivi indicano l'ambito, i confini e l'intento di ciascuna area chiave del processo.
- Caratteristiche comuni : le caratteristiche comuni includono pratiche che implementano e istituzionalizzano un'area chiave del processo. Esistono cinque tipi di caratteristiche comuni: impegno a eseguire, capacità di eseguire, attività eseguite, misurazione e analisi e verifica dell'implementazione.
- Pratiche chiave: le pratiche chiave descrivono gli elementi di infrastruttura e pratica che contribuiscono più efficacemente all'implementazione e all'istituzionalizzazione dell'area.
Livelli
Ci sono cinque livelli definiti lungo il continuum del modello e, secondo il SEI: "Si ritiene che la prevedibilità, l'efficacia e il controllo dei processi software di un'organizzazione migliorino man mano che l'organizzazione si sposta su questi cinque livelli. Sebbene non rigorosa, l'evidenza empirica ad oggi sostiene questa convinzione ".
- Iniziale (caotico, ad hoc, eroismo individuale): il punto di partenza per l'uso di un processo di ripetizione nuovo o non documentato.
- Ripetibile : il processo è almeno sufficientemente documentato in modo da poter tentare di ripetere gli stessi passaggi.
- Definito : il processo è definito / confermato come un processo aziendale standard
- Capace : il processo è gestito quantitativamente in base a metriche concordate.
- Efficiente : la gestione dei processi include l'ottimizzazione / il miglioramento deliberato del processo
All'interno di ciascuno di questi livelli di maturità ci sono le aree di processo chiave che caratterizzano quel livello e per ciascuna di queste aree ci sono cinque fattori: obiettivi, impegno, capacità, misurazione e verifica. Questi non sono necessariamente unici per CMM, rappresentando - come fanno - le fasi che le organizzazioni devono attraversare per diventare maturi.
Il modello fornisce un continuum teorico lungo il quale la maturità del processo può essere sviluppata in modo incrementale da un livello all'altro. Saltare i livelli non è consentito / fattibile.
- Livello 1 - iniziale
- È caratteristico dei processi a questo livello che sono (tipicamente) non documentati e in uno stato di cambiamento dinamico, tendendo ad essere guidati in modo ad hoc , incontrollato e reattivo dagli utenti o dagli eventi. Ciò fornisce un ambiente caotico o instabile per i processi. (Esempio: un chirurgo che esegue una nuova operazione un numero limitato di volte - i livelli di esito negativo non sono noti).
- Livello 2 - Ripetibile
- È caratteristico di questo livello di maturità che alcuni processi siano ripetibili, possibilmente con risultati coerenti. È improbabile che la disciplina del processo sia rigorosa, ma laddove esiste può aiutare a garantire che i processi esistenti vengano mantenuti durante i periodi di stress.
- Livello 3: definito
- È caratteristico dei processi a questo livello che vi siano insiemi di processi standard definiti e documentati stabiliti e soggetti a un certo grado di miglioramento nel tempo. Questi processi standard sono in atto. I processi potrebbero non essere stati utilizzati sistematicamente o ripetutamente - sufficiente per consentire agli utenti di diventare competenti o per convalidare il processo in una serie di situazioni. Questa potrebbe essere considerata una fase di sviluppo: con l'uso in una gamma più ampia di condizioni e lo sviluppo della competenza dell'utente, il processo può svilupparsi fino al successivo livello di maturità.
- Livello 4 - Gestito (in grado)
- È caratteristico dei processi a questo livello che, utilizzando metriche di processo, l'effettivo raggiungimento degli obiettivi di processo può essere evidenziato in una serie di condizioni operative. L'idoneità del processo in più ambienti è stata testata e il processo è stato perfezionato e adattato. Gli utenti del processo hanno sperimentato il processo in condizioni multiple e varie e sono in grado di dimostrare competenza. La maturità del processo consente l'adattamento a progetti particolari senza perdite misurabili di qualità o deviazioni dalle specifiche. La capacità di processo è stabilita da questo livello. (Esempio: chirurgo che esegue un'operazione centinaia di volte con livelli di esito negativo prossimi allo zero).
- Livello 5 - Ottimizzazione (efficiente)
- È una caratteristica dei processi a questo livello il fatto che l'attenzione sia rivolta al miglioramento continuo delle prestazioni dei processi attraverso cambiamenti / miglioramenti tecnologici sia incrementali che innovativi. Al livello di maturità 5, i processi si occupano di affrontare le cause statistiche comuni di variazione del processo e modificare il processo (ad esempio, per spostare la media delle prestazioni del processo) per migliorare le prestazioni del processo. Ciò verrebbe fatto contemporaneamente a mantenere la probabilità di raggiungere gli obiettivi quantitativi di miglioramento del processo stabiliti.
Tra il 2008 e il 2019, circa il 12% delle valutazioni fornite ha raggiunto i livelli di maturità 4 e 5.
Critica
Il modello era originariamente destinato a valutare la capacità degli appaltatori governativi di eseguire un progetto software. È stato utilizzato e può essere adatto a tale scopo, ma i critici hanno sottolineato che la maturità del processo secondo il CMM non era necessariamente obbligatoria per lo sviluppo di software di successo.
Framework dei processi software
Il framework del processo software documentato ha lo scopo di guidare coloro che desiderano valutare la coerenza di un'organizzazione o di un progetto con le aree chiave del processo. Per ogni livello di maturità ci sono cinque tipi di checklist:
genere Descrizione Politica Descrive i contenuti della politica e gli obiettivi KPA raccomandati dalle aree di processo chiave. Standard Descrive il contenuto consigliato di prodotti di lavoro selezionati descritti nelle aree di processo chiave. Processi Descrive il contenuto delle informazioni di processo consigliato dalle aree di processo chiave. Questi sono raffinati in liste di controllo per: - Ruoli, criteri di ingresso, input, attività, output, criteri di uscita, revisioni e audit, prodotti di lavoro gestiti e controllati, misurazioni, procedure documentate, formazione e strumenti
Procedura Descrive il contenuto consigliato delle procedure documentate descritte nelle aree chiave del processo. Panoramica dei livelli Fornisce una panoramica di un intero livello di maturità. Questi sono ulteriormente raffinati in liste di controllo per: - Scopi, obiettivi, politiche e standard delle aree di processo chiave; descrizioni dei processi; procedure; formazione; utensili; revisioni e audit; prodotti da lavoro; misurazioni
Guarda anche
- Modello di immaturità delle capacità
- Integrazione del modello di maturità delle capacità
- Modello di maturità delle capacità delle persone
- Test del modello di maturità