CMMI voor ontwikkeling Een introductie Algemene informatie voor medewerkers van: SYSQA B.V.
Organisatie SYSQA B.V. Pagina 2 van 12 Inhoudsopgave 1 INLEIDING... 3 1.1 ALGEMEEN... 3 1.2 VERSIEBEHEER... 3 2 CONTINUE REPRESENTATIE...FOUT! BLADWIJZER NIET GEDEFINIEERD. 2.1 OPBOUW VAN HET MODEL...FOUT! BLADWIJZER NIET GEDEFINIEERD. 2.2 DE PROCESGEBIEDEN... 4 2.2.1 Procesmanagement procesgebieden...fout! Bladwijzer niet gedefinieerd. 2.2.2 Projectmanagement procesgebieden...fout! Bladwijzer niet gedefinieerd. 2.2.3 Engineering procesgebieden... 7 2.2.4 Ondersteunende procesgebieden... 7 2.3 DE VAARDIGHEIDSNIVEAUS.... 7 3 STAPSGEWIJZE REPRESENTATIE... 8 3.1 OPBOUW VOLWASSENHEIDSNIVEAUS... 8 3.2 NIVEAU 1: INITIEEL (INITIAL)... 9 3.3 NIVEAU 2: BEHEERST (MANAGED)... 9 3.4 NIVEAU 3: GEDEFINIEERD (DEFINED)... 9 3.5 NIVEAU 4: KWANTITATIEF BEHEERST (QUANTITATIVELY MANAGED)... 10 3.6 NIVEAU 5: OPTIMALISEREND (OPTIMIZING)... 11 4 LITERATUUROPGAVEN... 12
Organisatie SYSQA B.V. Pagina 3 van 12 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 Integration voor ontwikkeling is zo een volwassenheidsraamwerk voor het verbeteren van systeemontwikkeling, softwareontwikkeling en hardwareontwikkeling. Het ordent de niveaus van volwassenheid van systeemontwikkeling zodanig dat ieder volgend volwassenheidsniveau voortbouwt op de resultaten van het voorgaande niveau. CMMI geeft organisaties handvatten over hoe zij het proces om systemen, software of hardware te ontwikkelen en te onderhouden kunnen evalueren en verbeteren. Door middel van een assessment kan het huidige niveau van volwassenheid van de ontwikkeling 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 proces geleidelijk aan verbeteren en zodoende continue en blijvende groei realiseren. Dit document beschrijft de hoofdlijnen van het CMMI voor ontwikkeling. In deze intro wordt ervan uit gegaan dat de lezer bekend is met de historie, opbouw en definities van CMMI historie, opbouw en definities staan beschreven in de intro over het CMMI raamwerk. Daarnaast bestaan er ook CMMI voor acquisitie, CMMI voor diensten, IDEAL (implementatiemethode) en SCAMPI (assessmentmethode). 1.2 Versiebeheer Versie Status Datum Auteur Opmerkingen 0.1 concept 04-06-2002 H.J.J. Cannegieter Aanpassing van CMM introductie naar CMMI introductie 1.0 Definitief 29-07-2002 H.J.J. Cannegieter Doorvoeren verbeteringen en definitief maken 1.1 Definitief 30-10-2006 H.J.J. Cannegieter Wijzigingen ivm versie 1.2 doorvoeren. 1.2 Concept 20-08-2009 F. Rupert Aanpassingen conform laatste versie CMMI 2.0 Definitief 28-08-2009 H.J.J. Cannegieter Review en goedkeuring 2.1 Definitief 24-11-2009 H.J.J. Cannegieter Maken aparte intro over het raamwerk
Organisatie SYSQA B.V. Pagina 4 van 12 2 Continue representatie In de continue representatie kent ieder procesgebied zijn eigen vaardigheidsniveau op een schaal van 0 tot 5. Voor de vaardigheidsniveaus 1 tot 5 in de continue representatie gelden eisen per vaardigheidsniveau. Het laagste vaardigheidsniveau, niveau 0, is het startpunt en kent dan ook geen eisen. Alle processen kunnen in willekeurige volgorde naar verschillende vaardigheidsniveaus groeien (op een enkele uitzondering na). Vaardigheidsniveau Vaardigheidsniveau 0 Vaardigheidsniveau 1 Vaardigheidsniveau 2 Vaardigheidsniveau 3 Vaardigheidsniveau 4 Vaardigheidsniveau 5 Naam Incompleet (Incomplete) Uitgevoerd (Performed) Beheerst (Managed) Gedefinieerd (Defined) Kwantitatief beheerst (Quantitatively managed) Optimaliserend (Optimizing) Elk individueel procesgebied kan zich dus op een ander vaardigheidsniveau bevinden. Figuur 5.1 laat zien hoe de procesgebieden zijn opgebouwd. Specifieke doelen Generieke doelen Specifieke praktijken Vaardigheidsniveau Generieke praktijken Figuur 2.1: De opbouw van de continue representatie Bij de continue representatie moet een organisatie zelf vaststellen welke procesgebieden van CMMI voor ontwikkeling als eerste verbeterd moeten worden. Dit gebeurt meestal via de relevante organisatiedoelen en via een onderzoek waarin het vaardigheidsprofiel wordt vastgesteld. De volgorde waarin verbeterd wordt, mag in de continue representatie door een organisatie zelf bepaald worden. Helemaal vrij is deze keuze niet, omdat er enkele relaties tussen procesgebieden zijn waar wel rekening mee gehouden dient te worden. De continue representatie kent de volgende zes vaardigheidsniveaus.
Organisatie SYSQA B.V. Pagina 5 van 12 Vaardigheidsniveau Vaardigheidsniveau 0: Incompleet Vaardigheidsniveau 1: Uitgevoerd Vaardigheidsniveau 2: Beheerst Vaardigheidsniveau 3: Gedefinieerd Vaardigheidsniveau 4: Kwantitatief beheerst Vaardigheidsniveau 5: Optimaliserend Bij een incompleet proces worden deelprocessen niet of niet geheel uitgevoerd conform de specifieke doelen van het procesgebied. Bij een uitgevoerd proces voldoet het proces aan de specifieke doelen van het betreffende procesgebied. Elke vorm van institutionalisering ontbreekt waardoor de kans groot is dat men terugvalt naar vaardigheidsniveau 0 indien er niet verder verbeterd wordt. Een beheerst proces is een uitgevoerd proces, dat beheerst wordt uitgevoerd. Er wordt voldaan aan de specifieke doelen van het procesgebied en aan de generieke doelen behorend bij vaardigheidsniveau 2. Dit betekent dat er een organisatiebeleid ten aanzien van dit proces is geformuleerd, het proces gepland is, er voldoende middelen zijn, verantwoordelijkheden zijn toegewezen, medewerkers getraind zijn, configuraties beheerst worden, de relevante belanghebbenden geïdentificeerd en betrokken worden, het proces bewaakt en beheerst wordt, vastgesteld wordt of het proces is uitgevoerd conform de standaarden en de status van het proces gereviewd wordt met het hogere management. Een gedefinieerd proces is een beheerst proces, dat is afgeleid van de standaardprocessen van de organisatie. Er wordt voldaan aan de specifieke doelen van het procesgebied en aan de generieke doelen behorend bij de vaardigheidsniveaus 1, 2 en 3. Dit betekent dat het proces gedefinieerd is op basis van de organisatiebrede procesbeschrijvingen en dat verbeterinformatie over het proces verzameld wordt. Tevens zijn aanpassingsrichtlijnen beschikbaar om de standaardprocessen aan te passen aan projecten. Een kwantitatief beheerst proces is een gedefinieerd proces, dat beheerst wordt door gebruik te maken van kwantitatieve technieken. Er wordt voldaan aan de specifieke doelen van het procesgebied en aan de generieke doelen behorend bij de vaardigheidsniveaus 1, 2, 3 en 4. Dit betekent dat er kwantitatieve doelstellingen voor het proces worden gedefinieerd en onderhouden op basis van de eisen en behoeften van belanghebbenden. Hierdoor wordt de variatie in de uitvoering van deelprocessen gereduceerd. Een optimaliserend proces is een kwantitatief beheerst proces, dat wordt verbeterd en aangepast op basis van de organisatiedoelen. Er wordt voldaan aan de specifieke doelen van het procesgebied en aan de generieke doelen behorend bij de vaardigheidsniveaus 1, 2, 3, 4 en 5. Dit betekent dat de processen continu verbeterd worden op basis van metingen. Oorzaken van problemen worden in een zo vroeg mogelijk stadium vastgesteld en weggenomen. Bij de continue representatie worden de procesgebieden gegroepeerd in vier procescategorieën, te weten: Procesmanagement procesgebieden; Projectmanagement procesgebieden; Engineering procesgebieden; Ondersteunende procesgebieden.
Organisatie SYSQA B.V. Pagina 6 van 12 2.1 Procesmanagement procesgebieden De procesmanagement procesgebieden bestaan uit de overkoepelende activiteiten gericht op het implementeren van volwassen processen evenals het verbeteren van deze processen. procesfocus procesdefinitie training procesprestatie innovatie en borging Het krijgen en onderhouden van inzicht in de processen, evenals het beheerst verbeteren van de processen. Het opstellen, onderhouden en beschikbaar stellen van de standaardprocessen, aanpassingsrichtlijnen en de ondersteunende proceshulpmiddelen. Het identificeren van trainingsbehoeften, opstellen van een trainingsplan en verzorgen van trainingen. Het formuleren en onderhouden van kwantitatieve kwaliteits- en procesdoelstellingen. Het selecteren en implementeren van incrementele en innovatieve verbeteringen in processen en technologieën. 2.2 Projectmanagement procesgebieden De projectmanagement procesgebieden omvatten het plannen, monitoren en beheersen van projecten. Projectplanning Projectmonitoring projectbeheersing Leveranciers management Geïntegreerd projectmanagement Risicomanagement Kwantitatief projectmanagement en Het opstellen en onderhouden van een projectplan, inclusief het betrekken van de belanghebbenden bij het project. Het monitoren van de projectactiviteiten en het nemen van correctieve maatregelen. Het beheersen van de aanschaf en afname van producten of diensten van externe leveranciers. Het inrichten en beheersen van een project op basis van geïntegreerde en gedefinieerde processen die zijn afgeleid van de standaardprocessen van de organisatie, rekening houdend met de andere projecten. Het identificeren, prioriteren en monitoren van risico s en het nemen van risicobeperkende maatregelen. Het op basis van kwantitatieve en statistische methoden beheersen van projectprocessen om de gedefinieerde kwaliteits- en procesdoelstellingen te halen.
Organisatie SYSQA B.V. Pagina 7 van 12 2.3 Engineering procesgebieden Dit zijn alle procesgebieden die te maken hebben met de levenscyclusactiviteiten van productontwikkeling. Hierbij is er geen onderverdeling in basis en geavanceerde procesgebieden. De procesgebieden: Eisenmanagement Eisenontwikkeling Technische oplossing Productintegratie Verificatie Het zeker stellen dat de overeengekomen eisen zijn begrepen en worden beheerd. Het opstellen en analyseren van de behoeften van de belanghebbenden en het vertalen van de behoeften naar producteisen. Het vertalen van eisen in de productarchitectuur en het ontwerp, alsmede het ontwikkelen van het systeem. Het integreren van de productcomponenten en het opleveren van het eindproduct. Het vaststellen dat het systeem voldoet aan de gespecificeerde eisen. Validatie Het vaststellen dat het systeem in de beoogde productieomgeving zal werken zoals bedoeld. 2.4 Ondersteunende procesgebieden De ondersteunende procesgebieden bieden hulp bij het effectiever en efficiënter uitvoeren van alle voorgaande procesgebieden. Configuratiemanagement Proces en product kwaliteitsborging Meting en analyse Alternatievenanalyse oplossingskeuze Causale probleemanalyse probleemoplossing en en Het inrichten van het beheer en het onderhouden van de integriteit van de producten. Het objectief vaststellen of processen en producten conform de beschrijvingen en standaarden zijn uitgevoerd, alsmede het beheersen van kwaliteitsproblemen. Het inrichten en implementeren van een meetprogramma ter ondersteuning van beslissingen en het nemen van correctieve maatregelen. Het op gestructureerde wijze nemen van beslissingen door alternatieven te vergelijken op basis van vastgestelde criteria. Het identificeren van oorzaken van fouten en andere afwijkingen en het nemen van acties om dit in de toekomst te voorkomen.
Organisatie SYSQA B.V. Pagina 8 van 12 3 Stapsgewijze representatie 3.1 Opbouw volwassenheidsniveaus De opbouw van de volwassenheidsniveaus in de stapsgewijs representatie is als volgt. Volwassenheidsniveau 1 2 n Specifieke doelen Generieke doelen Specifieke praktijken Generieke praktijken Figuur 5.1: Opbouw van de de volwassenheidsniveaus. De stapsgewijze representatie van CMMI voor ontwikkeling is opgebouwd uit vijf volwassenheidsniveaus (maturity levels). Per volwassenheidsniveau worden er een aantal procesgebieden onderkend. Per procesgebied onderkennen we specifieke doelen en generieke doelen. De specifieke doelen zijn voor dat procesgebied specifieke eisen waaraan voldaan dient te zijn. Om hier invulling aan te geven bevat iedere doel één of meerdere specifieke praktijken. Naast de specifieke doelen kent ieder procesgebied generieke doelen, algemene eisen die gelijk zijn voor ieder proces gebied. Deze eisen hebben meer met randvoorwaardelijke zaken te maken. Continue verbetering Optimaliserend Gedisciplineerd proces Standaard proces Voorspelbaar proces Beheerst Gedefinieerd Kwantitatief beheerst Initieel Figuur 2.2: de volwassenheidsniveaus.
Organisatie SYSQA B.V. Pagina 9 van 12 3.2 Niveau 1: Initieel (Initial) Op volwassenheidsniveau 1 zijn de processen ad hoc en chaotisch. Er is geen stabiele omgeving voor projecten. Succes in deze organisaties hangt af van de competenties van enkele individuen (helden) in de organisatie en is niet het gevolg van bewezen processen. Desondanks produceren niveau-1-organisaties werkbare producten en diensten. Hierbij vinden wel vaak budget- en tijdoverschrijdingen plaats. Niveau-1-organisaties worden gekenmerkt door een over-commitment, het afschaffen (niet toepassen) van processen in tijden van crisis en het niet kunnen herhalen van successen. 3.3 Niveau 2: Beheerst (Managed) Projecten van organisaties op niveau 2 hebben zekergesteld dat eisen gemanaged worden en dat de processen gepland, uitgevoerd, gemeten en beheerst worden. De procesdiscipline van een organisatie op niveau 2 zorgt ervoor dat de processen ook uitgevoerd worden in tijden van stress. De focus ligt op projecten die worden uitgevoerd en beheerst conform een gedocumenteerd plan. De procesgebieden op niveau 2 zijn: Eisenmanagement Projectplanning Projectmonitoring en projectbeheersing Leveranciersmanagement Meting en analyse Proces en product kwaliteitsborging Configuratie management Het zeker stellen dat de overeengekomen eisen zijn begrepen en worden beheerd. Het opstellen en onderhouden van een projectplan inclusief het betrekken van de belanghebbenden bij het project. Het monitoren van de projectactiviteiten en het nemen van correctieve maatregelen. Het beheersen van de aanschaf en afname van producten of diensten van externe leveranciers. Het inrichten en implementeren van een meetprogramma ter ondersteuning van beslissingen en het nemen van correctieve maatregelen. Het objectief vaststellen of processen en producten conform de beschrijvingen en standaarden zijn uitgevoerd, alsmede het beheersen van kwaliteitsproblemen. Het inrichten van het beheer en het onderhouden van de integriteit van de producten. 3.4 Niveau 3: Gedefinieerd (Defined) Op niveau 3 zijn de processen een onvervreemdbaar deel van de organisatie; ze worden beschreven in standaards, procedures en methodes die ook onderhouden worden. De basis voor het bereiken van niveau 3 is een standaard set procesbeschrijvingen. Deze worden gebruikt om consistentie te verkrijgen door de gehele organisatie heen. De projectmanagers stemmen hun processen af door de standaard organisatie processen op maat te snijden voor hun project met behulp van de richtlijnen die hiervoor zijn vastgesteld. Het management gebruikt deze voor het vaststellen van de proces doelstellingen. Belangrijke verschillen tussen niveau 2 en 3 zijn: 1. De scope van de standaarden, procesbeschrijvingen en de procedures: op niveau 2 kunnen deze per omstandigheid totaal anders zijn. Op niveau 3 wordt naar aanleiding van de omstandigheden het maatwerk verkregen door de organisatiestandaard aan te passen.
Organisatie SYSQA B.V. Pagina 10 van 12 2. Op niveau 3 zijn de procesbeschrijvingen en de procedures meer in detail en veel scherper geformuleerd dan op niveau 2. De processen worden ook pro actiever gemanaged met meer begrip voor de onderlinge verhoudingen en met gebruik van metingen. De procesgebieden van volwassenheidsniveau 3 zijn: Eisenontwikkeling Het opstellen en analyseren van de behoeften van de belanghebbenden en het vertalen van de behoeften naar producteisen. Technische oplossing Het vertalen van eisen in de productarchitectuur en het ontwerp, alsmede het ontwikkelen van het systeem. Productintegratie Het integreren van de productcomponenten en het opleveren van het eindproduct. Verificatie Het vaststellen dat het systeem voldoet aan de gespecificeerde eisen. Validatie Het vaststellen dat het systeem in de beoogde productieomgeving zal werken zoals bedoeld. procesfocus Het krijgen en onderhouden van inzicht in de processen, alsmede het beheerst verbeteren van de processen. procesdefinitie Het opstellen, onderhouden en beschikbaar stellen van de standaardprocessen, aanpassingsrichtlijnen en de ondersteunende proceshulpmiddelen. Het identificeren van trainingsbehoeften, opstellen van een training Geïntegreerd projectmanagement Risicomanagement Alternatievenanalyse en oplossingskeuze trainingsplan en verzorgen van trainingen. Het inrichten en beheersen van een project op basis van geïntegreerde en gedefinieerde processen die zijn afgeleid van de standaardprocessen van de organisatie, rekening houdend met de andere projecten. Het identificeren, prioriteren en monitoren van risico s en het nemen van risicobeperkende maatregelen. Het op gestructureerde wijze nemen van beslissingen door alternatieven te vergelijken op basis van vastgestelde criteria. 3.5 Niveau 4: Kwantitatief beheerst (Quantitatively managed) Op niveau 4 stelt de organisatie kwantitatieve doelstellingen voor het beheersen van de kwaliteit van processen en producten. Deze kwantitatieve doelstellingen worden gebaseerd op de wensen en behoeften van klanten, eindgebruikers en de organisatie. Er worden gedetailleerde metingen verricht en de uitkomsten worden geanalyseerd op het gebied van kwaliteit en proces. Knelpunten worden geïdentificeerd en worden gecorrigeerd om deze te voorkomen in de toekomst. Belangrijk verschil met niveau 3 is de voorspelbaarheid. Op niveau 3 zijn de processen kwalitatief voorspelbaar terwijl op niveau 4 statistische en andere kwantitatieve methodes worden gebruikt om de processen te meten en zo de processen ook kwantitatief voorspelbaar te maken.
Organisatie SYSQA B.V. Pagina 11 van 12 De procesgebieden van volwassenheidsniveau 4 zijn: procesprestatie Kwantitatief projectmanagement Het formuleren en onderhouden van kwantitatieve kwaliteits- en procesdoelstellingen. Het op basis van kwantitatieve en statistische methoden beheersen van projectprocessen om de gedefinieerde kwaliteitsen procesdoelstellingen te halen. 3.6 Niveau 5: Optimaliserend (Optimizing) Op dit niveau focust de organisatie zich op continue verbetering van de proces performance. Er worden kwantitatieve doelstellingen gezet die worden afgezet tegen de bedrijfsdoelstellingen. Deze worden gebruikt om het verbeteringstraject te managen. De verbeteringen worden geselecteerd op basis van hun verwachte bijdrage aan de verbeteringsdoelstellingen versus de kosten en impact op de organisatie. De gehele organisatie is betrokken bij de procesverbeteringen hetgeen bijdraagt aan een voortdurende cyclus van procesverbetering. Een belangrijk verschil met niveau 4 is, dat op niveau 4 weliswaar de procesvariaties kwantitatief worden gemaakt en voorspelbaar zijn maar dat toch de doelstellingen niet worden bereikt. Op niveau 5 is het belangrijk om de achterliggende oorzaak van de variaties te achterhalen en het proces vervolgens aan te passen om zodoende toch de doelstellingen te behalen. De procesgebieden van volwassenheidsniveau 5 zijn: innovatie en borging Causale probleemanalyse en probleemoplossing Het selecteren en implementeren van incrementele en innovatieve verbeteringen in processen en technologieën. Het identificeren van oorzaken van fouten en andere afwijkingen en het nemen van acties om die in de toekomst te voorkomen.
Organisatie SYSQA B.V. Pagina 12 van 12 4 Literatuuropgaven H.J.J. Cannegieter en R. van Solingen: De kleine CMMI voor ontwikkeling, 2 e druk 2007 ISBN-13: 9789012117739 Software Engineering Institute - CMMI for Development Version 1.2, CMU/SEI-2006-TR- 008 CMMI voor ontwikkeling versie 1.2 (PDF) staat op de kennisbank M.B. Chrissis, M. Konrad, S. Shrum: CMMI Guidelines for process integration and product development. ISBN 0321154967 S. Garcia, R. Turner, CMMI Survival Guide. ISBN 0321422775 D.M. Ahern, A. Clouse, R. Turner, CMMI Distilled. ISBN 0201735008 Introductie CMMI raamwerk (zie kennisbank) Introductie CMMI voor ontwikkeling (zie kennisbank) Introductie CMMI voor diensten (zie kennisbank)