CMMI v praxi
Ing. David Janota, Ph.D., director QA
Úvod • otázky kdykoliv během přednášky • mobilní telefony, prosím, do tichého režimu • zkratky – CMM(I) = Capability Maturity Model (Integration) – CM = configuration management – QMS = quality management system – PA = process area – SG = specific goal – SP = specific practice
Časový plán 1. Úvod (5 min) 2. Co je kvalita a řízení kvality při vývoji softwaru (5 min) 3. Co je CMM/CMMI, historie, cíl (10 min) 4. Úrovně a procesní oblasti (20 min) 5. Specifické a obecné cíle (10 min) 6. Jak získat „certifikaci“ (10 min) 7. Klady a zápory CMMI (10 min) 8. CMMI a agilní techniky (10 min) 9. Ukázky z praxe 10. Otázky, diskuse (???)
Proč CMMI? • obvyklé důvody: – požadavek zákazníka (na dodavatele) – zvýšení prestiže – zlepšení procesů – zvýšení schopnosti a zralosti organizace
Vývoj softwaru ..... • je velmi obtížná disciplína • dle odhadů je 80-90% softwarových projektů zpožděno nebo podhodnoceno (nebo obojí) !!!! • proč? – vývoj softwaru je relativně mladé odvětví – software není auto, most, budova – tvorba softwaru NENÍ sada stejných a opakujících se kroků, vše je unikátní
• podobná odvětví – výzkum – psaní knih – tvorba filmů
• ale VELKÝ tlak na kvalitu
Co je kvalita • různé definice • kvalita je stupeň splnění zákaznických požadavků pomocí sady inherentních faktorů • inheretní faktor = spojený s produktem nebo službou, např.
počet chyb zpoždění dodávky rychlost reakce podpory rychlost aplikace .....
Co je zajištění kvality • Zajištění kvality = aktivity, které zvýší pravděpodobnost, že kvalita bude dosažena a udržena • Jak? • různě......
zaměřením na procesy sledováním rizik trasovatelností požadavků code review testováním
Jak vzniká standard? 1. Obsáhlou definicí 2. Zadáním „vyšší moci“ 3. Sběrem „best practices“ 4. ?
Časový plán 1. Úvod (5 min) 2. Co je kvalita a řízení kvality při vývoji softwaru (5 min) 3. Co je CMM/CMMI, historie, cíl (10 min) 4. Úrovně a procesní oblasti (20 min) 5. Specifické a obecné cíle (10 min) 6. Jak získat „certifikaci“ (10 min) 7. Klady a zápory CMMI (10 min) 8. CMMI a agilní techniky (10 min) 9. Ukázky z praxe 10. Otázky, diskuse (???)
Historie
CMM v1.0 (1991) SW-CMM (software development) SE-CMM (system engineering) P-CMM (people management) SA-CMM (software acquisition)
CMMI v1.1 (2002) – integrace jiných modelů, např. SPICE = ISO 15504 SW-CMMI (software development) SE-CMMI (system engineering) ...
CMMI v1.2 CMMi-DEV (Development) – 2006 CMMi-ACQ (Acquisition) – 2007 CMMi-SVC (Services) – 2007
CMMI v1.3 CMMi-DEV (Development) - 2010 CMMi-ACQ (Acquisition) – 2010 CMMi-SVC (Services) – 2010
Užití
50% USA defacto standard pro USA nutná podmínka pro vládní a armádní projekty
dále Indie Japonsko Velká Británie
Evropa silná tradice norem ISO malá propagace
hodně „in“ v letech cca 2000-2010 v současné době stagnace díky prosazování agilních technik
Smysl a cíl “....to help organizations improve their development and maintenance processes for both products and services” přináší hlavně rámec, kterého je výhodné se držet důsledky
opakovatelnost jasná definice CO, KDY, JAK, S KÝM návod na zlepšení kontrola projektů
specifické pro vývoj, ale stále dostatečně obecné pro adaptaci ve vlastní firmě
Procesní chápání
Typy CMMI původní CMM model používal tzv. stupňovitý popis vývoj ve stupních přesně definovaná cesta užití specifických cílů a praktik SPICE užíval kontinuální popis umožňuje zlepšení pouze vybraných oblastí užití hlavně obecných cílů a praktik
Časový plán 1. Úvod (5 min) 2. Co je kvalita a řízení kvality při vývoji softwaru (5 min) 3. Co je CMM/CMMI, historie, cíl (10 min) 4. Úrovně a procesní oblasti (20 min) 5. Specifické a obecné cíle (10 min) 6. Jak získat „certifikaci“ (10 min) 7. Klady a zápory CMMI (10 min) 8. CMMI a agilní techniky (10 min) 9. Ukázky z praxe 10. Otázky, diskuse (???)
Úrovně CMMI = evoluce Level 1 Počáteční Level 2 Řízená Level 3 Definovaná Level 4 Kvantitativně řízená Level 5 Optimalizující
Úrovně Optimizin g
5 Improvements of processes
Quantitatively Managed
4 Described and measured processes
Defined 3 Defined processes across whole company
Managed 2 Described process for managing the projects
1 Chaotic processes,
success usually caused by accident or due to strong personalities
Initial
Procesní oblasti • každá uroveň má několik procesních oblastí
Level 2 – 7 Level 3 – 11 Level 4 – 2 Level 5 – 2
• každá procesní oblast náleží do určité skupiny
project management process management engineering supportive
Procesní oblasti a skupiny
Procesní skupiny a oblasti
project itself
CMMI level 2 Requirements management (REQM) • obtain the requirements • track the changes in requirements • identify inconsistencies Project planning (PP) • estimate the work • develop the project plan • commitment of plan Project monitoring and control (PMC) • track the project plan • solve the discrepancies
CMMI level 2 Product and process quality assurance (PPQA) • evaluate processes and products • performing internal audits Measurement and analysis (MA) • measure the processes • communicate results Supplier agreements management (SAM) • evaluate suppliers • define the process for purchased product Configuration management (SAM) • establish baselines • establish change management • assure integrity
Časový plán 1. Úvod (5 min) 2. Co je kvalita a řízení kvality při vývoji softwaru (5 min) 3. Co je CMM/CMMI, historie, cíl (10 min) 4. Úrovně a procesní oblasti (20 min) 5. Specifické a obecné cíle (10 min) 6. Jak získat „certifikaci“ (10 min) 7. Klady a zápory CMMI (10 min) 8. CMMI a agilní techniky (10 min) 9. Ukázky z praxe 10. Otázky, diskuse (???)
Specifické cíle a praktiky - příklad CMMI – CM (Configuration Managements) SG1: Establish baselines SG2: Establish change management SG3: Assure the integrity SP3.1 Establish CM records SP 3.2 Perform CM audits
praktiky
cíle
Specifické cíle
specifická praktika
specifický cíl
Obecné cíle • • • •
jsou společné pro všechny procesní oblasti v každé z nich však mohou znamenat něco jiného mají také obecné praktiky příklad: GG1 - “Establish managed process” má nasledující praktiky define the policy plan the process define resources assign responsibility train people integrate into CM system inform stakeholders monitor the process check the adherence review process with management
Obecné cíle obecné cíle
PA
Co znamená řízený proces • existuje závazná obecná politika (obvykle v příručce kvality) • dané aktivity jsou součástí plánování • je definován proces (popis) • někdo je za danou aktivitu zodpovědný • lidé jsou na danou aktivitu vyškoleni a vědí, jak ji dělat • výstupy jsou pod konfiguračním řízením • jsou definování tzv. stakeholders (zainteresovaní) • existuje metrika, která měří výkon • někdo kontroluje, zda se tato aktivita děla tak, jak se dle popisu dělat má • výsledky reviduje vyšší úroveň managementu
Časový plán 1. Úvod (5 min) 2. Co je kvalita a řízení kvality při vývoji softwaru (5 min) 3. Co je CMM/CMMI, historie, cíl (10 min) 4. Úrovně a procesní oblasti (20 min) 5. Specifické a obecné cíle (10 min) 6. Jak získat „certifikaci“ (10 min) 7. Klady a zápory CMMI (10 min) 8. CMMI a agilní techniky (10 min) 9. Ukázky z praxe 10. Otázky, diskuse (???)
Jak získat CMMI – typické fáze 1. 2. 3. 4.
GAP analýza Implementace Pre-audit Assessment
Assessment – typické fáze
training approx. 1 week for assessor and lead assessor must be SEI approved
preparation list of evaluated projects team members interviewees and interviewers scheduling
assessment interviews checking of documentation
evaluation data consolidation final reporting
QIP2 - CMMI level 2 results Level 2 Process Area
SG1
SG2
SG3
GG2
GG3
F
L
F
L
Requirements Management
L
Project Planning
F
F
Project Monitoring and Control
F
F
F
L
Measurement and Analysis
F
F
F
L
Process and Product Quality Assurance
F
F
F
L
Configuration Management
F
F
F
F
L
Fully
Largely
Partiall y
Not
n/a
Compliancy Legend:
F
CONGRATULATIONS! WE HAVE ACHIEVED
Časový plán 1. Úvod (5 min) 2. Co je kvalita a řízení kvality při vývoji softwaru (5 min) 3. Co je CMM/CMMI, historie, cíl (10 min) 4. Úrovně a procesní oblasti (20 min) 5. Specifické a obecné cíle (10 min) 6. Jak získat „certifikaci“ (10 min) 7. Klady a zápory CMMI (10 min) 8. CMMI a agilní techniky (10 min) 9. Ukázky z praxe 10. Otázky, diskuse (???)
CMMI - klady • zvyšuje pravděpodobnost úspěchu • zajištuje opakovatelnost • velký tlak na dokumentaci – menší závislost na fluktuaci lidí • definuje KDO KDE KDY • zlepšuje projektový management (level 2) • definuje odhadování • zlepšuje práci s dodavateli. • přináší integraci
CMMI - zápory • • • • • •
vhodné více pro velké projekty mnoho „papírové práce“ nelze improvizovat vázáno více na waterfall model vyžaduje velké plánování nelze iterovat
Časový plán 1. Úvod (5 min) 2. Co je kvalita a řízení kvality při vývoji softwaru (5 min) 3. Co je CMM/CMMI, historie, cíl (10 min) 4. Úrovně a procesní oblasti (20 min) 5. Specifické a obecné cíle (10 min) 6. Jak získat „certifikaci“ (10 min) 7. Klady a zápory CMMI (10 min) 8. CMMI a agilní techniky (10 min) 9. Ukázky z praxe 10. Otázky, diskuse (???)
Životní cyklus produktu
waterfall (CMMI)
spirála (agilní)
© 2010 CN Group
Slide nr. 38
Agile approach - SCRUM
© 2010 CN Group
Slide nr. 39
CMMI kontra agile
• • •
conflict - one or more specific practices must be replaced with one or more alternative practices to support conduct of lean/agile practices acceptable – no conflicts in principle, supporting advices unhelpful enabling – no conflicts © 2010 CN Group
Slide nr. 40
CMMI kontra agile 1.
Classical approach (based on CMMI) -
2.
supports planning and commitments clear stages and transition into next phases supports standards and discipline CR process has to be perfectly handled customer’s involvement only in selected project phases more convenient for long term projects
Agile approach (based on SCRUM) -
focus on “deliver as fast as possible” quick reaction to new issues easier scope change management no team members closed in his “shell”, everybody knows overall progress collective estimation and planning can earlier disclose hidden problems customer has to agree with continual development customer has to be dedicated during whole project (requirement clarification)
Časový plán 1. Úvod (5 min) 2. Co je kvalita a řízení kvality při vývoji softwaru (5 min) 3. Co je CMM/CMMI, historie, cíl (10 min) 4. Úrovně a procesní oblasti (20 min) 5. Specifické a obecné cíle (10 min) 6. Jak získat „certifikaci“ (10 min) 7. Klady a zápory CMMI (10 min) 8. CMMI a agilní techniky (10 min) 9. Ukázky z praxe 10. Otázky, diskuse (???)
Metrics – Backlog
Purpose: to track number of pending SPRs in projects Aim: to have low level of figures. Computing: Number of new SPR – Number of closed SPR Cumulative sum.
Quality management system
Risk management • Risks management – risk = potential problem – source and category – impact, severity and probability = risk level (high, medium, low) – plans: • mitigation (how to decrease probability) • contingency (how to decrease impact)
– impact on schedule or effort – trigger
QMS – verification & validation approach
Projektový plán D01 Project Management Plan • • • • • • • • • • •
project scope and definition project organization milestones resource planning (and tracking), incl. training work-breakdown structure link to detailed schedule link to estimates risk identification (and tracking) change management lessons learned log .....
CN Group • •
• •
dánsko-japonská firma, působící od roku 1994 lokace – Praha, Zlín – Bratislava, Povážská Bystrica 150+ employees orientace na zajištění kvality – CMM L2 2001 – CMMI L3 2008
Products 6%
• oblasti působnosti: – – – –
telekomunikace finance letectví embedded vývoj
SW development 82%
IT consulting 12%
Děkuji za pozornost ...
Otázky?