Proces vývoje softwaru lze změřit pomocí metody Capability Maturity Model (CMM). CMM definuje 5 úrovní vyspělosti procesu:
Tato úroveň představuje nejméně životaschopný proces vývoje softwaru. Proces vývoje v podstatě není definován. Při vývoji softwaru vždy budou problémy. V této úrovni jsou všechny problémy řešeny nesystematicky „na koleni“. Neexistuje řízení lidských zdrojů, není definován ani způsob komunikace se zákazníkem. Časem dojde k výraznému rozporu s očekáváním trojúhelníku čas-náklady-kvalita.
Pokud postupujeme na počáteční úrovni a podíváme se na celý systém řešení problémů z ptačí perspektivy, zjistíme, že na některé specifické činnosti jsme našli „best practices“ a umíme je řešit (dle našeho osobního názoru) optimálně. Zatím s jistotou nevíme, že naše postupy jsou opravdu optimální. Na této úrovni tedy vieme zopakovat postupy, které jsme vícekrát použili.
Pokud je celý proces vývoje softwaru jasně popsán, můžeme hovořit o definované úrovni. Můžeme předpokládat, že ten, kdo celý proces popsal, jej optimalizoval pro konkrétní účel.
Přítomnost objektivních analytických údajů je základem této úrovně. Pokud máme indikátory, které měří úroveň vývoje softwaru, víme, že jsme dosáhli měřitelné úrovně. Dokážeme tedy analyzovat existující proces z definované (třetí) úrovně z existujících objektivních dat? Víme například. jaké je procento úspěšných testů integrace jednotlivých modulů (tj. softwarových celků)?
Jak řekl P. Drucker: "co umíme měřit, to umíme řídit". Pokud umíme implementovat mechanismy, které implementují zlepšení procesu vývoje softwaru na základě změřených objektivních údajů? Pokud ano, víme, že jsme dosáhli nejvyššího stupně - optimalizované úrovně vývoje softwaru.
Marián Knězek