Capability Maturity Model (CMM) förklaras på 5 minuter eller mindre

By rik

Capability Maturity Model (CMM) erbjuder ett effektivt och enkelt sätt att expandera olika funktioner i din organisation.

För att leda en verksamhet, styra ett system eller hantera en grupp är det avgörande att förstå kapaciteten.

När du har identifierat ditt företags olika funktioner är det nödvändigt att utvärdera prestandan för var och en av dessa. Utifrån detta kan du fastställa standarder och målsättningar för din verksamhet.

För att mäta och följa upp prestanda och framsteg för varje funktion och individ behöver entreprenörer och företagsledare en stabil metod för att hantera detta.

På så sätt kan ett företag utveckla system som kan hantera komplexitet och tillhandahålla den noggrannhet som krävs för att växa.

Det är här CMM kommer in i bilden.

I den här texten kommer jag att diskutera vad CMM och CMMI är, deras nivåer och de distinkta skillnaderna mellan dem.

Låt oss börja!

Vad är Capability Maturity Model?

Capability Maturity Model (CMM) är en välbeprövad metod för att skapa och förbättra en organisations process för utveckling av applikationer. Detta underlättar för utvecklare att optimera mjukvaruutvecklingsprocessen, vilket leder till ökad konsistens och effektivitet.

Oavsett din roll i utvecklingsteamet kan kunskap om CMM hjälpa dig att förbättra din prestation. CMM kan således beskrivas som en metod för att bedöma, utveckla och förbättra mjukvaruutvecklingsprocessen.

CMM specificerar viktiga procedurer för mjukvaruutveckling och andra processer relaterade till konstruktion, ledning och planering. Den bygger på antagandet att kontinuerliga förbättringar kan uppnås genom gradvisa framsteg snarare än stora genombrott.

Den erbjuder också en struktur för att hantera mindre framsteg genom olika mognadsnivåer för att erbjuda en grund för kontinuerlig förbättring av mjukvaruutvecklingsprocessen. Därför fungerar metoden som kärnan i ledningssystem som är utformade för att förbättra utvecklingskvaliteten för produkter och tjänster, samt deras leverans.

CMM skapades och marknadsfördes av SEI (Software Engineering Institute), ett forsknings- och utvecklingscenter finansierat av US DOD. Det är numera en del av Carnegie Mellon University. SEI grundades 1984 för att hantera olika mjukvaruproblem och främja mjukvarumetoder.

SEI:s syfte var att optimera utvecklingen, förvärvet och underhållsprocessen för komplexa programvarusystem för försvarsdepartementet (DOD). De förespråkar branschövergripande användning av den uppdaterade CMM, det vill säga CMM Integration (CMMI).

Varför behöver man CMM?

CMM har flera fördelar, där den mest betydande är förmågan att spara tid och pengar. Detta beror på att systemet är utformat för att identifiera fel i förbättringsprocessen mer effektivt än andra modeller.

CMM förbättrar också affärsprocesser och minskar drastiska förändringar i produktionsscheman. Eftersom CMM var den första modellen som utformats för att förbättra den industriella processen, kan den fungera som grund för andra modellskapelser, såsom den förbättrade versionen av CMM (dvs. CMMI), Business Capability Maturity Model (BCMM) och fler.

CMM är en flexibel modell som passar alla processer och marknader. Oavsett vilken bransch du tillhör, om du har ett utvecklingsteam kan medlemmarna använda modellen för att korrigera fel i processen.

Fem mognadsnivåer i CMM

De fem nivåerna i Capability Maturity Model (CMM) i utvecklingsprocessen är:

#1. Initial nivå

På denna nivå är processerna oorganiserade, ibland rentav kaotiska. Framgången beror här på den enskilda medlemmens ansträngningar och betraktas inte som en process som kan upprepas. Detta beror på att processen inte är tillräckligt väldokumenterad och definierad för att kunna replikeras.

Processer som följs är omogna och ad hoc, vilket skapar en instabil miljö för din mjukvaruutveckling. Det saknas också en grund för att förutsäga produktens kvalitet och tidsramen för färdigställande.

#2. Repeterbar

På denna nivå är nödvändiga processer väl etablerade, dokumenterade och definierade. Projektledningsmetoder är korrekt implementerade, även om framgång kanske inte är konsekvent inom alla viktiga processområden.

Den repeterbara nivån uppnås genom att fastställa grundläggande principer för projektledning. Erfarenheter från tidigare projekt används för att vägleda liknande projekt. Detta innefattar att specificera nödvändiga resurser, mål, begränsningar och mer för projektet.

Denna nivå presenterar en detaljerad plan som måste följas noggrant för att framgångsrikt slutföra kvalitetsmjukvara. Det huvudsakliga målet är att bibehålla produktens prestanda, inklusive dess komponenter, under hela mjukvarans livscykel.

Den repeterbara nivån innefattar även kundåterkoppling och granskningshantering, vilket kan leda till vissa ändringar i de initiala kraven. Denna kravhantering innebär att anpassa sig till de ändrade kraven.

Vidare fokuserar hantering av underleverantörer på att leda kvalificerade leverantörer för mjukvaruutveckling. Detta innebär att hantera vissa mjukvarudelar som utvecklats av tredje part. Kvalitetssäkring av mjukvara säkerställer en högkvalitativ produkt med hjälp av regler och standarder under utvecklingsprocessen.

#3. Definierad

Dokumentation av riktlinjer och rutiner sker på denna nivå. Det finns en väldefinierad uppsättning mjukvaruutvecklingsprocesser och hantering. Detta innefattar:

  • Granskning av kollegor: I den här metoden elimineras defekter genom olika granskningsprocesser som inspektioner, kontroller av kollegor, genomgångar etc.
  • Samordning mellan grupper: Denna metod innebär samverkan mellan flera utvecklingsteam för att garantera att behoven uppfylls på ett korrekt och effektivt sätt.
  • Definition av organisationsprocess: Metoden fokuserar på att utveckla och underhålla mjukvaruutvecklingsprocesser.
  • Fokus på organisationsprocess: Detta innefattar praxis och aktiviteter som måste följas för att förbättra organisationens processkapacitet.
  • Utbildningsprogram: Utbildningsprogram fokuserar på att öka teammedlemmarnas kunskaper och kompetens, samt säkerställa en förbättring av arbetseffektiviteten.

#4. Hanterad

På denna nivå fastställs kvantitativa mål för mjukvaruproduktens kvalitet och mjukvaruprocesser i en organisation. De mätningar som görs gör det möjligt för organisationen att förutsäga processen och produktkvaliteten inom de kvantitativt definierade gränserna.

Denna nivå innefattar strategier och planer som upprättats för att utveckla och förstå kvantitativ analys och produktkvalitet. Den fokuserar även på att hantera projektprestanda.

#5. Optimerande

Detta är det sista stadiet av processmognad i CMM som enbart fokuserar på kontinuerlig förbättring av utvecklingsprocesserna i organisationen genom kvantitativ återkoppling. Detta görs genom att använda tekniker, utvärdering och verktyg för mjukvaruprocesser för att undvika att kända defekter återkommer.

Denna nivå innefattar:

  • Hantering av processförändringar: Denna hanteringsprocess fokuserar på kontinuerlig förbättring av processerna för mjukvaruutveckling. Detta förbättrar kvaliteten, cykeltiden och produktiviteten för mjukvaruprodukten.
  • Hantering av teknikförändringar: Denna process består av användningen av tekniker och identifieringstekniker för att förbättra produktens kvalitet och minska utvecklingstiden.
  • Förebyggande av defekter: Förebyggande av defekter kan åstadkommas genom att identifiera orsaken till defekterna och förhindra att dessa defekter återkommer i nästa projekt. Detta förbättrar projektdefinierade processer.

Capability Maturity Model Integration

