CMMIs historia

Konsten att förutsäga utfallet av kvalitet och planer samt hitta förbättringspotensial har gamla anor. Grunderna lades redan på 30-talet när man började titta närmare på principerna bakom statistisk kvalitetskontroll. Då kunde man demonstrera hur man praktiskt kunde hantera statistisk processkontroll och på 80-talet tog Phil Crosby fram en mognadsmatris för kvalitet. I slutet av 80-talet anpassade Watts Humhrey (som då arbetatde på IBM) tillsammans med SEI Crosbys modnadsmatris för mjukvaruprocesser och lade till konceptet med mognadsnivåer.

Förmåga att leverera

Det amerikanska försvaret agerade tidigt beställare av stora mjukvaruprojekt. Det handlade om stora projekt med höga kvalitetskrav. Projekten resulterade ofta i stora förseningar, vilket medförde stora merkostnader. De sökte då efter ett sätt att få kontroll på mjukvaruprojekten.

Så i början av 90-talet engagerades Software Engineering Institute(SEI) på Carnegie Mellon University för att finna ett sätt att utvärdera de olika potentiella leverantörernas förmåga att leverera. Med ”förmåga att leverera” menas att kunna leverera inom tänkt funktionalitet inom överenskommen tid och med en tillfredställande kvalitet.

Förbättringsarbete

Arbetet baserades på Humhreys arbete och man analyserade tusentals mjukvarauprojekt för att försöka förstå vad som skiljer lyckade från misslyckade projekt. Detta resulterade i den första versionen av CMM (Cability Maturity Model). Grundtanken med modellen är produkten som ska tas fram är helt beroende på hur arbetet utförs, och hur arbetet utförs beror på en organisations förmåga att utföra arbetet. Modellen kan användas både för att utvärdera en organisations förmåga att utveckla mjukvara (som det amerikanska försvaret var ute efter) och som ledning för vilka områden man bör fokusera ett förbättringsarbete.

År 2000 uppdateras CMM till CMMI (Capability Maturity Model Integration), vilket innebar mer att man utökade perspektivet från mjukvara till system. CMMI är idag dessutom uppdelat i tre områden:

  • CMMI för Development - För produktutvecklande organisationer
  • CMMI for Acquisition – För upphandlande organisationer
  • CMMI for Services – För tjänste levererande organisationer