Verbetering van kwaliteit begint bij de individuele ontwikkelaar
Verbetering van kwaliteit begint bij de individuele ontwikkelaar E-ducation is our mission NIOC Eric van der Vliet SPI Consultant
Agenda • Stelling • Product kwaliteit • Processen • Modellen • Personal Software Process (PSP) • Stelling • Vragen / Discussie 2
Stelling • Schoolverlaters zijn software ontwikkelaars, maar geen software engineers • De meeste software ontwikkelaars hebben geen inzicht in: - wat software engineering is - wat hun performance is - wat de kwaliteit is van het werk dat ze opleveren 3
Wat is product kwaliteit? • Kwaliteit is gerelateerd aan een product • Producten zijn goederen en diensten • Een product is een kwalitatief goed product als het voldoet aan de verwachtingen van de klant • Of een product voldoet aan de specificaties wordt voor een belangrijk deel bepaald door het productieproces 4
Wat kost kwaliteit? • Een fout geïntroduceerd in de specificaties kost om te vinden: • Requirements review: • Design review: • Unit test: • Systeem test: • Operatie: 1 uur 8 uur 15 uur > 100 uur • Hoe eerder de fout wordt gevonden, hoe goedkoper het is • Nog goedkoper is het om de fout niet te maken 5
De oorzaak? ongedefinieerd proces Compileren Spec’s Coderen Testen 6 Geteste module
Kenmerken • Van een ongedefinieerd proces • Veelvuldig terug naar eerdere fasen • 50% coderen en compileren • 50% testen (debuggen) • Testen om kwaliteit in te brengen i. p. v. om aanwezige kwaliteit aan te tonen 7
Welke processen onderscheiden we? Organisatie Project Management Software Ontwikkeling Ondersteunende processen (Quality Assurance, Configuration Management etc. ) 8
Door welke modellen wordt dit ondersteund? 9
CMM • Capability Maturity Model (CMM) : • CMM wordt gebruikt voor “Software Process Improvement” • CMM richt zich op ontwikkelorganisaties • Het CMM heeft 5 “maturity levels” • Ieder “maturity level” bestaat uit “Key Process Areas (KPA’s)” 10
CMM Levels 5 4 Level 5 : Continue verbeteren Level 4 : Meten is weten 3 Level 3 : Software Engineering 2 Level 2 : Projectmanagement 11 1 Level 1 : Ad-Hoc / Chaotisch
CMM Aandachtsgebieden 5 4 3 2 12 1 Level 5: Process change management Technology innovation Defect prevention Level 4 Quality management Process measurement and analysis Level 3 Peer reviews Intergroup coordination Software product engineering Integrated software management Training program Organization process definition Organization process focus Level 2 Software configuration management Software quality assurance Software subcontract management Software project tracking and oversight Software project planning* Requirements management
PSP • Personal Software Process (PSP) : • Is gebaseerd op het CMM • Is voor individuen (software engineers) • Heeft 4 “maturity levels” • Op ieder “maturity level” wordt het software engineerings proces uitgebreid 13
PSP-niveaus PSP 3 Cyclic development PSP 2 Code reviews Design reviews PSP 1. 1 Size estimating Test report PSP 0 Current process Time recording Defect type standard 14 PSP 2. 1 Design templates Task planning Schedule planning PSP 0. 1 Coding standard Size measurement Process improvement proposal (PIP)
PSP Principes • Professionele software engineers: • Weten hun performance (kwantitatief!) • Meten, tracken & analyseren hun werk • Gebruiken de feedback om hun “”Persoonlijke Software Proces” te verbeteren 15
Eigenschappen van een PSP proces • Met een stabiel proces kan je: • Je werk schatten en plannen • Je afspraken nakomen • Onnodige druk voorkomen 16
Wat is een PSP? • Een persoonlijk proces voor software ontwikkeling • Gedefinieerde stappen • Formulieren • Standaarden 17
PSP Resultaten-1: Schatting tijd & omvang Size Estimating Accuracy % Error Time Estimating Accuracy % Error 300 350 300 250 200 150 200 Max Class 100 50 0 -50 -100 Min Max 150 Class 100 Min 50 0 -50 -100 1 2 3 4 5 6 7 Program Number 18 % Error % Estimate Error 350 8 9 10 1 2 3 4 5 6 7 Program Number 8 9 10
PSP Resultaten-2: Test defects & Productiviteit Defects Found in Test - Range Productivity Range 80 90 70 80 70 50 Max 40 Avg 30 Min 60 Max 50 Avg 40 Min 30 20 20 10 10 0 0 1 1 2 3 4 5 6 7 Program Number 19 LOC/Hour Defects/KLOC 60 8 9 10 2 3 4 5 6 7 Program Number 8 9 10
PSP Conclusies • Vóór PSP training: • totaal 100 fouten/KLOC • 30 -40 testfouten/KLOC • Na PSP training: • norm: foutreductie van 70 -80% • < 5 testfouten/KLOC is haalbaar • Performance op het niveau van ontwikkelaar blijft gelijk • Het kost veel tijd en inspanning om op dit niveau te komen • Voordeel wordt behaald in systeem- en integratietest 20
PSP Opleiding • Georganiseerd door CMG intern en bij klanten • Duur: 10 dagen • PSP als onderdeel van opleidingsprogramma • Theorie: sessies van 1, 5 - 2 uur zijn mogelijk • Praktijk: individueel ondersteund door PSP expert • Tool support • Tools zijn beschikbaar om het proces te ondersteunen • Tools zijn noodzakelijk om de inspanning (invulling van formulieren) voor de ontwikkelaars beperkt te houden 21
Stelling • Schoolverlaters Software ontwikkelaars zijn software dienen ontwikkelaars, tijdens hun studie maar te geen worden software engineer opgeleid tot software engineer • De meeste software engineerontwikkelaars weet wat zien software niet ontwikkelen in wat software is ontwikkeling is • De software engineer hanteert • De metrieken meeste om software zijn proces ontwikkelaars te weten beheersen niet en wattehun verbeteren performance is • De meeste software engineerontwikkelaars draagt bij tot de weten kwaliteit niet van wat het deuiteindelijke kwaliteit is van product het werk dat ze opleveren 22
Vragen / Discussie
www. cmg. com 24 © 2002
- Slides: 24