Capability Maturity Model Integration (CMMI) är en processmodell som organisationer kan använda för att förbättra utvecklingsprocesser, öka effektiviteten i beteendet och förbättra produktiviteten i arbetsflödet, samtidigt som de utvecklar en produkt, tjänst eller projekt. Detta leder till att riskerna minskar under hela processen.

CMMI utvecklades och introducerades av Carnegie Mellon University. Den främsta avsikten med denna utveckling är att öka effektiviteten och användbarheten av mognadsmodeller som kan mäta en organisations förmåga att kontinuerligt förbättra sig inom vissa områden. Detta uppnås genom att integrera flera modeller i ett gemensamt ramverk.

Den första versionen lanserades 2002 och nästa 2006. 2010 kom version 1.3 och den senaste versionen 2.0 lanserades 2018, med förändringar för att göra den mer tillgänglig, effektiv osv., för företag.

CMMI förvärvades av ISACA (tidigare känt som Information Systems Audit and Control Association), som innehar certifieringar som COBIT-ramverket. CMMI är en process- och beteendemodell som stödjer organisationer genom hela utvecklingsprocessen av produkter eller tjänster.

Målet med CMMI är därmed tydligt. Det används för att öka kvaliteten på tjänsten eller produkten genom att använda den modell som uppfyller kundernas förväntningar och ökar värdet på en organisation på marknaden. Den utvärderar också företagets anseende och värdet av intressenter i branschen.

CMMI berör för närvarande följande områden:

  • CMMI för utveckling: Det används för att utveckla produkter och tjänster.
  • CMMI för tjänster: Det används för att etablera, leverera och hantera tjänster.
  • CMMI för förvärv: Det används för förvärv av produkter och tjänster.

Representation av CMMI

CMMI-representation låter en organisation sträva efter en uppsättning förbättringsmål. Det finns två representationer:

Iscensatt representation

  • Den använder en fast uppsättning utvecklingsprocessområden för att beskriva förbättringsvägen.
  • Den erbjuder en serie förbättringar, där varje del av serien fungerar som en struktur för nästa förbättring.
  • Den definierar en förbättrad väg med hjälp av mognadsnivåer. Och mognadsnivån indikerar mognaden i organisationens olika processer.
  • Den gör det möjligt att jämföra olika organisationer baserat på deras mognadsnivåer.

Kontinuerlig representation

  • Den möjliggör val av specifika processområden.
  • Den använder kapacitetsnivåer för att mäta förbättringen av den individuella processen.
  • Den möjliggör jämförelser mellan organisationer baserat på processområde för processområde.
  • Kontinuerlig representation tillåter även organisationer att välja mellan olika processer för bättre förbättringar.
  • I denna representation kan organisationer uppnå sina mål och minska risker genom att välja en förbättringsordning för olika processer.

Stadier i CMMI

Det finns fem mognadsstadier i CMMI med stegvis representation:

#1. Initial: På denna nivå är utvecklingsprocesser dåligt kontrollerade eller hanterade. Detta innebär även oförutsägbara resultat av utvecklingsprocesserna. Dessutom används kaotiska och ad hoc-metoder. Det finns inga definierade nyckelprocessområden (KPA). Kvaliteten är låg och produkten eller tjänsterna har den högsta risken.

#2. Hanterad: I detta mognadsstadium hanteras kraven på ett adekvat sätt och utvecklingsprocesser kontrolleras och planeras. Här hanteras och genomförs projektet enligt dokumenterade planer. Risken finns fortfarande, men den är lägre än på den initiala nivån.

#3. Definierad: På den definierade mognadsnivån är utvecklingsprocesserna välbeskrivna och karakteriserade med hjälp av korrekta procedurer, standarder, verktyg och metoder. Kvaliteten som uppnås är medelhög och risken är också medelhög.

#4. Kvantitativt hanterad: I denna modell fastställs kvantitativa mål för kvalitets- och prestandaprocesser. Detta baseras på organisationens behov, kundkrav etc. Processprestandamåtten analyseras kvantitativt. Här är processerna av högre kvalitet med lägre risk.

