CMM & CMMI: Forbedre bedriftens effektivitet – En enkel guide

En Capability Maturity Model (CMM) er en effektiv og relativt enkel måte å skalere ulike forretningsfunksjoner på.

For å lede en bedrift, kontrollere et system eller administrere en gruppe, er det viktig å forstå kapasiteten til de ulike enhetene eller prosessene.

Etter å ha definert virksomhetens forskjellige funksjoner, er det nødvendig å evaluere ytelsen til hver av dem. Deretter kan man sette standarder og mål for virksomheten.

For å vurdere og overvåke fremdriften og ytelsen til hver enkelt funksjon og ansatt, trenger ledere og gründere et robust system for å samle inn og analysere relevante data.

Dette gjør det mulig for en virksomhet å utvikle systemer som kan håndtere kompleksitet og sørge for den presisjonen som kreves for å skalere effektivt.

Det er her CMM kommer inn i bildet.

I denne artikkelen vil vi utforske hva CMM og CMMI er, deres forskjellige nivåer, og de viktigste forskjellene mellom dem.

La oss begynne!

Hva er en Capability Maturity Model?

En Capability Maturity Model (CMM) er en etablert metode for å strukturere og finjustere en organisasjons applikasjonsutviklingsprosess. Den hjelper utviklere med å forbedre programvareutviklingsprosessen, noe som fører til økt konsistens og effektivitet.

Uavhengig av din rolle i utviklingsteamet, vil en forståelse av CMM bidra til å heve din individuelle ytelse. Kort sagt, CMM er en tilnærming som brukes til å evaluere, utvikle og forbedre programvareutviklingsprosessen.

CMM presenterer grunnleggende prosedyrer for programvareutvikling og andre relaterte prosesser innen engineering, ledelse og planlegging. Den er basert på ideen om at kontinuerlig forbedring oppnås best gjennom inkrementelle fremskritt heller enn store, radikale endringer.

Modellen gir et rammeverk for å administrere disse små, gradvise forbedringene ved hjelp av ulike modenhetsnivåer, og legger grunnlaget for kontinuerlig forbedring av programvareutviklingen. Dermed fungerer CMM som en sentral komponent i styringssystemer som er designet for å heve kvaliteten på produkter og tjenester, samt deres leveranser.

CMM ble skapt og fremmet av Software Engineering Institute (SEI), et forsknings- og utviklingssenter som er finansiert av det amerikanske forsvarsdepartementet (US DOD). SEI er nå en del av Carnegie Mellon University. SEI ble etablert i 1984 for å håndtere ulike utfordringer innen programvare og for å fremme gode metoder for programvareutvikling.

SEI ble opprettet for å optimere utviklingen, anskaffelsen og vedlikeholdet av programvareintensive systemer for forsvarsdepartementet. Instituttet støtter aktiv bruk av den utviklende CMM, kjent som CMM Integration (CMMI), i bransjen.

Hvorfor er CMM nyttig?

CMM har mange fordeler, og en av de viktigste er dens evne til å spare både tid og ressurser. Dette skyldes at systemet er spesielt utviklet for å identifisere feil i forbedringsprosessen mer effektivt enn andre modeller.

I tillegg bidrar CMM til å forbedre forretningsprosesser og reduserer plutselige endringer i produksjonsplaner. Som den første modellen som ble utviklet for å forbedre industrielle prosesser, har CMM fungert som et grunnlag for andre modeller, inkludert den forbedrede CMM-versjonen (CMMI), Business Capability Maturity Model (BCMM) og andre.

CMM er en fleksibel modell som kan anvendes på en rekke prosesser og markeder. Uavhengig av hvilken sektor du er i, kan et utviklingsteam bruke modellen for å rette opp feil i utviklingsprosessen.

CMM – Fem nivåer av modenhet

Capability Maturity Model (CMM) har fem nivåer for modenhet i utviklingsprosessen:

#1. Innledende nivå

På dette nivået er ikke prosessene organisert på en strukturert måte, og kan til tider virke kaotiske. Suksess avhenger i stor grad av den enkelte utvikler og regnes ikke som en reproduserbar prosess. Dette skyldes at prosessen ikke er godt dokumentert eller definert, noe som gjør det vanskelig å gjenta den.

Prosessene som brukes er umodne og ad hoc, noe som skaper et ustabilt miljø for programvareutvikling. Det er heller ikke mulig å forutse kvaliteten på produktet eller leveringstiden.

#2. Repeterbar

På dette nivået er de grunnleggende prosessene etablert, dokumentert og definert. Prosjektledelsesteknikker er implementert, og suksess kan gjentas i flere viktige prosessområder.

Det repeterbare nivået oppnås ved å definere grunnleggende retningslinjer for prosjektledelse. Tidligere erfaring fra lignende prosjekter brukes som veiledning. Dette inkluderer definering av nødvendige ressurser, mål, begrensninger og andre prosjektrelaterte elementer.

Dette nivået presenterer en detaljert plan som må følges for å levere programvare av høy kvalitet. Hovedfokus er å opprettholde produktets ytelse, som komponenter, gjennom hele programvarens livssyklus.

Det repeterbare nivået inkluderer også kundetilbakemeldinger og vurderingshåndtering, som kan føre til endringer i de opprinnelige kravene. Denne kravhåndteringen består av å tilpasse seg endrede behov.

Videre fokuserer underleverandørstyring på å sikre kvalifiserte leverandører for programvareutvikling. Dette innebærer å administrere deler av programvaren som er utviklet av tredjeparter. Programvarekvalitetssikring garanterer kvalitetsprodukter ved å følge bestemte regler og standarder gjennom hele utviklingsprosessen.

#3. Definert

På dette nivået blir alle retningslinjer og prosedyrer nøye dokumentert. Det finnes et godt definert sett med prosedyrer for programvareutvikling og -administrasjon. Dette inkluderer:

  • Fagfellevurderinger: Feil fjernes gjennom en rekke evalueringer, inkludert inspeksjoner, vennekontroller og gjennomganger.
  • Intergruppekoordinering: Samhandling mellom ulike utviklingsteam for å sikre at behov oppfylles på en effektiv måte.
  • Organisasjonsprosessdefinisjon: Fokuserer på utvikling og vedlikehold av programvareutviklingsprosedyrer.
  • Organisasjonsprosessfokus: Aktiviteter og praksiser som brukes for å øke organisasjonens prosesskapasitet.
  • Opplæringsprogrammer: Opplæring fokuserer på å forbedre kompetansen til teammedlemmene, og dermed øke arbeidseffektiviteten.

#4. Administrert

På dette nivået settes kvantitative mål for programvareproduktkvalitet og programvareprosesser. Målinger som gjøres lar organisasjonen forutse prosess- og produktkvalitet innenfor definerte grenser.

Dette nivået inkluderer strategier og planer for å utvikle en forståelse for kvantitativ analyse og produktkvalitet. Det fokuserer også på å administrere prosjektytelse.

#5. Optimalisering

Dette er det høyeste stadiet av modenhet i CMM, og fokuserer utelukkende på kontinuerlig forbedring av utviklingsprosessene ved bruk av kvantitativ tilbakemelding. Dette oppnås ved hjelp av programvareprosessverktøy, evalueringer og teknikker for å forhindre at kjente feil gjentar seg.

Dette nivået inkluderer:

  • Prosessendringsledelse: Denne prosessen fokuserer på kontinuerlig forbedring av utviklingsprosessene. Dette øker kvalitet, reduserer gjennomløpstid og forbedrer produktiviteten for programvareprodukter.
  • Teknologiendringsledelse: Bruk av teknologi og identifiseringsteknikker for å heve produktkvaliteten og redusere utviklingstiden.
  • Feilforebygging: Identifisere årsaken til feil for å hindre at disse gjentar seg i fremtidige prosjekter. Dette forbedrer definerte prosesser.

Capability Maturity Model Integration (CMMI)

Capability Maturity Model Integration (CMMI) er en prosessmodell som organisasjoner kan benytte for å forbedre utviklingsprosessene, øke effektiviteten og forbedre produktiviteten i arbeidsflyten mens de utvikler produkter, tjenester eller prosjekter. Dette resulterer i redusert risiko gjennom hele prosessen.

CMMI ble utviklet og introdusert av Carnegie Mellon University. Hensikten er å øke effektiviteten og brukervennligheten til modenhetsmodeller som måler en organisasjons evne til kontinuerlig forbedring innen visse områder. Dette oppnås ved å integrere flere modeller i ett enkelt rammeverk.

Den første versjonen ble lansert i 2002, og den andre i 2006. I 2010 kom versjon 1.3, og den nyeste versjonen, 2.0, ble utgitt i 2018 med endringer som skulle gjøre den mer tilgjengelig og effektiv for ulike virksomheter.

CMMI ble kjøpt opp av ISACA (tidligere kjent som Information Systems Audit and Control Association), som også er ansvarlig for sertifiseringer som COBIT-rammeverket. CMMI er en prosess- og atferdsmodell som hjelper organisasjoner gjennom hele utviklingsprosessen av produkter eller tjenester.

Målet med CMMI er åpenbart. Den brukes til å forbedre kvaliteten på tjenester eller produkter ved å følge en modell som tilfredsstiller kundenes forventninger, og øker verdien av organisasjonen. Modellen vurderer også omdømmet og verdien av interessenter.

CMMI dekker for tiden følgende områder:

  • CMMI for utvikling: Utvikling av produkter og tjenester.
  • CMMI for tjenester: Etablering, levering og administrasjon av tjenester.
  • CMMI for anskaffelse: Involvert i anskaffelse av produkter og tjenester.

CMMI – Representasjon

CMMI-representasjon gjør det mulig for en organisasjon å jobbe mot et sett med forbedringsmål. Det finnes to representasjoner:

Trinnvis representasjon

  • Bruker et definert sett med utviklingsområder for å beskrive forbedringsstien.
  • Gir en rekke forbedringer, der hver del av serien danner et grunnlag for neste forbedring.
  • Definerer en forbedringsvei ved hjelp av modenhetsnivåer. Modenhetsnivået beskriver modenheten til ulike prosesser i organisasjonen.
  • Muliggjør sammenligning mellom ulike organisasjoner basert på modenhetsnivåer.

Kontinuerlig representasjon

  • Gjør det mulig å velge bestemte prosessområder.
  • Bruker evnenivåer for å måle forbedringen av individuelle prosesser.
  • Tillater sammenligning mellom organisasjoner basert på prosessområde-for-prosessområde.
  • Lar organisasjoner velge mellom ulike prosesser for bedre forbedringer.
  • Gjør det mulig for organisasjoner å oppfylle sine mål og redusere risiko ved å velge rekkefølgen for forbedring av ulike prosesser.

CMMI – Modenhetsnivåer

Det finnes fem modenhetsnivåer i CMMI med trinnvis representasjon:

#1. Innledende: På dette nivået er utviklingsprosessene dårlig kontrollert og administrert, og resultatene er uforutsigbare. Kaotiske og ad hoc-tilnærminger brukes. Du vil ikke finne noen definerte nøkkelprosessområder (KPA). Kvaliteten er lav og produktene eller tjenestene har høy risiko.

#2. Administrert: På dette nivået administreres kravene, og utviklingsprosessene er kontrollert og planlagt. Prosjektet er administrert og implementert i henhold til dokumenterte planer. Risikoen er fortsatt til stede, men den er lavere enn på det innledende nivået.

#3. Definert: På det definerte nivået er utviklingsprosessene beskrevet og karakterisert ved å bruke prosedyrer, standarder, verktøy og metoder. Kvaliteten er middels og det samme gjelder risikoen.

#4. Kvantitativt administrert: I denne modellen settes kvantitative mål for kvalitet og ytelsesprosesser. Dette er basert på organisasjonens behov, kundekrav og mer. Prosessytelsesmålene er analysert kvantitativt. Her finner du prosesser av høyere kvalitet med lavere risiko.

#5. Optimalisering: Dette er det siste stadiet av modenhetsmodellen som fokuserer på kontinuerlig forbedring av prosesser og ytelse. Forbedringene er både innovative og inkrementelle. Prosesser og ytelse har høyere kvalitet, og risikoen er lavest.

CMMI – Evnenivåer

Et evnenivå indikerer relevant praksis for et bestemt prosessområde, og forbedrer organisasjonens prosesser relatert til dette. Det finnes seks evnenivåer for CMMI-modeller:

  • Evnenivå 0 (Ufullstendig): Inkluderer ufullstendige, delvise og ikke utførte prosesser. Det er ingen generiske mål på dette nivået.
  • Evnenivå 1 (Utført): Prosessytelsen er ustabil. Mål om kostnad, tidsplan og kvalitet er ikke oppfylt. Nivå 1-prosessen må utføre spesifikk praksis.
  • Evnenivå 2 (Administrert): Prosessen er overvåket, kontrollert og planlagt. Mål som kvalitet, tidsplan og kostnad er til stede. Organisasjonen må styre prosessene aktivt ved hjelp av målinger.
  • Evnenivå 3 (Definert): Prosessen er godt administrert og tilfredsstiller et sett med organisatoriske retningslinjer og standarder. Fokus er på prosessstandardisering.
  • Evnenivå 4 (Kvantitativt styrt): Prosessen styres ved hjelp av kvantitative og statistiske teknikker. Ytelse forstås i målinger og statistiske termer.
  • Evnenivå 5 (Optimalisering): Fokus er på kontinuerlig forbedring av prosessytelsen. Ytelsen forbedres gjennom innovative og inkrementelle endringer.

CMM vs. CMMI: Forskjellen

CMMI er en oppdatert versjon av CMM. SEI utviklet CMMI for å standardisere og integrere CMM, som hadde ulike modeller for hver funksjon den dekket. Integreringen av disse modellene gir en fleksibel og effektiv prosess.

CMMI-strukturen ligner på CMM når det gjelder sentrale prosessområder, praksis, modenhetsnivåer og mål. Imidlertid tilbyr CMMI to forskjellige fremstillinger av prosessene.

La oss se på flere forskjellene mellom CMM og CMMI:

Karakteristikk CMM CMMI
Fullt navn Capability Maturity Model, utviklet i 1984. Capability Maturity Model Integration, utviklet i 2006.
Beskrivelse En atferdsmodell som ble utviklet for å måle programvareutviklingsprosessene i en organisasjon. En oppdatert versjon av CMM-modellen, mer oppgaveorientert og effektiv.
Hovedformål Evaluere modenhetsnivået i programvareutviklingsprosessen. Kombinere ulike programvaremodeller i én enkelt programvare, for å overvinne noen av CMM sine mangler.
Modenhetsnivåer Fem nivåer: Innledende, repeterbar, definert, administrert og optimalisert. Fem nivåer: Innledende, administrert, definert, kvantitativt administrert og optimalisert.
Effektivitet Mindre effektiv. Mer effektiv.
Fokus Prosessorientert. Målorientert.

Konklusjon

En Capability Maturity Model (CMM) er et problemløsningssystem for programvareutviklingsprosesser. Den kan forhindre at bedrifter opplever problemer i disse prosessene.

CMMI har en mer avansert metodikk enn CMM. Den har som mål å tilfredsstille kundenes forventninger, skape verdi for virksomheten, bidra til vekst, forbedre produkt- og tjenestekvaliteten samt bedriftens omdømme.

Det kan også være nyttig å utforske Application Lifecycle Management-rammeverket, som hjelper deg med å utvikle og levere programvare i tide, innenfor budsjett og med høy kvalitet.