Kvalita procesu vývoje (SW) Jaroslav Žáček
[email protected]
Vývoj software a jeho kvalita • Samotný vývoj je rozsáhlá a složitá disciplína. • Většina SW projektů (v průměru 60 %) je podhodnocena či zpožděna. • Důvody: • disciplína vývoje SW je relativně nová • SW je v principu jiný produkt (oproti stavebnictví, automobilovému průmyslu) • každý SW na zakázku je unikátní • vzdáleně podobný výzkumné činnosti, vytváření duševního vlastnictví, ovšem je kladen velký důraz na kvalitu • ...
Jak je definována kvalita? • Existuje spoustu definicí (odezva zákazníků, certifikace). • Definice: Kvalita je stupeň spokojenosti zákazníka při kombinaci různých faktorů. • Faktory (nejčastěji tvrdé metriky): • počet chyb v produktu • zpoždění zavádění změn • délka záruky • dostatečná podpora
zajištění kvality • QA (Quality assurance) - vytvoření a správa aktivit, které můžou pomoci dodržet požadovanou kvalitu • Existuje univerzální návod? • Možné způsoby: • zaměření na procesy a jejich zlepšení • metody pro minimalizaci chyb v kódu • hlídání rizik projektu (risk list) • správa požadavků a změn • ...
Tři hlavní pilíře kvality Měří, monitoruje a spravuje procesy
CMMI
Six Sigma
Doručuje hodnotu
Knowledge management
Data přetváří ve znalosti
zajištění kvality • Existuje spoustu aktivit pro zajištění kvality. • Existuje spoustu technologií pro řízení kvality. • Zákazníci požadují implementaci technik od dodavatelů. • ISO 9001:2000 • QS 9000 • PMBOK • CMMI • Prince 2
Co je CMMI • CMMI - Capability Maturity Model (Integration) • Je to model kvality určený pro vývojové týmy. • Definuje oblasti pro zlepšení a cíle, kterých se má pro zlepšení dosáhnout. • Samotný model je zdarma, certifikace už ne (cca 2000$/den práce).
Proč CMMI (nebo jiný model kvality)? • Zákazníci ho zpravidla vyžadují, bez certifikace nezískáte zakázku. • Ostatní přínosy: • Je to dobrá značka (viz. všichni chtějí ISO 9001). • Minimalizuje chyby v procesu. • Zlepšuje kvalitu doručeného produktu zvyšuje přidanou hodnotu a šetří peníze. • Zlepšuje projektové řízení.
Jak se vytváří standard • Zeptejte se společností (SW) na jejich zkušenosti. • Analyzujte současné i minulé projekty. • Vytvořte sadu doporučení (best practices). • Definujte standard ... a vytvoříte CMM
CMM/CMMI • Vytvořeno SEI na Carnegie Mellon University v roce 1991 (verze 1.0). • Financováno grantem Ministerstva obrany (DoD) pro jejich projekty (vzpomeňte na vodopád). • Je zaměřen na definici, standardizaci a neustálé vylepšování vývojového procesu.
Historie • CMM v1.0 • SW-CMM (software development) • P-CMM (people management) • SA-CMM (software acquisition) • V roce 2000 integrovány ostatní modely (SPICE=ISO 15 504) s SW a SE - v1.1 • SW-CMM (software development) • SE-CMM (system engineering) • ... • V roce 2006 verze 1.2, reprezentace SW a SE jsou spojeny od jednoho pohledu. • V roce 2012 verze 1.3, přidává agilní způsob vývoje.
Použití • Jedná se převážně o americký standard • 50% certifikací na CMMI pochází z USA • Je vyžadován pro vládní zakázky • Japonsko se také zaměřuje na kvalitu • 30% certifikací na CMMI • Certifikaci procesů vyžadují odběratelé • Indie tzv. “software factory” • 10% certifikací
Použití • Evropa je v implementaci standardů kvality odlišná • EU (vč. CZ) se zaměřuje převážně na ISO normy. • Vývoj SW nemá dlouhou tradici v porovnání s USA. • Důvod pro zavedení CMMI je převážně vstup na trh v USA, v regionu CE, EE navíc levní programátoři a kvalita je konkurenční výhodou.
Vyzrálost procesů
Vyzrálost procesů
Příklad - oblast security
Proces / procesní oblasti (PA) • Fakticky v CMMI není žádný proces. • Rozděleno do Procesních oblastí - ve verzi 1.3 je jich 22. • PA jsou přítomny v každé úrovni modelu (levels). • Level 2 - 7 oblastí • Level 3 - 11 oblastí • Level 4 - 2 oblasti • Level 5 - 2 oblasti • PA jsou sdruženy ve skupinách • např. level 2 má 4 PA pro podporu procesů a 3 PA pro projektové řízení
Organizace CMMI Skládá se ze čtyřech základních skupin:
1.Project management 1.Jak naplánovat projekt 2.Jak sledovat projekt 3.Jak sledovat a řídit rizika 2.Process management 1.Definice procesů společnosti 2.Jak měřit proces 3.Engineering 1.Jak na analýzu 2.Jak na kódování 4.Support processes 1.Jak definovat etalon pro měření 2.Jak udělat vnitřní audit
Skupiny CMMI
Skupiny a procesní oblasti
Příklad PA a skupiny na úrovni 2 Requirements management
Project planning
Project tracking
Executive area
Measurement and analysis
Support area
Projekt
Configuration management
Quality assurance
PA na úrovni 2 • Requirements management (REQM) • získání požadavků • monitorování změn v požadavcích • identifikaci rozporů v požadavcích • Project planing (PP) • odhad pracnosti • vytvoření projektového plánu • hlídání závazků v PP(např. milníky) • Project monitoring and control (PMC) • sledování projektového plánu • řešení nesrovnalostí
PA na úrovni 2 • Product and process quality assurance (PPQA) • ohodnocení procesů a produktů • provedení interních auditů • Measurement and analysis (MA) • měření procesů • komunikace výsledků • Supplier arguments management (SAM) • ohodnocení dodavatele • definuj proces pro nákup produktu
Cíle a praktiky • Každá PA má definovány cíle (goals). • Každý cíl má své praktiky (practices). • Abychom dosáhli vyšší úrovně, musíme splnit cíle -> cíle jsou povinné. • Splnění praktik je pouze doporučeno -> zde je prostor pro vlastní iniciativu/nové řešení CMMI definuje pro každou praktiku také pod-praktiku (sub-practices), která dodává typický výstupní produkt.
Příklad CMMI pro Configuration Management říká:
1.Musíte mít definovánu základní úroveň. 2.Musíte mít definováno řízení změn. 3.Musíte zajistit integritu
}
Cíle
Pro bod 3) pak definuje např. • uchovávejte záznamy o CM • provádějte audit
} Praktiky
Příklad • L2, PA Configuration Management nám říká: 3. Musíte zajistit integritu (a doporučuje) • uchovávejte záznamy o CM • provádějte audit (což znamená)
1.vytvoř základní podmínky pro audit 2.zkontroluj reálný a plánovaný stav 3.zkontroluj procedury a jejich popis 4.hlídej produkty CM
} sub-praktiky
typický produkt: zpráva auditora
Konkrétní cíle a praktiky
Konkrétní praktika
Konkrétní cíl
Obecné cíle • Obecné cíle (generic goals) se v podstatě překrývají s úrovní modelu. • Pokud tedy model dosahuje úrovně 2, splňuje GG2 - Proces funguje jako řízený proces. • Všechny praktiky v příslušné PA musí splňovat tento obecný cíl.
Obecné cíle Obecné cíle
PA
Six Sigma
Příklad výroba špendlíku Kdo: Univerzální pracovník Co: Výroba špendlíku
Příklad výroba špendlíku Pracovník 1 Pracovník 2 Pracovník 3 Pracovník 4 Pracovník 5 Pracovník 6 Pracovník 7
Co je Six Sigma • Metodika (framework) pro neustále zlepšování procesu. • Metodika (framework) pro vytvoření kvalitních procesů / produktů. • Soubor statistických a kvalitativních nástrojů. • Aplikace vědeckých metod do podnikových procesů
Co je Six Sigma • Metodika (framework) pro neustále zlepšování procesu. • Metodika (framework) pro vytvoření kvalitních procesů / produktů. • Soubor statistických a kvalitativních nástrojů. • Aplikace vědeckých metod do podnikových procesů
Co Six Sigma není
• Není to žádný standard. • Není to certifikace • Není to jen další metrika • …nic víc, než aplikovaná statistika
historie • Pojem vzešel od Billa Smithe (Motorola) • Počátky již v roce 1970 - řešení problémů pomocí statistiky • 1987 Motorola spouští program Six Sigma • 1996 se připojuje GE…
historie • a kombinuje změnové řízení se statistickou analýzou:
Define
Measure
Analyse
DMAIC
Improve
Control
Firmy využívající Six Sigma • General Electric • Motorola • Texas Instruments • Honeywell • NASA • HP • USAF
Tři metodiky Six Sigma • BPMS - Business process Management Service • DMAIC - Zlepšování procesu • DMADOV - Tvorba nového procesu, který poběží podle Six Sigma
BPMS Hlavní cíle:
• Pochopení procesů • Poznání zákazníka a jeho očekávání • Identifikovat, monitorovat a zlepšovat procesy
Životní cyklus
DMAIC
Define Odstupující zákazník
Výstup
Measure Odstupující zákazník
Kolik?
Jak dlouho? Jak předvídatelně?
Výstup
Measure
?
Measure
IQ populace Hmotnost fazolí
Doba čekání Doba obsluhy
Analyse Odstupující zákazník
Jak dlouho? Jak předvídatelně?
Kolik?
Výstup
Doba čekání
Doba obsluhy
Analyse
Improve • Hledání nového řešení (většinou analyticky) • Pilotáž nového řešení • Identifikace tolerance na důležitých uzlech
Improve • Dělba práce • Nástroje a techniky: • Kanban • špagetový diagram • Brainstorming • Pugh Matrix (criteria-based matrix) • simulační software
Improve
Control • Nové univerzální řešení má zpravidla vždy nějakou výjimku • Ne všichni nové řešení pochopí a akceptují • Ověření, že nové řešení splňuje očekávání (statistical process control, control plan)