#5. Optimering: Detta är det sista steget i mognadsmodellen som innebär kontinuerliga förbättringar av prestanda och processer. Förbättringarna på denna nivå är både innovativa och inkrementella. Processerna och prestandan är av högre kvalitet och risken är lägst.

Kapacitetsnivåer för CMMI

En kapacitetsnivå indikerar relevant praxis för ett specifikt processområde för att förbättra en organisations processer relaterade till det området. Det finns sex kapacitetsnivåer för CMMI-modeller:

  • Kapacitetsnivå 0 (Ofullständig): Den innefattar ofullständiga, partiella och icke utförda processer. På denna nivå finns inga generella mål.
  • Kapacitetsnivå 1 (Utförd): Processprestandan är inte stabil på denna nivå. Mål för kostnad, tidsplan och kvalitet uppnås inte. Nivå 1-processen måste genomföra specifika metoder.
  • Kapacitetsnivå 2 (Hanterad): Processen övervakas, kontrolleras och planeras på denna nivå. Här är målen både modellbaserade och andra, såsom kvalitet, tidplan och kostnad. Organisationen behöver aktivt hantera processer med hjälp av mätetal.
  • Kapacitetsnivå 3 (Definierad): Det är en definierad nivå där processen hanteras väl och uppfyller en uppsättning organisatoriska riktlinjer och standarder. Den fokuserar på processstandardisering.
  • Kapacitetsnivå 4 (Kvantitativt hanterad): Här styrs processen med kvantitativa och statistiska tekniker. På denna nivå förstås processprestanda i mått och statistiska termer.
  • Kapacitetsnivå 5 (Optimering): Denna nivå fokuserar på kontinuerlig förbättring av processprestanda. Prestanda förbättras på både innovativa och inkrementella sätt.

CMM vs. CMMI: Skillnad

CMMI är en uppdaterad eller nyare version av CMM. SEI utvecklade CMMI för att standardisera och integrera CMM, som har olika modeller för varje funktion som den täcker. Dessa modeller är inte synkroniserade; att integrera dem gör processen flexibel och effektiv.

När det gäller nyckelprocessområden, praxis, mognadsnivåer och mål liknar CMMI-strukturen CMM-strukturen. CMMI erbjuder dock två olika sätt att representera processerna.

Låt oss undersöka några fler skillnader mellan CMM och CMMI:

CMM CMMI
Utveckling CMM står för Capability Maturity Model och utvecklades 1984. CMMI står för Capability Maturity Model Integration och utvecklades 2006.
Syfte Det är en beteendemodell som är utvecklad för att mäta mjukvaruutvecklingsprocesserna i en organisation. Det är en uppdaterad version av CMM-modellen som är mer uppgiftsorienterad och effektiv.
Huvudfokus Det primära syftet är att utvärdera mognadsnivåerna i mjukvaruutvecklingsprocessen. Det primära syftet är att kombinera olika programvarumodeller till en enda och övervinna vissa CMM-nackdelar.
Steg CMM har fem steg: Initial, repeterbar, definierad, hanterad och optimerad. CMMI har fem steg: Initial, hanterad, definierad, kvantitativt hanterad och optimerad.
Effektivitet CMM är mindre effektivt. CMMI är mer effektivt.
Orientering Det är mer processorienterat. Det är mer målinriktat.

Slutsats

Capability Maturity Model (CMM) är ett system för att lösa problem i mjukvaruutvecklingsprocesser i branscher. Det kan skydda företag från att hantera processrelaterade problem.

Å andra sidan har CMMI en mer avancerad metodik än CMM. Det innebär att uppfylla kundernas förväntningar, skapa värde, främja tillväxt på marknaden, förbättra produkt- och tjänstekvaliteten och förbättra företagets anseende.

Du kan även undersöka Application Lifecycle Management-ramverket som underlättar utveckling och leverans av mjukvara enligt tidplan, inom budget och med hög kvalitet.