Kapabilitetsmodenhedsmodel (CMM) i softwareudvikling

⚡ Smart opsummering

Capability Maturity Model (CMM) er en benchmark, der bruges til at måle, hvor moden en organisations softwareproces er. Den er udviklet på Software Engineering Institute og definerer fem niveauer, der guider teams fra kaotisk, ad hoc-arbejde mod kontinuerlig, optimeret forbedring.

  • 📊 Definition: CMM er en benchmark, der måler modenheden af ​​en organisations softwareudviklingsproces.
  • 🏛️ Oprindelse: Det blev udviklet på Software Engineering Institute i slutningen af ​​1980'erne for det amerikanske luftvåben.
  • 🪜 Fem niveauer: Modenhedsstigen er initial, administreret, defineret, kvantitativt styret og optimerende.
  • Implementeringstid: Fuld implementering tager typisk måneder pr. niveau, ikke en ændring natten over.
  • 🧩 Nøgle procesområder: Hvert niveau, undtagen niveau 1, er defineret af nøgleprocesområder (KPA'er), der grupperer relaterede mål.
  • ⚠️ Begrænsning: CMM angiver, hvad en proces skal adressere, ikke hvordan den skal implementeres, og ignorerer forretningsstrategi.

Capability Maturity Model (CMM)

Hvad er CMM?

Kapacitet Modenhed Model bruges som et benchmark til at måle modenheden af ​​en organisations softwareproces.

CMM blev udviklet på Software Engineering Institute i slutningen af ​​80'erne. Det blev udviklet som et resultat af en undersøgelse finansieret af det amerikanske luftvåben som en måde at evaluere arbejdet hos subkonstruktører.tractorer. Later, baseret på CMM-SW-modellen, der blev oprettet i 1991 for at vurdere modenheden af ​​softwareudvikling, blev flere andre modeller integreret med CMM-I.

Kapacitet Modenhed Model

Hvad er Capability Maturity Model (CMM) niveauer?

Modellen definerer fem progressive modenhedsniveauer:

  1. Initial
  2. Gentagelig/administreret
  3. Defineret
  4. Kvantitativt styret
  5. Optimering

Capability Maturity Model (CMM) niveauer

Hvad sker der på forskellige niveauer af CMM?

Tabellen nedenfor viser aktiviteterne og fordelene på hvert niveau.

Niveauer Aktiviteter Fordele
Niveau 1 Initial
  • På niveau 1 er processen normalt kaotisk og ad hoc.
  • En evne karakteriseres ud fra individerne og ikke organisationen.
  • Fremskridt måles ikke.
  • Udviklede produkter er ofte bagud i forhold til tidsplanen og over budgettet.
  • Store variationer i tidsplan, omkostninger, funktionalitet og kvalitetsmål.
Ingen. Et projekt er Totalt Kaos.
Niveau 2 Administreret
  • Kravsstyring
  • Estimer projektparametre som omkostninger, tidsplan og funktionalitet
  • Mål faktiske fremskridt
  • Udvikle planer og proces
  • Softwareprojektstandarder er defineret
  • Identificer og kontroller produkter, problemrapporter, ændringer osv.
  • Processer kan variere mellem projekter
  • Processer bliver lettere at forstå
  • Ledere og teammedlemmer bruger mindre tid på at forklare, hvordan tingene gøres, og mere tid på at udføre dem
  • Projekter er bedre estimeret, bedre planlagt og mere fleksible
  • Kvalitet er integreret i projekter
  • Omkostningerne kan være høje i starten, men falder over tid
  • Kræver mere papirarbejde og dokumentation
Niveau-3 defineret
  • Afklar kundens krav
  • Løs designkrav, udvikle en implementeringsproces
  • Sørger for, at produktet opfylder kravene og den tilsigtede anvendelse
  • Analyser beslutninger systematisk
  • Afhjælp og kontroller potentielle problemer
  • Procesforbedring bliver standarden
  • Løsningen udvikler sig fra at være "kodet" til at blive "konstrueret"
  • Kvalitetsporte vises gennem hele projektindsatsen med hele teamet involveret i processen
  • Risici mindskes og overrasker ikke teamet
Niveau-4 Kvantitativt styret
  • Styrer projektets processer og delprocesser statistisk
  • Forstå procespræstationer, kvantitativt styre organisationens projekt
  • Optimerer procesydelse på tværs af organisationen
  • Fremmer kvantitativ projektledelse i en organisation
Niveau-5 optimering
  • Opdag og fjern årsagen til defekter tidligt
  • Identificer og implementer nye værktøjer og procesforbedringer for at imødekomme behov og forretningsmål
  • Fremmer organisatorisk innovation og implementering
  • Giver impulser til kausal analyse og opløsning

Følgende diagram giver en billedlig repræsentation af, hvad der sker på forskellige CMM-niveauer:

Forskellige niveauer af CMM

Hvor lang tid tager det at implementere CMM?

CMM er den mest ønskværdige proces til at opretholde produktets kvalitet for enhver softwareudviklingsvirksomhed, men implementeringen tager lidt længere tid end forventet.

  • Implementering af CMM sker ikke natten over.
  • Det er ikke bare "papirarbejde".
  • Typiske implementeringstidspunkter er:
  • 3-6 måneder -> til forberedelse
  • 6-12 måneder -> til implementering
  • 3 måneder -> til vurderingsforberedelse
  • 12 måneder -> for hvert nyt niveau

Intern struktur af CMM

Hvert niveau i CMM er defineret som et nøgleprocesområde eller KPA, undtagen niveau 1. Hver KPA definerer en klynge af relaterede aktiviteter, som, når de udføres kollektivt, opnår et sæt mål, der anses for afgørende for at forbedre softwarekapaciteten.

For forskellige CMM-niveauer findes der sæt af KPA'er. For eksempel er KPA'erne for CMM-model 2:

  • REQM – Kravstyring
  • PP – Projektplanlægning
  • PMC – Projektovervågning og -kontrol
  • SAM – Leverandøraftalestyring
  • PPQA – Proces og kvalitetssikring
  • CM – Konfigurationsstyring

Ligeledes har du for andre CMM-modeller specifikke KPA'er. For at vide, om implementeringen af ​​en KPA er effektiv, varig og gentagelig, kortlægges den på følgende grundlag:

  1. Forpligtelse til at præstere
  2. Evne til at præstere
  3. Udførte aktiviteter
  4. Måling og analyse
  5. Verifikation af implementering

Begrænsninger af CMM-modeller

Modellen har også flere begrænsninger:

  • CMM bestemmer, hvad en proces skal adressere, i stedet for hvordan den skal implementeres.
  • Den forklarer ikke alle muligheder for forbedring af softwareprocesser.
  • Den fokuserer på softwareproblemer, men tager ikke højde for strategisk forretningsplanlægning, implementering af teknologier, etablering af en produktlinje og styring af menneskelige ressourcer.
  • Den fortæller ikke, hvilken slags forretning en organisation bør være i.
  • CMM vil ikke være nyttig i et projekt, der er i krise lige nu.

Hvorfor bruge CMM?

I dag fungerer CMM som et "blåstemplingsstempel" i softwarebranchen. Det hjælper på forskellige måder med at forbedre softwarekvaliteten.

  • Det leder hen imod en gentagelig standardproces og reducerer dermed den tid, det tager at lære, hvordan man får tingene gjort.
  • At praktisere CMM betyder at praktisere en standardprotokol for udvikling, hvilket betyder, at det ikke kun hjælper teamet med at spare tid, men også giver et klart overblik over, hvad de skal gøre, og hvad de kan forvente.
  • Kvalitetsaktiviteterne passer godt ind i projektet i stedet for at blive opfattet som en separat begivenhed.
  • Den fungerer som en kommunikator mellem projektet og teamet.
  • CMM-indsatsen er altid rettet mod forbedring af processen.

Ofte Stillede Spørgsmål

CMM er den oprindelige model, der primært fokuserede på modenhed af softwareprocesser. CMMI (Capability Maturity Model Integration) er dens efterfølger og dækker software, hardware og tjenester med et integreret framework. De fleste organisationer anvender i dag CMMI i stedet for den ældre CMM.

CMM bruges i vid udstrækning inden for IT- og softwaretjenester, forsvar, luftfart, bankvirksomhed og telekommunikation. Enhver organisation, der outsourcer eller leverer kompleks software, bruger det til at benchmarke kvalitet, reducere risiko og demonstrere pålidelige, gentagelige processer til kunder.

Ja, selvom CMMI i vid udstrækning har erstattet den oprindelige CMM. Modenhedsvurderinger er fortsat relevante for organisationer, der skal bevise procesdisciplin i outsourcing af processer.tracts, offentlige udbud og kvalitetsrevisioner, selv sideløbende med Agile- og DevOps-praksisser.

AI kan analysere procesdata, opdage fejl tidligt og forudsige tidsplan- eller omkostningsrisici. Ved at automatisere måling og rapportering understøtter den de højere CMM-niveauer, hvor organisationer er afhængige af kvantitativ styring og kontinuerlig, datadrevet forbedring.

Ja. AI-værktøjer automatiserer testning, kodegennemgang og procesovervågning, hvilket gør praksis gentagelig og målbar. Dette hjælper teams med at bevæge sig fra ad hoc-arbejde til definerede og optimerede niveauer, selvom menneskelig styring stadig er nødvendig for at opretholde gevinsterne.

Opsummer dette indlæg med: