CMMI

Z Wikipedie, otevřené encyklopedie
Vývoj softwaru
  • (existující články)
  • Základní aktivity
  • Příbuzná témata
  • Standardy a odborná sdružení
  • Slovníčky, seznamy

CMMI je systém pravidel a cílů, které určují, co by měly týmy dělat, aby jejich práce byla dobře udělaná, bylo ji možné plánovat a byla efektivní. Vytvořeny jsou 3 varianty modelu, každá se zaměřuje na samostatnou oblast práce: vývoj technologií, poskytování služeb a nákup.

CMMI model, stejně jako ostatní soudobé standardy kvality, se zaměřuje především na důslednou organizaci, plánování a sledování postupů. Jeho největším rozdílem oproti většině jiných podobných standardů (např. ISO 9001) je, že definuje 5 úrovní zralosti a tým může podle modelu svou procesní dokonalost postupně zlepšovat.

Úroveň, které tým dosáhl, se hodnotí "posouzením", které provádí vyškolený interní nebo externí posuzovatel postupem, který je stejně jako norma definován autorskou organizací.

CMMI, zkratka anglického Capability Maturity Model Integration, se dá volně přeložit jako Stupňovitý model zralosti. Jde o souhrn cílů a doporučených pracovních postupů pro vývojové týmy, které vedou ke kvalitnímu plánování a řízení prací a měly by zajistit i odpovídající kvalitu výstupu. Model CMMI je volně dostupný na Internetu.

Autorem modelu CMMI je tým pracující při Carnegie Mellon University, konkrétně jejich Software Engineering Institute, zkráceně SEI-CMU.

Historie vzniku standardu[editovat | editovat zdroj]

SEI-CMU vydalo první model pro softwarové procesy v roce 1987. Tento model vycházel ze starších standardů a prací zejména z práce Phila Crosbyho Quality is Free, ve které definoval Maturity Grid, matici která byla pro CMMI ideovým základem. Model byl postupně vyvíjen a v roce 1990 dostal poprvé označení CMM - Capability Maturity Model, do češtiny se někdy překládá jako model stupně zralosti nebo stupňovitý model zralosti.

V roce 1995 byla vydána verze modelu pro návrh celých technologických celků - SE-CMM System Engineering CMM. Vedle sebe tak existovaly dva velmi podobné standardy pro stejný typ práce: CMMI, označované nadále jako SW-CMM pro softwarové týmy a SE-CMM pro týmy technické.

Dichotomie dvou podobných modelů vedla v roce 2000 ke vzniku CMMI. Přidané slůvko integrated značí, že model integruje několik standardů dohromady.

V roce 2006 provedl Institut softwarového inženýrství na Carnegie Mellon University integraci CMM modelů, čímž do značné míry nahradil původní CMM a vyřešil tak některé jeho nevýhody.[1] I když institut sloučil dvě větve CMMI standardu, souběžně vznikaly i další příbuzné standardy: CMMI for Acquisition (CMMI-AQ) a CMMI for Services (CMMI-SVC), který je faktickým ekvivalentem standardu ITIL. V rámci rozrůstající se rodiny CMMI standardů dostává "původní model" označení CMMI for Development (CMMI-DEV)

Současná verze CMMI-DEV 1.3 je z roku 2009, souběžné standardy jsou novější, CMMI-SVC z r. 2010 a CMMI-ACQ z r. 2011. Změny posledních verzí všech standardů se zabývaly především sjednocení požadavků i formy (organizace) samotných standardů, aby byly vzájemně komplementární. Díky tomu je snadné do týmu / firmy adaptovat více standardů najednou.

Organizace standardu[editovat | editovat zdroj]

Všechny modely CMMI mají stejnou vnitřní organizaci. Definují úrovně schopností a tým tak splňuje standard CMMI vždy na nějaké úrovni. Tyto úrovně jsou dvou typů, tzv. stupně zralosti (maturity stages) a úrovně schopností (capability levels). Stupně i úrovně směřují ke stejnému cíli (nejvyšší úrovně obou stupnic jsou shodné), ale jsou tak vytvořeny dvě cesty, jak k cíli směřovat. Oba druhy úrovní jsou doporučením, jak standard uvádět postupně do praxe.

Samotné schopnosti, které musí tým splňovat, jsou popsány procesními oblastmi, které jsou shodné pro obě cesty. Procesní oblasti definují věcnou náplň standardu a pro každý standard (CMM-DEV, SMMI-SVC, CMMI-AQ) jsou specifické, Každá procesní oblast má definované cíle, které musí tým naplňovat a pro jejich naplnění jsou doporučené činnosti. Činnosti jsou doporučené, tj. týmy je mohou, ale nemusí vykonávat, jsou ale navrženy tak, aby vedly k naplnění cílů. Ke každé činnosti jsou doporučené postupy, vstupy a výstupy.

Procesní oblasti standardu CMMI-DEV (v 1.3)[editovat | editovat zdroj]

Všechny varianty CMMI, tj. CMM-DEV, CMM-ACQ i CMMI-SVC mají téměř shodné procesní oblasti, liší se zejména obsahem.

Standard rozděluje procesní oblasti na několik skupin podle typu činností:

Skupina Řízení procesů

  • Definice procesů organizace
  • Zaměření na procesy organizace
  • Řízení výkonnosti procesů
  • Zvyšování výkonnosti procesů
  • Školení organizace

Skupina Řízení projektů

  • Plánování projektů
  • Řízení požadavků
  • Monitorování a řízení projektů
  • Řízení vztahů se subdodavateli
  • Řízení rizik
  • Kvantitativní řízení projektů
  • Integrované řízení projektů

Skupina Návrh a realizace (Engineering)

  • Vývoj požadavků
  • Technické řešení
  • Integrace produktu
  • Verifikace
  • Validace

Skupina podpůrné procesy

  • Řízení konfigurací
  • Řízená analýza a rozhodování
  • Zajištění jakosti produktů a procesů
  • Měření a analýza
  • Rozhodování na základě analýzy variant

Stupně zralosti[editovat | editovat zdroj]

Stupňovitý model CMMI definuje 5 úrovní zralosti, přičemž model je navržen tak, aby firmy mohly kvalitu svých procesů přirozeně rozvíjet podle úrovní: Do každého stupně jsou zařazeny procesní oblasti, ve kterých musí tým plnit cíle.

  • 1 - Počáteční (Initial): Týmy na této úrovni definované procesy nevykonávají nebo pouze částečně
  • 2 - Řízená (Managed): Je stanoveno řízení projektů a činnosti jsou plánovány
  • 3 - Definovaná (Defined): Postupy jsou definovány, dokumentovány a řízeny
  • 4 - Kvantitativně řízená (Quantitatively Managed): Produkty i procesy jsou řízené kvantitativně
  • 5 - Optimalizující (Optimizing): Tým soustavně optimalizuje své činnosti

Úrovně schopnosti[editovat | editovat zdroj]

Úrovně schopností definují, jak kvalitně musí tým vykonávat jednotlivé procesní oblastí. Na rozdíl od stupňů zralosti úrovně schopností rozvíjejí všechny procesní oblastí (kromě několika "pokročilých" oblastí zařazených až do posledních dvou oblastí.

  • 0 - Neúplné (Incomplete): Některé činnosti nejsou vykonávány
  • 1 - Vykonávané (Performed): Činnosti jsou vykonávány
  • 2 - Řízené (Managed): Je řízeno, jak jsou činnosti vykonávány
  • 3 - Definované (Defined): Je definováno, jako jsou činnosti vykonávány

Úrovně schopností odpovídají prvním třem stupňům zralosti a navazují na ně stupně 4. a 5., které jsou shodné se stupni zralosti.

CMMI pro služby (CMMI-SVC)[editovat | editovat zdroj]

CMMI for Services se zaměřuje na oblast poskytování služeb, ať už jde o služby kontinuální (např. poskytování vody formou vodovodu nebo internetového připojení), pravidelné (zajištění servisu lékařským přístrojům, údržba letadel aj.) nebo jednorázové (technologická zarážka, převoz nákladu). Stejně jako CMMI-DEV model popisuje, jak musí tým zajistit připravenost poskytovat službu, jak si plánovat práci a pracovat na svém rozvoji.

CMMI-SVC je sice obecně "univerzální", tj. stanovené cíle a postupy mohou být použity při poskytování libovolných služeb, ale svou komplexnostní a důrazem na schopnost poskytovat službu přesně v souladu s předem definovanými podmínkami, má smyl především u takových služeb, kde je jsou tyto důrazy důležité. Jde o rozvody energií, vody a správu technologií, které jsou výrobně nebo životně důležité a jejichž dodávka je pro klienta skutečně důležitá. Kromě zmíněných energií tak jde zejména o služby pro podniky, státní správu, armádu.

CMMI pro nákup (CMMI-ACQ)[editovat | editovat zdroj]

CMMI for Acquisition, v souladu se svým názvem míří na oblast řízení nákupu od vypracování investičního záměru po dokončení akvizice. Svým obsahem je podobná s ostatními modely. Akvizicí se rozumí nákup v obecném smyslu, ale tak velkého rozsahu, aby se celý nákup řídil de facto formou projektu. Model má smyl pro oblasti typu:

  • Nákupu investičních celků (vybavení továrny, výrobní závod)
  • Nákup drahého vybavení včetně dalších služeb (lékařská technika)
  • Nákup techniky, kde součástí je zákaznická úprava (např. zbrojní systémy)
  • Nákup informačních systémů, zejména v přípravě že jsou dodávány na zakázku nebo upravovaných pro konkrétní účel (podnikové informační systémy, řídící systémy, větší zákaznické aplikace, např. mýtný systém, automatizace výroby, dohledové systémy apod.)
  • Uvedený výčet je příkladem, nejde o doporučení, které by stanovoval samotný model CMMI-ACQ.

Mírnou odlišností modelu je, že zatímco CMMI-SVC míří plně na vztah dodavatel-odběratel a CMMI-DEV na něj z většiny míří také (zakázkový vývoj technologií), tak CMMI-ACQ je především interní standard, protože jeho hlavním uživatelem bude oddělení akvizic a nákupu. Využití by samozřejmě mohl mít i pro firmy, které zajišťují nákup jako službu pro své klienty, ale pak už jde více o poskytování služby samotné.

Alternativy k CMMI[editovat | editovat zdroj]

I když je model je svým zaměřením blízký dobře známému modelu ISO 9000:2001, je mezi nimi několik zásadních rozdílů:

  • Standard ISO 9000:2001 není určen pro žádnou konkrétní oblast a je aplikován na firmy z nejrůznějších oborů. Naproti tomu CMMI je určen pro vývojové týmy.
  • ISO 9001 je stručný standard, který definuje pouze cíle, zatímco CMMI je podrobný model, který jde do podrobností, když definuje očekávané činnosti a jejich pracovní výstupy. Díky tomu má CMMI návodný charakter, takže je na jeho základě možné procesy přímo definovat.
  • ISO 9001 nedefinuje stupně zralosti, takže nevede firmy k soustavnému zlepšování tak jako CMMI a ostatní uváděné standardy.

Současná verze modelu CMMI je sladěna se standardem ISO 15504, který vznikl z dřívější iniciativy SPICE. Podobnost není náhodná, CMMI se záměrně přizpůsobila standardu ISO, protože globálně působící společnosti potřebují plnit oba standardy.

Pro firmy pracující pro automobilový průmysl, je výhodnější používat odvozeného standardu Automotive SPICE[2] a novější ISO 26262. Obecně modely, které vznikly jako odvozené varianty modelu ISO 61508 (mezi ně patří i zmiňovaný standard ISO 26262[3]) poskytují přesnější požadavky na vývoj a současně jsou vyžadovány cílovými výrobci.

Rozhodnutí, který model jakosti je pro určitou firmu vhodnější, není příliš závislé na modelech samotných, ale především na zákaznících dané firmy a jejich požadavcích. Samotné modely jsou si podobné, liší se především úrovní detailu a zaměřením na určitou oblast podnikání. Pro firmy aspirující na dodávky do USA bude významnější model CMMI, evropské firmy zatím dávají přednost jiným standardům, ale zájem o CMMI díky globální ekonomice a jeho dominantnímu postavení v Americe i Asii trvale roste i v Evropě.

Reference[editovat | editovat zdroj]

  1. [1]Rozdíl mezi CMMI a CMM (anglicky)
  2. [2] Archivováno 26. 4. 2022 na Wayback Machine.Stránky o standardu Automotice SPICE (česky)
  3. [3]Rozdíly mezi ISO 26262 a ISO 61508

Externí odkazy[editovat | editovat zdroj]

Organizace[editovat | editovat zdroj]

  • SEI Software Engineering Institute
  • NDIA National Defense Industrial Association
  • Download CMMI model Stránka s aktuální verzí modelu CMMI ke stažení