Capability Maturity Model (CMM) och dess nivåer inom mjukvaruteknik

Vad är CMM?

Capability Maturity Model används som ett riktmärke för att mäta mognad av en organisations mjukvaruprocess.

CMM utvecklades vid Software Engineering Institute i slutet av 80-talet. Den utvecklades som ett resultat av en studie finansierad av det amerikanska flygvapnet som ett sätt att utvärdera underleverantörernas arbete. Later baserat på CMM-SW-modellen skapad 1991 för att bedöma mognad av mjukvaruutveckling, flera andra modeller är integrerade med CMM-I de är

Kapacitet Mognadsmodell

Vad är Capability Maturity Model (CMM) Levels?

  1. Initial
  2. Repeterbar/hanterad
  3. Definierad
  4. Kvantitativt hanterad
  5. Optimera

Capability Maturity Model (CMM) nivåer

Vad händer på olika nivåer av CMM?

Nivåer Stationer & aktiviteter Fördelar
Nivå 1 Initial
  • På nivå 1 är processen vanligtvis kaotisk och ad hoc
  • En förmåga karakteriseras utifrån individerna och inte av organisationen
  • Framsteg inte mätt
  • Produkter som utvecklas är ofta schemalagda och över budget
  • Stora variationer i schema, kostnad, funktionalitet och kvalitetsmål
Ingen. Ett projekt är Total Chaos
Nivå 2 Hanterad
  • Kravshantering
  • Uppskatta projektparametrar som kostnad, schema och funktionalitet
  • Mät faktiska framsteg
  • Ta fram planer och process
  • Mjukvaruprojektstandarder definieras
  • Identifiera och kontrollera produkter, problemrapporter förändringar, etc.
  • Processer kan skilja sig åt mellan projekten
  • Processer blir lättare att förstå
  • Chefer och teammedlemmar lägger mindre tid på att förklara hur saker görs och mer tid på att utföra det
  • Projekt är bättre uppskattade, bättre planerade och mer flexibla
  • Kvalitet integreras i projekt
  • Kostnaden kan vara hög initialt men går ner övertid
  • Be om mer pappersarbete och dokumentation
Nivå-3 definierad
  • Förtydliga kundkrav
  • Lösa designkrav, utveckla en implementeringsprocess
  • Säkerställer att produkten uppfyller kraven och avsedd användning
  • Analysera beslut systematiskt
  • Åtgärda och kontrollera potentiella problem
  • Processförbättring blir standard
  • Lösningen går från att vara "kodad" till att vara "konstruerad"
  • Kvalitetsportar dyker upp under hela projektarbetet med hela teamet involverat i processen
  • Riskerna minskas och överraskar inte laget
Nivå-4 Kvantitativt hanterad
  • Hanterar projektets processer och delprocesser statistiskt
  • Förstå processprestanda, kvantitativt hantera organisationens projekt
  • Optimerar processprestanda i hela organisationen
  • Främjar kvantitativ projektledning i en organisation.
Nivå-5 Optimering
  • Upptäck och ta bort orsaken till defekterna tidigt
  • Identifiera och implementera nya verktyg och processförbättringar för att möta behov och affärsmål
  • Främjar organisatorisk innovation och implementering
  • Ger impulser till orsaksanalys och upplösning

Följande diagram ger en bildrepresentation av vad som händer på olika CMM-nivåer

Olika nivåer av CMM

Hur lång tid tar det att implementera CMM?

CMM är den mest önskvärda processen för att upprätthålla kvaliteten på produkten för alla mjukvaruutvecklingsföretag, men implementeringen tar lite längre tid än vad som förväntas.

  • CMM-implementering sker inte över en natt
  • Det är bara inte bara ett "pappersarbete".
  • Typiska tider för implementering är
  • 3-6 månader -> för förberedelser
  • 6-12 månader -> för genomförande
  • 3 månader -> för bedömningsförberedelser
  • 12 månader ->för varje ny nivå

Intern struktur för CMM

Varje nivå i CMM definieras i nyckelprocessområde eller KPA, förutom nivå-1. Varje KPA definierar ett kluster av relaterade aktiviteter, som när de utförs kollektivt uppnår en uppsättning mål som anses vara avgörande för att förbättra mjukvarukapaciteten

För olika CMM-nivåer finns det uppsättningar av KPA:er, till exempel för CMM modell-2, KPA är

  • REQM- Kravhantering
  • PP- Projektering
  • PMC- Projektövervakning och kontroll
  • SAM- Leverantörsavtalshantering
  • PPQA-process och kvalitetssäkring
  • CM-Configuration Management

På samma sätt, för andra CMM-modeller, har du specifika KPA:er. För att veta om implementeringen av en KPA är effektiv, varaktig och repeterbar, kartläggs den på följande basis

  1. Engagemang att prestera
  2. Förmåga att prestera
  3. Aktiviteter utförs
  4. Mätning och analys
  5. Verifierar implementering

Begränsningar för CMM-modeller

  • CMM bestämmer vad en process ska ta upp istället för hur den ska implementeras
  • Det förklarar inte alla möjligheter till förbättring av mjukvaruprocesser
  • Den koncentrerar sig på mjukvarufrågor men tar inte hänsyn till strategisk affärsplanering, antagande av teknik, upprättande av produktlinje och hantering av mänskliga resurser
  • Det säger inte om vilken typ av verksamhet en organisation ska vara i
  • CMM kommer inte att vara användbart i projektet som har en kris just nu

Varför använda CMM?

Idag fungerar CMM som ett "godkännandemärke" inom mjukvaruindustrin. Det hjälper på olika sätt att förbättra mjukvarans kvalitet.

  • Den vägleder mot repeterbar standardprocess och minskar därmed inlärningstiden för hur man får saker gjorda
  • Att öva på CMM innebär att öva på standardprotokoll för utveckling, vilket betyder att det inte bara hjälper teamet att spara tid utan också ger en tydlig bild av vad de ska göra och vad som kan förväntas
  • Kvalitetsaktiviteterna passar väl ihop med projektet snarare än att ses som ett separat evenemang
  • Den fungerar som en pendlare mellan projektet och teamet
  • CMM:s ansträngningar syftar alltid till att förbättra processen

Sammanfattning

CMM introducerades först i slutet av 80-talet i US Air Force för att utvärdera underleverantörers arbete. Later på, med förbättrad version, implementerades den för att spåra kvaliteten på mjukvaruutvecklingssystemet.

Hela CMM-nivån är uppdelad i fem nivåer.

  • Nivå 1 (Initialt): Där kraven på systemet vanligtvis är osäkra, missförstådda och okontrollerade. Processen är vanligtvis kaotisk och ad hoc.
  • Nivå 2 (Managed): Uppskatta projektkostnad, schema och funktionalitet. Programvarustandarder definieras
  • Nivå 3 (Definierat): Säkerställer att produkten uppfyller kraven och avsedd användning
  • Nivå 4 (Quantitatively Managed): Hanterar projektets processer och delprocesser statistiskt
  • Nivå 5 (Mognad): Identifiera och implementera nya verktyg och processförbättringar för att möta behov och affärsmål