Kvalita procesu vývoje (SW) Jaroslav Žáček jaroslav.zacek@osu.cz
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 Knowledge management Doručuje hodnotu 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 Projekt Configuration management Quality assurance Measurement and analysis Support area
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 typický produkt: zpráva auditora } sub-praktiky
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 Improve Control DMAIC
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 Kolik? Jak dlouho? Jak předvídatelně? 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)