Hoorcollege SDM1 Capability Maturity Model Mario van Vliet 9 mei 2006 - 1 -
Data Colleges worden gegeven op de volgende data: 23 Mei 6 Juni Tentamen is op 27 Juni 8:30 uur – 10:30 uur. Voor diegene die ook GIP-House volgen geldt dat ze zich moeten inschrijven voor zowel het theorie gedeelte als het praktijk gedeelte. - 2 - 2
Onderwerpen die in SDM1 aan bod komen Projectmanagement Metrics Component Based Development : vandaag Projectplanning Business Planning Technical Planning Rollen van Projectmanager Qualitymanager Contract Owner Public Relations Manager Director Planningsmethodieken Project scheduling & tracking CPM Work Breakdown structure Gantt-charts Quality Management Risk Management Capability Maturity Model : Vandaag - 6 -
Inhoud Wat zijn maturity models? Process Maturity Framework Software Process Maturity Operationeel gebruik van het Capability Maturity Model (CMM)
Wat is een maturity model? ‘Een maturity model is een model waarmee organisaties hun software engineering proces kunnen beoordelen en op basis van deze beoordeling het software proces kunnen verbeteren.’ 1986 gestart door het Software Engineering Institute (SEI) (Carnegie Mellon University) en de Mitre Corporation SEI gestart met een process maturity framework en een maturity questionnaire Software Proces Maturity Framework heeft zich ontwikkeld tot het Capability Maturity Model (CMM) for Software (1991) Grondlegger is W.S. Humprey (1987) Literatuur: ‘Capability Maturity ModelTM for Software’, Version 1.1. Paulk et al. , Technical report CMU/SEI-93-TR-024 ESC-TR-93-177, February 1993
Process Maturity Framework Doel is het verbeteren van het software engineering proces Succes niet gebaseerd op toevallige individuele prestaties Succes gebaseerd op repeteerbare en bewezen succesvolle werkmethoden Immature Software Organisatie Mature Geen objectieve basis voor beoordeling van product kwaliteit Geen objectieve basis voor het verbeteren van product of proces kwaliteit Review en testen worden vaak overgeslagen als projecten achter op schema lopen Ad hoc beleid Organisatiewijde kennis en kunde om software ontwikkeling en onderhouds processen te managen Processen zijn ‘fit-for-use’ Processen worden aangepast aan de situatie Taken en bevoegdheden zijn duidelijk voor het project en de organisatie
Software Process Software Process: ‘de verzameling van activiteiten, methoden, praktijken en veranderingen die mensen gebruiken met als doel het ontwikkelen en onderhouden van software en geassocieerde producten (b.v. projectplannen, ontwerp documenten, code, test cases en gebruikershandleidingen)’
Fundamentele concepten voor Process Maturity Software Process Capability Voorspellen van de verwachte uitkomst van een volgend software project Software Process Performance Actuele resultaten van een software project Software Process Maturity De mate waarin een software proces expliciet wordt gedefinieerd, gemanaged, gemeten, gecontroleerd en effectief is Software Process Institutionalization De mate waarin het software proces is geïnstitutionaliseerd ten aanzien van methoden, standaarden en organisatie structuur CMM voor software geeft organisaties houvast ten aanzien van het krijgen van controle over het software process en hoe te komen tot een situatie van excellence in software engineering
Vijf niveau’s van software maturity Maturity niveau: Een goed gedefinieerd niveau op weg naar het bereiken van een volwassen software proces Een fundering voor het realiseren van continue verbeteringen Elk niveau kent een verzameling van proces doelstellingen die, wanneer stabiel, een belangrijk onderdeel vormen van het software proces Elk niveau zorgt voor het verbeteren van de proces capabiliteit van de organisatie
Vijf niveau’s van software maturity Initial (1) Repeatable (2) Defined (3) Managed (4) Optimizing (5) Continu Verbeterende Processen Voorspelbare Processen Standaard en Consistente Processen Gedisciplineerde Processen
Initial Het software proces kan gekarakteriseerd worden als ad-hoc, of zelfs chaotisch Er zijn vrijwel geen processen gedefinieerd Succes hangt af van individuele inzet en prestaties Het software proces is niet voorspelbaar qua resultaten Schedules, budget, functionaliteit en product kwaliteit is niet voorspelbaar Werkt desastreus in crises situaties Kan succesvol zijn in hoge innovatieve omgevingen (b.v start van de web-design wereld)
Repeatable De basis project management procedures zijn op zijn plaats Kosten, schedules en functionaliteit wordt ‘getracked’ Planning en managen van nieuwe projecten is gebaseerd op ervaring met vergelijkbare projecten Noodzakelijke proces discipline is ingesteld zodat eerder succes met de bouw van dezelfde applicatie kan worden herhaald Software requirements and werk producten worden ‘gebaselined’ Gedisciplineerde omgeving waarin planning en tracking stabiel is en eerdere successen herhaald kunnen worden
Defined Software proces voor zowel management als software engineering is gedocumenteerd, gestandaardiseerd en geïntegreerd in een standaard software proces Alle projecten gebruiken een geaccordeerd, aangepaste versie van het standaard software proces voor het ontwikkelen en onderhouden van software Processen worden gebruikt om de software managers en engineers meer effectief te laten werken Er is een groep verantwoordelijk voor het software proces Er wordt training in het software proces gegeven Het software proces is stabiel en goed gedefinieerd en is in staat meer effectief te opereren
Managed Gedetailleerde metrics van het software proces en product kwaliteit worden verzameld Er worden kwantitatieve doelen gesteld voor zowel het software proces als de product kwaliteit Er wordt een software proces databases gebruikt waarin de metrics worden verzameld en geanalyseerd Projecten hebben een dusdanig controle over het software proces en product kwaliteit dat ze binnen gestelde marges kunnen werken Risico’s van ontwikkelen in nieuwe technische omgevingen worden onderkend en gemanaged Software proces is voorspelbaar en trendekunnen worden voorspeld
Optimizing Continue software proces verbeteringen worden gerealiseerd door kwantitatieve feedback van het proces en door het oefenen van innovatieve ideeën en technologieën De gehele organisatie ie gefocusseerd op continue verbetering Data over performance van het proces wordt gebruikt voor cost-benefit analyses Innovaties die gebruik maken van de beste software engineering praktijken worden geïdentificeerd en verspreid over het gehele organisatie Software project teams analyseren fouten om er achter te komen hoe ze kunnen verbeteren ‘Lessons learned’ worden gedeeld met andere projecten (teamrooms, Communities of Practice)
Maturity niveau en de mate van voorspelling Kans Doel N-z Level 5: Optimizing Kans Doel N-y Level 4: Managed Kans Doel N-x Level 3: Defined Kans Doel N+a Level 2: Repeatable Kans Tijd/Geld/….. Doel N Level 1: Initial
Operationele gebruik van het CMM Hoe bepaal je in de praktijk de maturity van een organisatie? Maturity Level Process Capability Indicate Key Process Areas Contain Goals Achieve Common Features Organized by Implementation or Institutionalization Address Key Practices Contain Infrastructure or Activities Describe
Key Process Areas Defined (3) Initial (1) Managed (4) Repeatable (2) Optimizing (5) Process change management Technology change management Defect prevention Software quality management Quantitative process management Peer reviews Intergroep coordination Software product engineering Integrated software management Training program Organization process definition Organization process focus Software Configuration Management Software Quality Assurance Software Subcontract Management Software project tracking&oversight Software project planning Requirements Management
Voorbeeld Contains Indicates Maturity Level Achieves Key Process Area Repeatable Disciplined Processes Indicates Maturity Level Software estimates are documented for use in planning and tracking the software product Achieves Software Project Planning Contains Key Process Area Implementation Address Activities Performed Organized by Common Feature Activity Describe Activity 9. Estimates for the size of the software work products (or changes to the size of software work products) are derived according to a documented procedure Contain Key Practice
Slotopmerkingen Maturity Models helpen je om de volwassenheid van een software organisatie weer te geven Het CMM model is het meest gebruikte Organisaties ‘benchmarken’ zich ten opzichte van elkaar op basis van CMM-niveau CMM-niveau moet een indicatie geven van het kwaliteitsniveau van een software organisatie Met name nieuwe landen (India, China) kwalificeren zich sterk op dit gebied Het is geen heilig middel en moet ook met beleid worden toegepast