Capability Maturity Model (CMM) in Software Engineering

⚡ Slimme samenvatting

Het Capability Maturity Model (CMM) is een maatstaf die wordt gebruikt om de volwassenheid van het softwareproces van een organisatie te meten. Het model is ontwikkeld door het Software Engineering Institute en definieert vijf niveaus die teams begeleiden van chaotisch, ad-hoc werk naar continue, geoptimaliseerde verbetering.

  • 📊 Definitie: CMM is een maatstaf die de volwassenheid van het softwareontwikkelingsproces van een organisatie meet.
  • ️ Oorsprong: Het werd eind jaren tachtig ontwikkeld aan het Software Engineering Institute voor de Amerikaanse luchtmacht.
  • 🪜 Vijf niveaus: De volwassenheidsladder bestaat uit de volgende fasen: Initieel, Beheerd, Gedefinieerd, Kwantitatief Beheerd en Optimaliserend.
  • ⏳ Implementatietijd: Volledige implementatie duurt doorgaans maanden per niveau, het is geen verandering die van de ene op de andere dag plaatsvindt.
  • 🧩 Belangrijkste procesgebieden: Elk niveau, met uitzondering van niveau 1, wordt gedefinieerd door kernprocesgebieden (KPA's) die gerelateerde doelen groeperen.
  • ⚠️ Beperking: CMM beschrijft wat een proces moet aanpakken, niet hoe het geïmplementeerd moet worden, en negeert de bedrijfsstrategie.

Capability Maturity-model (CMM)

Wat is CMM?

Vermogen volwassenheidsmodel wordt gebruikt als maatstaf om de volwassenheid van het softwareproces van een organisatie te meten.

CMM werd eind jaren 80 ontwikkeld aan het Software Engineering Institute. Het werd ontwikkeld als resultaat van een onderzoek, gefinancierd door de Amerikaanse luchtmacht, om het werk van onderaannemers te evalueren.tractoeren. LaterGebaseerd op het CMM-SW-model, dat in 1991 werd ontwikkeld om de volwassenheid van softwareontwikkeling te beoordelen, werden diverse andere modellen in CMM-I geïntegreerd.

Vermogen volwassenheidsmodel

Wat zijn Capability Maturity Model (CMM)-niveaus?

Het model definieert vijf progressieve rijpingsniveaus:

  1. Eerste
  2. Herhaalbaar/beheerd
  3. Bepaald
  4. Kwantitatief beheerd
  5. Het optimaliseren van

Capability Maturity Model (CMM)-niveaus

Wat gebeurt er op verschillende niveaus van CMM?

De tabel hieronder geeft een overzicht van de activiteiten en voordelen op elk niveau.

Niveaus Activiteiten Voordelen:
Niveau 1 Initieel
  • Op niveau 1 is het proces doorgaans chaotisch en ad hoc.
  • Een competentie wordt gekarakteriseerd op basis van de individuen en niet op basis van de organisatie.
  • Vooruitgang wordt niet gemeten.
  • De producten die ontwikkeld worden, lopen vaak achter op schema en overschrijden het budget.
  • Er bestaan ​​grote verschillen in planning, kosten, functionaliteit en kwaliteitsdoelstellingen.
Geen. Een project is totale chaos.
Niveau 2 Beheerd
  • Beheer van vereisten
  • Schat projectparameters zoals kosten, planning en functionaliteit
  • Meet de daadwerkelijke vooruitgang
  • Plannen en processen ontwikkelen
  • Er zijn softwareprojectstandaarden gedefinieerd
  • Producten, probleemmeldingen, wijzigingen, enz. identificeren en beheren.
  • Processen kunnen per project verschillen
  • Processen worden makkelijker te begrijpen
  • Managers en teamleden besteden minder tijd aan het uitleggen hoe dingen gedaan worden en meer tijd aan de uitvoering ervan.
  • Projecten worden beter ingeschat, beter gepland en zijn flexibeler.
  • Kwaliteit wordt geïntegreerd in projecten
  • De kosten kunnen in eerste instantie hoog zijn, maar dalen na verloop van tijd.
  • Vereist meer papierwerk en documentatie.
Niveau 3 gedefinieerd
  • Maak de wensen van de klant duidelijk
  • Los ontwerpvereisten op, ontwikkel een implementatieproces
  • Zorgt ervoor dat het product voldoet aan de eisen en het beoogde gebruik.
  • Analyseer beslissingen systematisch
  • Mogelijke problemen corrigeren en beheersen
  • Procesverbetering wordt de standaard
  • De oplossing evolueert van ‘gecodeerd’ naar ‘ontworpen’
  • Kwaliteitspoorten verschijnen tijdens de gehele projectinspanning, waarbij het hele team bij het proces betrokken is
  • Risico's worden beperkt en het team wordt niet verrast.
Niveau 4 kwantitatief beheerd
  • Beheert de processen en subprocessen van het project op statistische wijze
  • Begrijp de procesprestaties en beheer het project van de organisatie kwantitatief
  • Optimaliseert procesprestaties in de hele organisatie
  • Bevordert kwantitatief projectmanagement binnen een organisatie.
Niveau 5 optimaliseren
  • De oorzaak van defecten vroegtijdig opsporen en wegnemen
  • Identificeer en implementeer nieuwe tools en procesverbeteringen om aan de behoeften en bedrijfsdoelstellingen te voldoen
  • Bevordert organisatorische innovatie en implementatie
  • Geeft een impuls aan causale analyse en oplossing

Het volgende diagram geeft een visuele weergave van wat er op verschillende CMM-niveaus gebeurt:

Verschillende niveaus van CMM

Hoe lang duurt het om CMM te implementeren?

CMM is het meest wenselijke proces om de productkwaliteit te waarborgen voor elk softwareontwikkelingsbedrijf, maar de implementatie ervan duurt iets langer dan verwacht.

  • De implementatie van CMM vindt niet van de ene op de andere dag plaats.
  • Het is niet zomaar "papierwerk".
  • De gebruikelijke implementatietijden zijn:
  • 3-6 maand -> ter voorbereiding
  • 6-12 maand -> voor implementatie
  • 3 maanden -> voor beoordelingsvoorbereiding
  • 12 maanden -> voor elk nieuw niveau

Interne structuur van CMM

Elk niveau in CMM wordt gedefinieerd in een sleutelprocesgebied of KPA, met uitzondering van niveau 1. Elke KPA definieert een cluster van gerelateerde activiteiten die, wanneer ze gezamenlijk worden uitgevoerd, een reeks doelen bereiken die essentieel worden geacht voor het verbeteren van de softwarefunctionaliteit.

Voor verschillende CMM-niveaus zijn er sets KPA's. Voor CMM-model 2 zijn de KPA's bijvoorbeeld:

  • REQM – Vereistenbeheer
  • PP – Projectplanning
  • PMC – Projectmonitoring en -controle
  • SAM – Leveranciersovereenkomstbeheer
  • PPQA – Proces- en kwaliteitsborging
  • CM – Configuratiebeheer

Ook voor andere CMM-modellen gelden specifieke KPA's. Om te bepalen of de implementatie van een KPA effectief, duurzaam en herhaalbaar is, wordt deze op de volgende basis in kaart gebracht:

  1. Engagement om te presteren
  2. Vermogen om te presteren
  3. Uitgevoerde activiteiten
  4. Meting en analyse
  5. Het verifiëren van de implementatie

Beperkingen van CMM-modellen

Het model kent echter ook een aantal beperkingen:

  • CMM bepaalt wat een proces moet aanpakken, in plaats van hoe het moet worden geïmplementeerd.
  • Het beschrijft niet alle mogelijkheden voor verbetering van softwareprocessen.
  • Het richt zich op softwarekwesties, maar houdt geen rekening met strategische bedrijfsplanning, het implementeren van technologieën, het opzetten van een productlijn en het beheren van personeel.
  • Het zegt niets over wat voor soort bedrijf een organisatie zou moeten zijn.
  • CMM zal niet nuttig zijn in een project dat zich momenteel in een crisis bevindt.

Waarom CMM gebruiken?

Tegenwoordig fungeert CMM als een soort keurmerk in de software-industrie. Het draagt ​​op verschillende manieren bij aan de verbetering van de softwarekwaliteit.

  • Het leidt tot een herhaalbaar standaardproces en verkort daardoor de leertijd voor het uitvoeren van taken.
  • Het toepassen van CMM betekent het volgen van een standaardprotocol voor de ontwikkeling. Dit bespaart het team niet alleen tijd, maar zorgt ook voor een duidelijk beeld van wat er moet gebeuren en wat er verwacht kan worden.
  • De kwaliteitsactiviteiten sluiten goed aan op het project en worden niet als een losstaand evenement beschouwd.
  • Het fungeert als communicatiemiddel tussen het project en het team.
  • De inspanningen van CMM zijn altijd gericht op het verbeteren van het proces.

Veelgestelde vragen

CMM is het oorspronkelijke model dat zich voornamelijk richtte op de volwassenheid van softwareprocessen. CMMI (Capability Maturity Model Integration) is de opvolger ervan en omvat software, hardware en services met een geïntegreerd raamwerk. De meeste organisaties gebruiken tegenwoordig CMMI in plaats van het oudere CMM.

CMM wordt veel gebruikt in IT en softwarediensten, defensie, lucht- en ruimtevaart, de banksector en de telecommunicatie. Elke organisatie die complexe software uitbesteedt of levert, gebruikt het om de kwaliteit te beoordelen, risico's te verminderen en betrouwbare, herhaalbare processen aan klanten te demonstreren.

Ja, hoewel CMMI de oorspronkelijke CMM grotendeels heeft vervangen, blijven volwassenheidsbeoordelingen relevant voor organisaties die procesdiscipline moeten aantonen bij het uitbesteden van processen.tracts, overheidsaanbestedingen en kwaliteitsaudits, zelfs in combinatie met Agile- en DevOps-werkwijzen.

AI kan procesgegevens analyseren, defecten vroegtijdig opsporen en risico's voor planning of kosten voorspellen. Door metingen en rapportages te automatiseren, ondersteunt het de hogere CMM-niveaus, waar organisaties vertrouwen op kwantitatief beheer en continue, datagestuurde verbetering.

Ja. AI-tools automatiseren testen, codebeoordeling en procesbewaking, waardoor werkwijzen herhaalbaar en meetbaar worden. Dit helpt teams om van ad-hocwerk over te stappen naar gedefinieerde en geoptimaliseerde niveaus, hoewel menselijke begeleiding nog steeds nodig is om de behaalde resultaten te behouden.

Vat dit bericht samen met: