Capability Maturity Model Een introductie
Algemene informatie voor medewerkers van: SYSQA B.V.
Organisatie Titel Onderwerp
SYSQA B.V. Capability Maturity Model Een introductie
Pagina Versie Datum
2 van 11 1.1 10-04-2001
Inhoudsopgave 1
INLEIDING............................................................................................................................... 3 1.1 1.2
2
CMM: HET MODEL ................................................................................................................. 4 2.1 2.2 2.3
3
ALGEMEEN........................................................................................................................ 3 VERSIEBEHEER .......................................................FOUT! BLADWIJZER NIET GEDEFINIEERD. ONTSTAANSGESCHIEDENIS ................................................................................................ 4 OPBOUW VAN HET MODEL .................................................................................................. 4 SOFTWARE PROCESS ASSESSMENT EN SOFTWARE CAPABILITY EVALUATION ......................... 5
BESCHRIJVING VOLWASSENHEIDSNIVEAUS.................................................................... 7 3.1 3.2 3.3 3.4 3.5
LEVEL 1: INITIAL ................................................................................................................ 7 LEVEL 2: REPEATABLE ....................................................................................................... 7 LEVEL 3: DEFINED ............................................................................................................. 8 LEVEL 4: MANAGED ........................................................................................................... 8 LEVEL 5: OPTIMIZED .......................................................................................................... 9
4
KPA’S VAN LEVEL 2............................................................................................................ 10
5
LITERATUURVERWIJZINGEN ............................................................................................. 11
Almere © 2001
Quality Assurance in ICT
Organisatie Titel Onderwerp
SYSQA B.V. Capability Maturity Model Een introductie
Pagina Versie Datum
3 van 11 1.1 10-04-2001
1 Inleiding 1.1
Algemeen
Hoewel ontwikkelaars en managers hun problemen meestal in grote lijnen kennen, kunnen zij het oneens zijn over welke verbeteringen het belangrijkste zijn. Zonder een georganiseerde strategie voor verbeteringen is het moeilijk consensus te bereiken tussen het management en de professionele staf over welke verbeteractiviteiten als eerste uitgevoerd gaan worden. Om blijvend resultaat te halen uit verbeteractiviteiten is het noodzakelijk om een groeipad naar volwassenheid te ontwerpen welke de volwassenheid van het proces in niveaus verbetert. Het Capability Maturity Model for Software (CMM) is zo een volwassenheidsraamwerk. Het ordent de niveaus van volwassenheid van softwareontwikkeling zodanig dat ieder volgend volwassenheidsniveau voortbouwt op de resultaten van het voorgaande niveau. Het CMM geeft organisaties een handvat over hoe zij het proces om software te ontwikkelen en onderhouden kunnen evalueren en verbeteren. Door middel van een assessment of evaluatie kan het huidige niveau van volwassenheid van de softwareontwikkeling en -onderhoud worden bepaald. Aan de hand van het niveau kan bepaald worden welke verbeteractiviteiten als eerste opgepakt dienen te worden. Door zich op slechts enkele activiteiten te richten en deze met volle overtuiging na te streven, kan een organisatie zijn overall softwareproces geleidelijk aan verbeteren en zodoende continue en blijvende groei realiseren. Dit document beschrijft de hoofdlijnen van het CMM.
Almere © 2001
Quality Assurance in ICT
Organisatie Titel Onderwerp
SYSQA B.V. Capability Maturity Model Een introductie
2
CMM: het model
2.1
Ontstaansgeschiedenis
Pagina Versie Datum
4 van 11 1.1 10-04-2001
Het CMM is eind jaren ‘80 ontwikkeld door het Software Engineering Institute (SEI) van de Carnegie Mellon University in Amerika in opdracht van de Department of Defence (DoD). De DoD wilde de bekwaamheid van haar softwareleveranciers beoordelen. Bij het uitoefenen van haar primaire taken, is de DoD afhankelijk van de kwaliteit van de software die door leveranciers geleverd werd. Het model bestond uit een vragenlijst. Aan de hand van de vragenlijst kon de volwassenheid van het softwareproces van de leverancier worden bepaald. Watts Humphrey, eind jaren ‘80 werkzaam bij het SEI, wordt gezien als de geestelijke vader van het CMM. Na enige tijd ervaring te hebben opgedaan met de vragenlijst, ontwikkelde het SEI vanuit de vragenlijst het CMM. De eerste versie werd begin jaren ’90 gebruikt en beoordeeld door de softwaregemeenschap. Op grond van feedback uit de softwaregemeenschap is versie 1.1 ontwikkeld. Het CMM versie 1.1 bestaat uit een model en een vragenlijst. Met behulp van de vragenlijst kan bepaald worden op welk volwassenheidsniveau de organisatie zich bevindt. Het model is de basis voor het verbeteren van het softwareproces.
2.2
Opbouw van het model
Het CMM bestaat uit vijf maturity levels (volwassenheidsniveaus). De opbouw van het CMM is als volgt weer te geven. Maturity levels Bestaan uit
Proces vaardigheid
Key process areas Zijn onderverdeeld in
Doelen
Common features Bestaan uit
Implementatie
Key practices
Activiteiten
Met uitzondering van niveau 1 is ieder level opgebouwd uit een aantal key process areas (KPA’s, procesaandachtsgebieden). Ieder KPA is onderverdeeld in vijf common features: • Commitment to perform (commitment); • Ablility to perform (randvoorwaarden); • Activities performed (uit te voeren activiteiten); • Measurement and analysis (metingen) en • Verifying implementation (verificatie). Almere © 2001
Quality Assurance in ICT
Organisatie Titel Onderwerp
SYSQA B.V. Capability Maturity Model Een introductie
Pagina Versie Datum
5 van 11 1.1 10-04-2001
De common features specificeren de belangrijkste key practices (aspecten). Wanneer aan alle aspecten voldaan is, wordt het goal (doel) van de KPA bereikt.
2.3
Software process assessment en software capability evaluation
Het SEI heeft twee methoden ontwikkeld om de volwassenheid van het softwareproces van de organisatie te bepalen: Software Process Assessment en Software Capability Evaluation. Software Process Assessments worden gebruikt om de status van het huidige proces van een organisatie te bepalen, de belangrijkste softwaregerelateerde zaken betreffende de organisatie te bepalen en om de ondersteuning van de organisatie te krijgen voor de verbetering van het softwareproces. Software Process Assessments richten zich op de identificatie van de prioriteiten voor de verbetering van een proces van de organisatie. Assessment teams gebruiken het CMM als houvast voor het identificeren van hun bevindingen en het geven van prioriteit daaraan. Deze bevindingen, tezamen met de richtlijnen uit de aspecten van het CMM, worden gebruikt om een verbeterstrategie voor de organisatie te plannen. Software Capability Evaluations worden gebruikt om te beoordelen of aannemers in staat zijn om het werk te kunnen doen. Dit gebeurt door de status van het proces, gebruikt bij een project, te beoordelen. Software Capability Evaluations zijn gericht op de risico’s die gepaard gaan met een bepaald project of contract voor het bouwen van software van hoge kwaliteit binnen het tijddschema en het budget. Gedurende de aanbesteding kunnen Software Capability Evaluations worden uitgevoerd bij de aanbieders. De uitkomsten van de evaluaties worden gebruikt om de risico’s te bepalen bij het selecteren van een bepaalde contractant. Evaluaties kunnen tevens uitgevoerd worden op bestaande contracten om hun voortgang te bekijken, met de bedoeling om potentiële verbeteringen in het proces van de contractant te identificeren. Het CMM biedt een gemeenschappelijk raamwerk en referentiekader om Software Process Assessments en Software Capability Evaluations uit te voeren. Het referentiekader bestaat uit de maturity questionnaire (de vragenlijst). Aan de hand daarvan kan de volwassenheid van het software proces bepaald worden. Het assessment of de evaluatie bestaat uit de volgende stappen: 1. Team selectie; 2. Invullen maturity questionnaire door een geselecteerde groep; 3. Respons analyse; 4. "On-site" interviews en document-analyse; 5. Opstellen KPA-profiel. Ad 1. De eerste stap is het selecteren van een assessment team. Dit team dient getraind te worden in het CMM, evenals in specifieke onderdelen van de assessment-methode. De leden van het team dienen kundige professionals te zijn op het gebied van ontwikkeling en beheersing van software. Ad 2. De tweede stap is om representatieve personen uit het te beoordelen of te evalueren onderdeel de maturity questionnaire in te laten vullen. Ad 3. Wanneer de ingevulde maturity questionnaires terugontvangen zijn, voert het assessment team een analyse van de respons uit, waarbij de antwoorden op de vragen worden vergeleken. Tevens worden die gebieden aangegeven waar verdere verdieping gewenst is. De gebieden die onderzocht worden, corresponderen met de KPA’s van het CMM. Almere © 2001
Quality Assurance in ICT
Organisatie Titel Onderwerp
SYSQA B.V. Capability Maturity Model Een introductie
Pagina Versie Datum
6 van 11 1.1 10-04-2001
Ad 4. Het team gaat op de werkvloer de analyse verder verdiepen. Te beginnen met de resultaten van de analyse van de respons, voert het team interviews uit en bekijkt het team documenten om het proces dat ter plekke wordt uitgevoerd te kunnen begrijpen. De KPA’s en de aspecten van het CMM bieden de leden van het team houvast bij het ondervragen, luisteren, reviewen van de medewerkers en het bijeenvoegen van de informatie verkregen uit de interviews en de documenten. Het team beoordeeld of de genomen maatregelen voldoende zijn om de relevante doelen van de KPA’s te realiseren. Ad 5. Aan het einde van het bezoek aan de werkplek stelt het team een lijst met bevindingen op die de sterke en zwakke punten van het softwareproces van de organisatie aangeven. Bij een Software Process Assessment vormen de bevindingen de basis voor de aanbevelingen voor procesverbetering. Bij een Software Capability Evaluation zijn de bevindingen een onderdeel van de risicoanalyse. Ad 6. Als laatste maakt het team een profiel van de KPA’s, waaruit af te lezen is aan welke doelen de organisatie wel heeft voldaan en aan welke doelen de organisatie niet heeft voldaan. Aan een KPA kan voldaan worden ondanks een aantal negatieve bevindingen, mits het doel van de KPA wordt gerealiseerd. Volgens het SEI duurt deze aanpak ongeveer vier maanden. De inzet bedraagt minimaal 78 dagen plus de tijd van de geïnterviewden, maximaal bedraagt het 129 dagen plus de tijd van de geïnterviewden. SYSQA heeft een assessment-methode ontwikkeld waarbij in kortere tijd op basis van de maturity questionnaire inzicht wordt verkregen in de volwassenheid van de softwareontwikkeling.
Almere © 2001
Quality Assurance in ICT
Organisatie Titel Onderwerp
SYSQA B.V. Capability Maturity Model Een introductie
Pagina Versie Datum
7 van 11 1.1 10-04-2001
3 Beschrijving volwassenheidsniveaus Het CMM is opgebouwd uit vijf volwassenheidsniveaus: Continue verbetering Voorstelbaar proces Standaard proces Gedisciplineerd proces
Optimized
Managed
Defined
Repeatable
Initial De volwassenheidsniveaus 2 tot en met 5 worden gekenmerkt door de activiteiten die uitgevoerd worden door de organisatie om het proces vast te leggen en te verbeteren. Deze activiteiten worden bij ieder project uitgevoerd.
3.1
Level 1: Initial
Een organisatie op het initiële niveau wordt gekarakteriseerd door het ontbreken van een stabiele omgeving voor het ontwikkelen en onderhouden van software. De organisatie heeft geen vaste managementgewoonten; de voordelen van goede ontwikkelgewoonten worden ondermijnd. Plannen worden, als ze al worden gemaakt, vaak overschreden. Gedurende een crisis verlaten projecten bijna standaard de geplande procedures en vervallen tot programmeren en testen. Succes hangt volledig af van een exceptioneel goede manager en een toegewijd team. Het succes van een project is grotendeels afhankelijk van enkele individuen: de helden. Het proces op level 1 is onvoorspelbaar, omdat het proces continu veranderd of aangepast wordt.
3.2
Level 2: Repeatable
Projecten binnen een organisaties op dit niveau hebben aan aantal basis projectbeheersingsprocessen ingevoerd. Op level 2 is het beleid ten aanzien van het beheersen van een project vastgesteld en een procedure voor de invoering van het beleid van kracht. Het plannen en beheersen van nieuwe projecten is gebaseerd op de ervaring met soortgelijke projecten in het verleden. Een doelstelling voor het bereiken van dit niveau is het instellen van efficiënte managementprocessen voor projecten. Deze processen stellen organisaties in staat om successen, bereikt bij projecten in het verleden, te herhalen, ongeacht of de specifieke processen binnen het project identiek zijn. Een effectief proces kan gekarakteriseerd worden als zijnde bestudeerd, gedocumenteerd, uitgevoerd, getraind, gemeten en verbeterbaar. Het proces op level 2 is gedisciplineerd omdat planning en bewaking van het project stabiel is en voorgaand succes herhaalbaar is. Het project staat onder de effectieve controle van een projectmanagementsysteem en volgt realistische planningen welke gebaseerd zijn op de doorloop van voorgaande projecten.
Almere © 2001
Quality Assurance in ICT
Organisatie Titel Onderwerp
SYSQA B.V. Capability Maturity Model Een introductie
Pagina Versie Datum
8 van 11 1.1 10-04-2001
De KPA’s van level 2 zijn: • Requirements Management • Software Project Planning • Software Project Tracking and Oversight • Software Subcontract Management • Software Quality Assurance • Software Configuration Management
3.3
Level 3: Defined
Op dit niveau wordt een standaard proces voor ontwikkeling en onderhoud van software over de gehele organisatie gedocumenteerd, inclusief ontwikkelings- en managementprocessen. Deze processen zijn samengevoegd tot een coherent geheel. Aan dit standaardproces wordt gerefereerd door het gehele CMM als het standaard softwareproces van de organisatie. Processen welke op dit niveau vastgelegd zijn, worden gebruikt (en indien nodig aangepast) om de managers en de technische staf te helpen meer effectief te presteren. De organisatie benut een effectieve ontwikkeling wanneer haar proces wordt gestandaardiseerd. Er is een groep welke verantwoordelijk is voor de procesactiviteiten van de organisatie. Een organisatiebrede trainingsprogramma is ingevoerd om er zeker van te zijn dat het personeel en de managers de kennis en benodigde capaciteiten hebben om de toegewezen taken te kunnen vervullen. Projecten passen de standaardprocessen van de organisatie aan om hun eigen vastgelegde processen te ontwikkelen, welke van belang zijn voor de unieke karakteristieken van het project. Samenvattend kan gesteld worden dat het proces op level 3 gestandaardiseerd en consistent is, omdat zowel ontwikkelings- als managementactiviteiten stabiel en herhaalbaar zijn. De KPA’s van level 3 zijn: • Organization Process Focus • Organization Process Definition • Training Program • Integrated Software Management • Software Product Engineering • Intergroup Coördination • Peer Reviews
3.4
Level 4: Managed
Een organisatie op level 4 stelt zich kwantitatieve kwaliteitsdoelen voor zowel het product als het proces. Productiviteit en kwaliteit worden, als onderdeel van een organisatiebreed meetprogramma, gemeten voor de belangrijkste procesactiviteiten bij alle projecten. Op level 4 zijn processen utgerust met goed gedefinieerde en consistente meetpunten. Samenvattend kan gesteld worden dat het proces op level 4 voorspelbaar is, omdat het proces gemeten wordt en binnen meetbare grenzen plaatsvindt. Dit niveau van proceshaalbaarheid stelt organisaties in staat om trends in proces- en productkwaliteit te voorspellen binnen de kwantitatieve grenzen. De KPA’s van level 4 zijn: • Quantitative Process Management • Software Quality Management
Almere © 2001
Quality Assurance in ICT
Organisatie Titel Onderwerp
3.5
SYSQA B.V. Capability Maturity Model Een introductie
Pagina Versie Datum
9 van 11 1.1 10-04-2001
Level 5: Optimized
Op level 5 is de gehele organisatie gericht op een continue verbetering van het proces. De organisatie heeft de bedoeling om de sterke en zwakke punten van het proces vooraf te onderkennen met als doel om het optreden van fouten tegen te gaan. Gegevens over de effectiviteit van het proces worden gebruikt om kosten/baten-analyses te maken van nieuwe technologieën en voorgestelde veranderingen aan het proces. Verbeteringen welke de ontwikkelingsprocessen optimaliseren, worden onderkend en doorgevoerd binnen de gehele organisatie. Projectteams op dit niveau analyseren de fouten om de oorzaken daarvan te achterhalen. Processen worden geëvalueerd om te voorkomen dat fouten meerdere malen worden gemaakt en geleerde lessen worden gebruikt bij andere projecten. Samenvattend kan gesteld worden dat processen van een organisatie op level 5 continu verbeteren. Continue verbetering wordt door de hele organisatie nagestreefd. Verbeteringen treden op tijdens de voortgang van het huidige proces en door het gebruik van nieuwe technologieën en methoden. De KPA’s van level 5 zijn: • Defect Prevention • Technologie Change Management • Process Change Management
Almere © 2001
Quality Assurance in ICT
Organisatie Titel Onderwerp
SYSQA B.V. Capability Maturity Model Een introductie
Pagina Versie Datum
10 van 11 1.1 10-04-2001
4 KPA’s van level 2 De meeste organisaties in Nederland zitten op level 1. De eerste KPA’s waar zij mee te maken krijgen zijn de KPA’s van level 2. Daarom wordt hier een toelichting op gegeven. Level 2 bestaat uit zes KPA’s: • Requirements management • Software project planning • Project tracking en oversight • Subcontract management • Quality assurance • Configuration management Het doel van requirements management is het tot stand brengen van een algemeen begrip tussen de klant en het softwareproject van de eisen en behoeften van de klant die moeten worden vervuld met behulp van het systeem. Requirements management heeft tot gevolg het tot stand brengen en onderhouden van de systeemeisen met betrekking tot de software. Het doel van software project planning is het tot stand brengen van redelijke plannen voor het uitvoeren van software engineering en voor het managen van projecten. Software project planning brengt met zich mee dat schattingen worden ontwikkeld voor het uitvoeren van het werk, het tot stand brengen van de benodigde verplichtingen en het tot stand brengen van het plan om het werk uit te voeren. Het doel van software projecttracking and oversight is zorgen voor een goed inzicht in de actuele status zodat het management effectieve acties kan nemen als de software project resultaten significant afwijken van de software plannen. Software project voortgangsbewaking betekent het bewaken en reviewen van prestaties en resultaten ten opzichte van gedocumenteerde schattingen, verplichtingen en plannen en het aanpassen van deze plannen op basis van actuele prestaties en resultaten. Het doel van software subcontract management is het selecteren van gekwalificeerde software subcontractors (onderaannemers) en het op effectieve wijze managen van hen. Software subcontract management heeft betrekking op het selecteren van een software subcontractor, het tot stand brengen van verplichtingen met de subcontractor en het bewaken en reviewen van de subcontractor’s prestaties en resultaten. Het doel van software quality assurance is het management voorzien van een goed inzicht in de processen die worden gebruikt bij het softwareproject en de producten die worden gebouwd. Software Quality Assurance brengt het reviewen en auditen van softwareproducten en activiteiten met zich mee om vast te stellen of ze voldoen aan de van toepassing zijnde procedures en standaards en het verstrekken van informatie over de resultaten van de reviews en audits aan het softwareproject en ander bevoegd management. Het doel van software configuratie management is het bereiken en onderhouden van de integriteit van de softwareproducten gedurende de projectsoftware levenscyclus. Software configuratie management omvat het identificeren van de configuratie van de software (de softwareproducten en hun beschrijvingen) op een bepaald punt in de tijd, het systematisch beheersen van veranderingen in de configuratie en het onderhouden van de integriteit en traceerbaarheid van de configuratie gedurende de softwarelevenscyclus.
Almere © 2001
Quality Assurance in ICT
Organisatie Titel Onderwerp
SYSQA B.V. Capability Maturity Model Een introductie
Pagina Versie Datum
11 van 11 1.1 10-04-2001
5 Literatuurverwijzingen M. Paulk, C. Weber, B. Curtis, M. Chrissis – The capability maturity model – 0201546647 (als pdf verkrijgbaar bij productmanagement, als boek beter leesbaar); Kim Caputo – CMM Implementation guide – 0201379384; CMM-based appraisel for internal process improvement – technical report van het SEI, als pdf verkrijgbaar bij het productmanagement.
Almere © 2001
Quality Assurance in ICT